Jumat, 07 Agustus 2026

Push Buttiom

 Berikut penjelasan setiap bagian program agar mudah dipahami oleh siswa.

1. Mendeklarasikan Pin dan Variabel

const int ledPin = 13;
const int buttonPin = 2;

bool ledState = LOW;
bool lastButtonState = LOW;
bool buttonState;

Penjelasan:

  • const int ledPin = 13;

    • Menentukan bahwa LED berada pada pin 13.

    • const berarti nilainya tetap dan tidak dapat diubah.

  • const int buttonPin = 2;

    • Menentukan bahwa push button terhubung ke pin 2.

  • bool ledState = LOW;

    • Menyimpan kondisi LED.

    • LOW = mati.

    • HIGH = menyala.

  • bool lastButtonState = LOW;

    • Menyimpan keadaan tombol sebelumnya.

    • Digunakan agar satu kali tekan hanya dihitung sekali.

  • bool buttonState;

    • Menyimpan keadaan tombol saat ini.


2. Fungsi setup()

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

Penjelasan:
Fungsi setup() hanya dijalankan sekali saat Arduino pertama kali dinyalakan.

  • pinMode(ledPin, OUTPUT);

    • Mengatur pin 13 sebagai keluaran (Output) untuk mengendalikan LED.

  • pinMode(buttonPin, INPUT);

    • Mengatur pin 2 sebagai masukan (Input) untuk membaca tombol.


3. Fungsi loop()

void loop() {

Fungsi loop() akan dijalankan terus-menerus selama Arduino hidup.


4. Membaca Tombol

buttonState = digitalRead(buttonPin);

Penjelasan:

  • digitalRead() membaca kondisi pin 2.

  • Jika tombol ditekan → bernilai HIGH.

  • Jika tombol dilepas → bernilai LOW.

Nilai tersebut disimpan pada variabel buttonState.


5. Mendeteksi Tekanan Tombol

if (buttonState == HIGH && lastButtonState == LOW) {

Artinya:

  • Tombol sekarang ditekan (HIGH).

  • Sebelumnya belum ditekan (LOW).

Dengan cara ini, Arduino hanya merespons saat awal tombol ditekan, bukan selama tombol masih ditahan.


6. Mengubah Kondisi LED

ledState = !ledState;

Tanda ! berarti kebalikan.

Misalnya:

  • Sebelumnya LOW → berubah menjadi HIGH.

  • Sebelumnya HIGH → berubah menjadi LOW.

Jadi setiap tombol ditekan, LED berganti kondisi.


7. Menyalakan atau Mematikan LED

digitalWrite(ledPin, ledState);

Perintah ini mengirimkan nilai ledState ke pin 13.

  • Jika ledState = HIGH, LED menyala.

  • Jika ledState = LOW, LED mati.


8. Debounce

delay(50);

Saat tombol ditekan, kontak mekanis sering bergetar (bouncing) sehingga Arduino bisa menganggap satu kali tekan sebagai beberapa kali tekan.

delay(50) memberi jeda 50 milidetik agar pembacaan tombol menjadi stabil.


9. Menyimpan Kondisi Tombol

lastButtonState = buttonState;

Nilai tombol saat ini disimpan sebagai kondisi sebelumnya.

Pada putaran loop() berikutnya, Arduino dapat membandingkan apakah tombol baru saja ditekan atau tidak.


Alur Program

Arduino hidup
      │
      ▼
Setup dijalankan
      │
      ▼
Loop mulai
      │
      ▼
Baca tombol
      │
      ▼
Apakah tombol baru ditekan?
      │
  Ya ───── Tidak
   │          │
   ▼          │
Ubah status LED
   │
   ▼
Tampilkan ke pin 13
   │
   ▼
Simpan kondisi tombol
   │
   ▼
Kembali ke awal loop

Intinya: setiap kali push button ditekan satu kali, LED pada pin 13 akan berganti kondisi:

  • Tekan pertama → LED menyala.

  • Tekan kedua → LED mati.

  • Tekan ketiga → LED menyala lagi.

  • Dan seterusnya. Program ini mengajarkan konsep input digital, output digital, variabel, percabangan (if), dan logika Boolean pada Arduino.

Tidak ada komentar:

Posting Komentar

Push Buttiom

 Berikut penjelasan setiap bagian program agar mudah dipahami oleh siswa. 1. Mendeklarasikan Pin dan Variabel const int ledPin = 13; const i...