시리얼로 깜박임 속도 조절
Coddy Arduino 여정의 입력 섹션에 포함된 레슨. 22개 중 17번째.
250을 입력하면 보드에 '2', '5', '0' 세 문자가 전송된 다음 줄바꿈 문자가 전송됩니다. Serial.parseInt()는 숫자를 읽어 숫자 250으로 변환하고, 숫자가 아닌 첫 번째 문자에서 멈춥니다.
여기에는 한 가지 주의할 점이 있습니다. 숫자가 도착하지 않으면 parseInt()는 숫자가 도착할 때까지 최대 1초 동안 기다린 다음 0을 반환합니다. 입력하는 숫자마다 이런 일이 발생합니다. 숫자를 끝낸 줄바꿈 문자가 여전히 대기 중이므로 Serial.available()이 다시 0보다 커지고, parseInt()는 숫자를 찾지 못해 1초간 기다린 뒤 0을 반환합니다.
그러므로 0은 "쓸모 있는 값이 없음"으로 처리하고 이전 값을 유지하세요.
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n > 0) {
wait = n;
}
}입력한 숫자마다 LED가 1초 동안 멈추는 것을 볼 수 있습니다. 이것은 parseInt()가 기다리는 시간입니다.
챌린지
중급핀 13의 LED가 깜박입니다. waitms 동안 켜지고 waitms 동안 꺼지며, wait는 500에서 시작합니다. Serial 모니터에서 속도를 변경할 수 있게 하세요:
- 문자가 입력 대기 중이면
Serial.parseInt()로 숫자를 읽습니다 - 숫자가 0보다 크면
wait에 저장합니다
Run을 누르고, Serial 모니터에서 100을 전송한 다음 Check를 누르세요.
직접 해보기
const int ledPin = 13;
int wait = 500;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// 문자가 입력 대기 중이면 숫자를 읽어 wait에 저장합니다(0보다 큰 경우).
digitalWrite(ledPin, HIGH);
delay(wait);
digitalWrite(ledPin, LOW);
delay(wait);
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
입력의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드