Điều chỉnh tốc độ nhấp nháy qua cổng nối tiếp
Thuộc phần Đầu vào trong hành trình Arduino của Coddy. Bài học 17 trên 22.
Nhập 250, bo mạch nhận ba ký tự '2', '5' và '0', rồi đến ký tự xuống dòng. Serial.parseInt() đọc các chữ số và chuyển chúng thành số 250, dừng lại ở ký tự đầu tiên không phải chữ số.
Có một điểm cần lưu ý: nếu không có chữ số nào đến, parseInt() sẽ chờ tối đa 1 giây, rồi trả về 0. Điều này xảy ra sau mỗi lần bạn nhập một số: ký tự xuống dòng kết thúc số vẫn đang chờ, nên Serial.available() lại lớn hơn 0, còn parseInt() không tìm thấy chữ số nào, chờ 1 giây rồi trả về 0.
Vì vậy, hãy xem giá trị 0 là “không có gì hữu ích” và giữ nguyên giá trị cũ:
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n > 0) {
wait = n;
}
}Bạn sẽ thấy đèn LED tạm dừng một giây sau mỗi lần bạn nhập một số: đó là lúc parseInt() chờ.
Thử thách
Trung bìnhĐèn LED ở chân 13 nhấp nháy, sáng trong wait ms và tắt trong wait ms, với giá trị ban đầu của wait là 500. Dùng màn hình Serial để thay đổi tốc độ:
- khi có ký tự đang chờ, đọc một số bằng
Serial.parseInt() - nếu số đó lớn hơn 0, lưu số đó vào
wait
Nhấn Chạy, gửi 100 từ màn hình Serial, rồi nhấn Kiểm tra.
Tự làm thử
const int ledPin = 13;
int wait = 500;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Khi có ký tự đang chờ, đọc một số vào wait (nếu số đó lớn hơn 0)
digitalWrite(ledPin, HIGH);
delay(wait);
digitalWrite(ledPin, LOW);
delay(wait);
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Đầu vào
3Nhập liệu qua cổng nối tiếp
Đọc một ký tự qua cổng nối tiếpLệnh bằng từĐiều chỉnh tốc độ nhấp nháy qua cổng nối tiếpNhấp nháy theo lệnhTự luyện tập: Playground Arduino