일상 박형

카테고리       

안녕하세요 공대 박형입니다.

 

오늘은 아두이노 시리얼 통신을 통해 데이터를 read 해보겠습니다.

 

코드부터 보시죠.

 

void setup()

{

  Serial.begin(9600);

}

 

void loop()

{

  if (Serial.available()){                 // 만약 시리얼 통신이 온다면

          char data = Serial.read();  // 시리얼 통신 값을 문자형변수 data에 저장

          Serial.println(data);                     // 그 값을 출력

  }

 

  delay(100);

 

}

 

 

짤과 같이 시리얼 모니터를 통해 정보를 전달하면 전달한 값을 data변수에 저장하고 시리얼 모니터에 출력합니다. 하지만 char변수는 문자는 저장 가능하지만 "mom"이나 "15"같은 문자가 하나 이상인 문자열은 한번에 출력하지 못하고 하나씩 출력하는 것을 볼 수 있습니다.

 

이와 같은 문제를 해결하기 위해 char 변수형 대신 String 변수형을 사용하면 됩니다.

 

String 변수를 사용하면 단일 문자뿐만 아니라 문자열도 출력이 가능하여 다양하게 활용할 수 있습니다. 주로 통신에서 어떤 동작을 실행하기위한 조건으로 많이 사용됩니다.

 

만약 숫자형 변수 int에 저장하면 어떤일이 발생할까요??

제가 보낸 값과 다른 숫자를 출력하고 문자를 보내도 숫자로 출력하는 모습을 확인할 수 있습니다. 이는 int형으로 데이터를 보낼 경우 아두이노가 데이터를 아스키코드로 인식하여 출력하기 떄문입니다. 아스키코드관련 내용은 추후에 업로드하도록 하겠습니다.

 

 

다음 시간에는 아두이노 3색 RGB LED를 제어하는 방법에 대해 알아보겠습니다.

 

궁금한 부분은 질문 해주시면 성심껏 답변해드리겠습니다.

 

읽어주셔서 감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band