temp = Serial.parseFloat();
그냥 Serial.read()하시면 1byte 단위로 읽게 되고 실질적으로 Serial 모니터로 출력하더라도 1byte 값으로 아스키코드값이 출력됩니다
만약 온도를 15도을 입력하게 되면
출력은
1 => 49.00
5 => 53.00
이렇게 출력됩니다. 처음공부하시는 분들이 Serial 통신을 할 때 읽는법이 익숙안해서 발생하는 오류이지요.
float형으로 읽으시면 간단히 해결 됩니다.
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available()){
float temp = Serial.read();
Serial.println(temp);
}
}
위 코딩으로 어떻게 찍히는지 테스트 해보세요.
void loop()
{
if(Serial.available()){
float temp = Serial.parseFloat();
Serial.println(temp);
}
}
이거랑 비교하세요.
아두이노를 공부하실 때는요. 분리해서 개별적으로 테스트 해서 결과가 정상적으로 나오면 그때 소스를 합쳐주세요. 그래야 오류 문제를 쉽게 해결할 수 있어요.
RE: 지그재그 주행 패턴 아두이노 RC카 응용 (아두이노)