본문 바로가기
카테고리 없음

아두이노(Arduino) 시리얼(Serial) 통신 예제

by 드린이 2023. 2. 11.

안녕하세요!! 드린이입니다 ::))

 

지난 포스팅을 통해서 아두이노(Arduino)의 기초에 대한 포스팅을 했었습니다. 오늘은 간단한 실행 예제를 통해서 아두이노(Arduino)와 친숙해질 수 있는 포스팅을 하도록 하겠습니다.

 

지난 포스팅 말미에 아두이노(Arduino)PC 간에는 시리얼(Serial) 통신을 한다. , 시리얼 모니터 가능하다.라는. 내용을 했었습니다. 오늘의 시작은 시리얼 모니터 실행으로 하겠습니다. 우선 UNO 보드와 PCUSB 케이블을 이용하여 연결한 후 아래와 같이 입력해 보겠습니다. 

 

무작정 따라 하기

int drone = 100;                                  // 정수형 변수 drone를 만들고 100을 대입


void setup() {
  Serial.begin(9600);                        // 시리얼통신을 시작. 통신속도는 9600
}


void loop() {
  Serial.println(drone);                      // 시리얼모니터에 drone를 출력
  Serial.println("Hellow, Korea!");     // 시리얼모니터에 “Hellow, Korea”를 출력
  delay(1000);                                  // 1초 대기
}

코드 무엇?

코드의 내용을 보면 
 - int drone = 100; -> 정수형 변수 drone를 만들고 100을 대입
 - Serial.begin(9600); -> 시리얼통신을 시작. 통신속도는 9600
 - Serial.println(drone); -> 시리얼모니터에 drone를 출력하고 줄 바꿈
 - Serial.println("Hellow, Korea!"); -> 시리얼모니터에 “Hellow, Korea”를 출력하고 줄 바꿈
 - delay(1000); -> 1초 대기

참고로 Serial.begin(통신속도)는 시리얼 통신의 시작을 알리며, 통신 속도를 설정합니다. Serial.println(값) : 시리얼 통신의 데이터를 시리얼 모니터에 출력 후 줄 바꿈 합니다. delay(시간) : 다음 명령어까지 입력 시간만큼 대기하기 위한 함수로 1,000은 1초를 의미하며, 만약 10초간 대기 및 지연이 필요하면 10,000을 입력하면 됩니다.

 

변수란?

변수는 변하는 수 즉, 고정되어있지 않은 수를 의미하며, 변할 수 있는 수를 담아두는 공간입니다. 변수 선언 시에는 사용하고자 하는 알맞은 데이터의 형식 및 저장 공간을 지정하여야 합니다.

자료형


위의 코드 int drone = 100; 에서 int는 데이터 형식 공간의 크기이며, drone는 변수의 이름, 100은 공간에 저장될 데이터입니다. 자료형과 자료형 각각의 크기 및 표현 범위는 아래의 그림을 참고하면 좋을 듯합니다.

IDE 구성


이렇게 코드를 입력하고 업로드 버튼을 눌러 UNO 보드에 업로드합니다. 오타 없이 정상적으로 입력이 되었으면 코드가 보드에 이상 없이 업로드됩니다. 이후 IDE 창의 오른쪽 위에 있는 시리얼 모니터를 누르면 IDE 아래쪽에 시리얼 모니터가 등장하여 아래의 그림과 같은 결과를 확인할 수 있습니다.

수행 결과


이때 만약 Serial.println 함수에서 ln을 빼면 어떻게 될까요? 결과는 아래와 같습니다.

 

응용 1

Serial.print(drone);  Serial.println("Hellow, Korea!");  적용 결과

수행 결과

 

응용 2

Serial.print(drone); Serial.print("Hellow, Korea!"); 적용 결과

수행 결과


Serial.println에서 ln은 줄 바꿈을 의미하므로 적절하게 잘 활용하시면 좋을 거 같습니다.

오늘은 아두이노(Arduino)의 간단한 예제를 통하여 시리얼 통신에 대해서 알아보았습니다. 다음 포스팅에서는 더 쉽고 간단한 예제를 가지고 돌아오도록 하겠습니다.

 

감사합니다::))