Mengingat Mode
Termasuk bagian Pengaturan Waktu Tanpa Delay dalam perjalanan Arduino di Coddy. Pelajaran 7 dari 18.
Tekanan tombol berlangsung selama sepersekian detik, tetapi hal yang dimulainya bisa berlangsung jauh lebih lama. Agar proses tetap berjalan setelah tombol dilepas, sketch harus mengingat apa yang sedang dilakukannya. Variabel untuk itu disebut status atau mode:
int mode = 0; // 0 = mati, 1 = berkedipPisahkan loop() menjadi dua bagian. Pertama, input hanya mengubah mode. Lalu, bagian perulangan lainnya melakukan apa yang diperintahkan oleh mode:
// 1. input mengubah mode
if (digitalRead(blinkButton) == LOW) {
mode = 1;
}
// 2. mode menentukan apa yang terjadi
if (mode == 1) {
// kedipkan LED dengan millis()
} else {
digitalWrite(ledPin, LOW);
}Setiap angka mewakili satu hal yang bisa dilakukan sketch. Tuliskan arti setiap angka dalam komentar. Sketch bisa memiliki mode sebanyak yang dibutuhkan: 0, 1, 2, 3, dan seterusnya.
Tantangan
MudahTombol hijau terhubung ke pin 2 dan tombol merah ke pin 3.
- tombol hijau mengatur
modeke 1, tombol merah mengaturnya ke 0 - saat
modebernilai 1, LED pada pin 13 berkedip menggunakanmillis(), menyala selama 500 ms dan mati selama 500 ms - saat
modebernilai 0, LED mati
Tekan Jalankan, tekan tombol hijau, lepaskan, lalu tekan tombol merah. Setelah itu, tekan Periksa.
Coba sendiri
const int ledPin = 13;
const int blinkButton = 2; // hijau
const int offButton = 3; // merah
int mode = 0; // 0 = mati, 1 = berkedip
unsigned long previousMillis = 0;
int ledState = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(blinkButton, INPUT_PULLUP);
pinMode(offButton, INPUT_PULLUP);
}
void loop() {
// 1. tombol hanya mengubah mode
// 2. lalu ikuti mode yang aktif
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengaturan Waktu Tanpa Delay
1millis()
Jam millis()Waktu dalam unsigned longLED Berkedip Tanpa JedaDua LED, Dua KecepatanLED Berkedip Saat Tombol Mengubah StatusLampu dengan Pengatur Waktu4Pengaturan Waktu yang Presisi
Mengukur dengan micros()Saat millis() Berputar KembaliStopwatch Tombol2Mesin Keadaan
Mengingat ModeMemilih dengan switchKeadaan Bernama dengan enumMesin Keadaan Lampu Lalu LintasBergilir Antar-Mode dengan TombolLatihan sendiri: Playground Arduino