공부중

[Arduino] 입출력 실습 본문

프로그래밍/Arduino

[Arduino] 입출력 실습

복습 2025. 1. 21. 01:27
728x90

 

아두이노 실습. 

 

0. 기본 스크립트 

// 전처리 
void setup() {
  // put your setup code here, to run once:
	// 초기화 
}

void loop() {
  // put your main code here, to run repeatedly:
	// 데이터 처리 
}

 

setup에는 초기화 문을 넣고, 

loop 부분에 데이터 처리 문을 넣는다. 

 

 

 

 

1.보드 연결 

 

툴 -> 보드 -> Arduino AVR Boards -> 본인 보드 선택 

 

포트도 설정 

포트를 설정하지 않을 경우 아래와 같은 오류 메시지 발생한다. 


         Using Port                    : COM5
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: ser_open(): can't open device "\\.\COM5": ������ ������ ã�� �� �����ϴ�.


 

 

코드 작성 후 업로드 

 

 

 

2. 연결 및 기본 예제

프린트문 계속 출력 

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("hello, Arduino ");
  Serial.println("안녕, 아두이노 ");
}

 

시리얼 모니터 확인 

 

 

한국말 출력도 문제 없다. 

 

 

 

3. 이진수, 십진수, 십육진수 출력 

int n = 123;      // 예시 정수
float f = 123.456; // 예시 부동소수점

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("\n\n여기부터 시작"); 
  Serial.println(n, BIN);  // 이진수 출력
  Serial.println(n, DEC);  // 십진수 출력, 디폴트라면 DEC는 생략 가능
  Serial.println(n, HEX);  // 십육진수 출력
  
  Serial.println();        // 빈 줄 출력
  Serial.println(f);       // 부동소수점 수 출력
  Serial.println(f, 5);    // 소수점 이하 다섯 자리 출력
}

 

 

 

 

 

4. Serial.available()

Serial.available()은 시리얼 수신 버퍼에 있는, 아직 읽혀지지 않은 데이터의 바이트 수를 반환합니다.

반환값은 int 타입으로, 사용 가능한 데이터의 바이트 수를 나타냅니다. 만약 사용 가능한 데이터가 없다면 0을 반환합니다.

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (Serial.available() > 0) {
    byte data = Serial.read();

    Serial.print("Echo back : ");
    Serial.print(" ");
    Serial.print("ASCII : ");
    Serial.print(data);
    Serial.print(" , char : ");
    Serial.println((char)data);
  }  
}

 

 

 

 

데이터를 전송하면, 아스키코드(data)와 문자로 변환하여 출력

만약 'hello'라는 여러 문자를 보낸다고 해도, 문자 하나씩 전송되므로 위의 예시처럼 하나하나 나오게 된다. 

char 부분이 내가 전송한 값이다. 즉, 1을 보내면 'Echo back :  ASCII : 49 , char : 1'이 출력된다. 

 

 

 

 

 

 

 

728x90