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);
}
}
이거랑 비교하세요.
아두이노를 공부하실 때는요. 분리해서 개별적으로 테스트 해서 결과가 정상적으로 나오면 그때 소스를 합쳐주세요. 그래야 오류 문제를 쉽게 해결할 수 있어요.
정말 감사합니다!.
이해가 잘 됬습니다.
parseFloat로 float형 으로 입력을 받겠다고 해주는거군요.
값이 잘 나옵니다. 5 입력하면 5.0으로 소수로 잘 나옵니다!!
혹시 지금 시간 괜찮으시면 카카오톡 아이디좀 알 수 있을까요?
몇가지 궁금한게 좀더 있어서요 .. ㅠㅠ
이메일을 적어주시면 그쪽으로 연락 드릴께요.
감사합니다.
확인메일보냈어요