Kecepatan Kedip dari Serial
Termasuk bagian Input dalam perjalanan Arduino di Coddy. Pelajaran 17 dari 22.
Ketik 250, lalu board menerima tiga karakter, '2', '5', dan '0', kemudian karakter baris baru. Serial.parseInt() membaca digit dan mengubahnya menjadi angka 250, lalu berhenti pada karakter pertama yang bukan digit.
Ada satu hal yang perlu diperhatikan: jika tidak ada digit yang datang, parseInt() menunggu hingga 1 detik, lalu mengembalikan 0. Hal ini terjadi setiap kali kamu mengetik angka: karakter baris baru yang mengakhiri angka itu masih menunggu, jadi Serial.available() kembali lebih dari 0, dan parseInt() tidak menemukan digit, menunggu selama satu detik, lalu mengembalikan 0.
Jadi, anggap 0 sebagai "tidak ada yang berguna" dan pertahankan nilai sebelumnya:
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n > 0) {
wait = n;
}
}Kamu akan melihat LED berhenti sejenak selama satu detik setelah setiap angka yang kamu ketik: itulah parseInt() yang sedang menunggu.
Tantangan
SedangLED pada pin 13 berkedip, menyala selama wait ms dan mati selama wait ms, dengan nilai awal wait sebesar 500. Ubah kecepatannya melalui monitor Serial:
- saat ada karakter yang menunggu, baca angka dengan
Serial.parseInt() - jika nilainya lebih dari 0, simpan di
wait
Tekan Jalankan, kirim 100 dari monitor Serial, lalu tekan Periksa.
Coba sendiri
const int ledPin = 13;
int wait = 500;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// jika ada karakter yang menunggu, baca angka ke dalam wait (jika nilainya lebih dari 0)
digitalWrite(ledPin, HIGH);
delay(wait);
digitalWrite(ledPin, LOW);
delay(wait);
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input
Latihan sendiri: Playground Arduino