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형으로 데이터를 보낼 경우 아두이노가 데이터를 아스키코드로 인식하여 출력하기 떄문입니다. 아스키코드관련 내용은 추후에 업로드하도록 하겠습니다.