Menu
CoddyTech

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 = berkedip

Pisahkan 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.

challenge icon

Tantangan

Mudah

Tombol hijau terhubung ke pin 2 dan tombol merah ke pin 3.

  • tombol hijau mengatur mode ke 1, tombol merah mengaturnya ke 0
  • saat mode bernilai 1, LED pada pin 13 berkedip menggunakan millis(), menyala selama 500 ms dan mati selama 500 ms
  • saat mode bernilai 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
}
quiz iconUji dirimu

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

Semua pelajaran di Pengaturan Waktu Tanpa Delay

Latihan sendiri: Playground Arduino