Menu
CoddyTech

Lampu dengan Pengatur Waktu

Termasuk bagian Pengaturan Waktu Tanpa Delay dalam perjalanan Arduino di Coddy. Pelajaran 6 dari 18.

Lampu tangga menyala saat kamu menekan tombolnya, lalu mati sendiri beberapa saat kemudian. Tekan lagi saat lampu menyala, dan waktunya mulai dihitung ulang.

Ini membutuhkan dua hal: waktu penekanan terakhir dan apakah lampu menyala. Simpan waktunya dalam unsigned long saat tombol ditekan:

if (digitalRead(buttonPin) == LOW) {
  pressedAt = millis();     // mulai (atau mulai lagi) menghitung waktu
  lightOn = true;
  digitalWrite(ledPin, HIGH);
}

Lalu, pada setiap perulangan, periksa berapa lama waktu telah berlalu:

if (lightOn && millis() - pressedAt >= onTime) {
  lightOn = false;
  digitalWrite(ledPin, LOW);
}

Kedua bagian ini tidak pernah menunggu, jadi penekanan tombol dapat terdeteksi kapan saja, bahkan saat lampu sudah menyala. Jika kamu menggunakan delay(2000) setelah menekan tombol, penekanan kedua selama waktu tunggu akan terlewat.

challenge icon

Tantangan

Mudah

Buat lampu tangga:

  • satu kali menekan tombol langsung menyalakan LED pada pin 13
  • 2 detik setelah tombol ditekan, lampu mati dengan sendirinya
  • menekan tombol saat lampu menyala akan memulai ulang hitungan 2 detik

Tekan Jalankan, tekan tombol beberapa kali, lalu Periksa.

Coba sendiri

const int ledPin = 13;
const int buttonPin = 2;
const unsigned long onTime = 2000;   // berapa lama lampu tetap menyala

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  // saat tombol ditekan: nyalakan LED dan catat waktunya

  // saat durasi onTime telah berlalu sejak itu: matikan LED
}
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