Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

LED 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);
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Input

Latihan sendiri: Playground Arduino