Modul 6: Input & Output Dasar Arduino (Tombol dan LED)

PEMBELAJARAN MIKROKONTROLER

INPUT DAN OUTPUT DIGITAL PADA ARDUINO

Belajar mengendalikan LED menggunakan Push Button

TINGKAT PEMULA Level Pembelajaran
TEORI + PRAKTIK Metode Pembelajaran
ARDUINO UNO Platform Praktik

🎯 A. Tujuan Pembelajaran

Setelah mempelajari materi ini, peserta didik diharapkan mampu:

  1. Menjelaskan konsep input dan output digital pada Arduino.
  2. Membedakan perangkat input dan perangkat output.
  3. Memahami fungsi pin INPUT dan OUTPUT.
  4. Menggunakan perintah digitalRead() dan digitalWrite().
  5. Memahami penggunaan kondisi if-else dalam program Arduino.
  6. Membuat rangkaian Push Button untuk mengendalikan LED.
  7. Menganalisis hubungan antara kondisi tombol dan respons LED.

🧠 B. Pengantar Input dan Output

Dalam sistem elektronik otomatis, sebuah perangkat harus mampu menerima informasi dari lingkungan dan memberikan respons berdasarkan informasi tersebut.

Contohnya adalah lampu otomatis. Ketika seseorang menekan tombol, sistem menerima perintah dan menyalakan lampu.

Pada Arduino, proses tersebut melibatkan dua konsep utama, yaitu Input dan Output.

Contoh penerapan:
Push Button berfungsi sebagai perangkat input untuk memberikan perintah, sedangkan LED berfungsi sebagai perangkat output yang menunjukkan hasil perintah tersebut.

🔌 C. Konsep Dasar Input dan Output Digital

1. Input Digital

Input digital adalah data atau sinyal yang diterima Arduino dalam dua kondisi logika, yaitu HIGH dan LOW.

Contoh perangkat input:

  • Push Button atau tombol tekan.
  • Sensor gerak digital.
  • Sensor inframerah digital.
  • Limit switch.
  • Sensor api dengan keluaran digital.

2. Output Digital

Output digital adalah sinyal yang dikeluarkan Arduino untuk mengendalikan perangkat elektronik.

Contoh perangkat output:

  • LED atau lampu indikator.
  • Buzzer aktif.
  • Relay module.
  • Driver motor.

3. Memahami HIGH dan LOW

Kondisi Makna Contoh
HIGH Logika tinggi Tombol terbaca aktif pada rangkaian pull-down
LOW Logika rendah Tombol tidak ditekan pada rangkaian pull-down
Perlu diingat:
HIGH dan LOW menunjukkan kondisi logika pada pin. Maknanya terhadap tombol bergantung pada cara rangkaian dihubungkan. Pada materi ini kita menggunakan rangkaian pull-down.

📦 D. Komponen yang Digunakan

No. Komponen Jumlah Fungsi
1 Arduino Uno 1 Pengendali utama
2 LED 1 Perangkat output
3 Resistor 220 Ω 1 Membatasi arus LED
4 Push Button 1 Perangkat input
5 Resistor 10 kΩ 1 Pull-down input
6 Breadboard 1 Tempat merangkai
7 Kabel jumper Secukupnya Penghubung rangkaian
8 Kabel USB 1 Menghubungkan Arduino ke komputer

⚙️ E. Mengenal Rangkaian Input dan Output

Pada praktik ini, Arduino akan membaca kondisi tombol melalui pin digital 2 dan mengendalikan LED melalui pin digital 13.

1. Koneksi Push Button

Rangkaian menggunakan resistor pull-down 10 kΩ. Tujuannya agar pin input memiliki kondisi LOW yang stabil ketika tombol tidak ditekan.

Diagram koneksi tombol (pull-down)
        Arduino 5V
            |
            |
       [ PUSH BUTTON ]
            |
            +---------- Pin D2
            |
         [10 kΩ]
            |
            |
       Arduino GND
  

Prinsip kerja:

  • Tombol tidak ditekan: pin D2 terbaca LOW.
  • Tombol ditekan: pin D2 terhubung ke 5V dan terbaca HIGH.

2. Koneksi LED

Diagram koneksi LED eksternal
     Arduino D13
          |
      [220 Ω]
          |
       Anoda LED
       (kaki panjang)
          |
       Katoda LED
       (kaki pendek)
          |
     Arduino GND
  

Resistor 220 Ω dipasang seri dengan LED untuk membatasi arus.

3. Tabel Koneksi Pin

Komponen Terhubung ke
Push Button 5V dan D2
Resistor 10 kΩ D2 dan GND
LED D13 melalui resistor 220 Ω
GND LED GND Arduino
⚠️ Perhatian keselamatan:
Jangan menghubungkan pin 5V langsung ke GND. Pastikan resistor pull-down dan resistor LED terpasang dengan benar. Matikan daya saat mengubah rangkaian.
Alternatif:
Arduino Uno memiliki LED bawaan yang umumnya terhubung ke pin 13. Jika menggunakan LED bawaan, LED eksternal dan resistor 220 Ω tidak diperlukan. Namun, siswa tetap dapat memasang LED eksternal untuk mempelajari rangkaian secara langsung.

💻 F. Mengenal Perintah Dasar

1. pinMode()

Digunakan untuk menentukan fungsi pin sebagai INPUT atau OUTPUT.

PINMODE
pinMode(2, INPUT);
pinMode(13, OUTPUT);

2. digitalRead()

Digunakan untuk membaca kondisi logika dari pin digital.

DIGITALREAD
int tombol = digitalRead(2);

Hasil pembacaan disimpan dalam variabel tombol.

3. digitalWrite()

Digunakan untuk mengirimkan kondisi HIGH atau LOW ke pin output.

DIGITALWRITE
digitalWrite(13, HIGH);
digitalWrite(13, LOW);

4. if-else

Digunakan untuk membuat keputusan berdasarkan kondisi tertentu.

PERCABANGAN IF ELSE
if (tombol == HIGH) {
  // Perintah jika tombol aktif
} else {
  // Perintah jika tombol tidak aktif
}
Konsep penting:
Arduino membaca kondisi tombol, memeriksa apakah nilainya HIGH atau LOW, kemudian menentukan tindakan yang harus dilakukan.

🔧 G. Praktik 1: Tombol Mengendalikan LED

Tujuan: Membuat LED menyala ketika tombol ditekan dan mati ketika tombol dilepaskan.

Langkah-langkah praktik

  1. Siapkan Arduino Uno, LED, resistor, push button, breadboard, dan kabel jumper.
  2. Hubungkan tombol sesuai diagram rangkaian.
  3. Hubungkan LED ke pin 13 melalui resistor 220 Ω.
  4. Hubungkan GND rangkaian ke GND Arduino.
  5. Hubungkan Arduino ke komputer menggunakan kabel USB.
  6. Buka Arduino IDE dan buat sketch baru.
  7. Masukkan kode program berikut.
  8. Pilih board dan port yang sesuai.
  9. Klik Verify, kemudian Upload.
  10. Tekan dan lepaskan tombol untuk menguji rangkaian.

Program Arduino

PROGRAM 1 - BUTTON TO LED
// INPUT DAN OUTPUT DIGITAL
// Push Button mengendalikan LED

const int pinTombol = 2;
const int pinLED = 13;

void setup() {
  pinMode(pinTombol, INPUT);
  pinMode(pinLED, OUTPUT);
}

void loop() {
  int kondisiTombol = digitalRead(pinTombol);

  if (kondisiTombol == HIGH) {
    digitalWrite(pinLED, HIGH);
  } else {
    digitalWrite(pinLED, LOW);
  }
}

Hasil yang diharapkan

Kondisi Tombol Input D2 Kondisi LED
Tidak ditekan LOW Mati
Ditekan HIGH Menyala
Dilepaskan LOW Mati
Indikator keberhasilan:
LED hanya menyala selama tombol ditekan dan akan mati ketika tombol dilepaskan.

🔍 H. Analisis Cara Kerja Program

Perhatikan bagian kode berikut:

MEMBACA INPUT
int kondisiTombol = digitalRead(pinTombol);

Perintah tersebut membaca kondisi tombol pada pin 2 dan menyimpan hasilnya ke dalam variabel kondisiTombol.

Selanjutnya Arduino melakukan pemeriksaan:

MEMERIKSA KONDISI
if (kondisiTombol == HIGH) {
  digitalWrite(pinLED, HIGH);
} else {
  digitalWrite(pinLED, LOW);
}

Artinya:

  • Jika tombol ditekan, Arduino membaca HIGH dan LED menyala.
  • Jika tombol tidak ditekan, Arduino membaca LOW dan LED mati.
Ingat:
Arduino akan terus membaca kondisi tombol karena instruksi tersebut berada di dalam fungsi loop().

🚀 I. Praktik 2: LED Berkedip Saat Tombol Ditekan

Pada praktik kedua, kita akan memodifikasi program sehingga LED berkedip selama tombol ditekan.

Ketentuan program

  • Ketika tombol ditekan, LED berkedip.
  • LED menyala selama 500 milidetik.
  • LED mati selama 500 milidetik.
  • Ketika tombol dilepaskan, LED mati.
PROGRAM 2 - LED BLINK WITH BUTTON
const int pinTombol = 2;
const int pinLED = 13;

void setup() {
  pinMode(pinTombol, INPUT);
  pinMode(pinLED, OUTPUT);
}

void loop() {
  int kondisiTombol = digitalRead(pinTombol);

  if (kondisiTombol == HIGH) {
    digitalWrite(pinLED, HIGH);
    delay(500);

    digitalWrite(pinLED, LOW);
    delay(500);
  } else {
    digitalWrite(pinLED, LOW);
  }
}
Perhatikan perbedaannya:
Pada program ini terdapat delay(). Akibatnya, Arduino tidak membaca tombol selama jeda berlangsung. LED juga dapat menyelesaikan satu siklus kedipan setelah tombol dilepaskan. Ini merupakan keterbatasan pendekatan sederhana yang perlu dipahami.

Pertanyaan analisis

  1. Apa perbedaan program pertama dan kedua?
  2. Mengapa perintah delay() digunakan?
  3. Apa pengaruh jika delay(500) diubah menjadi delay(100)?
  4. Mengapa LED masih mungkin menyala sesaat setelah tombol dilepaskan?

🏆 J. Tantangan Praktik

Misi: Kembangkan sistem kontrol LED menggunakan tombol!

Buatlah program dengan ketentuan berikut:

  1. LED mati ketika tombol tidak ditekan.
  2. LED menyala ketika tombol ditekan.
  3. Ubah program agar LED berkedip lebih cepat.
  4. Jelaskan perubahan kode yang dilakukan.

Tantangan lanjutan:

Tambahkan satu LED lagi. Buatlah dua LED dengan perilaku berbeda ketika tombol ditekan.

Bukti pekerjaan:

  1. Foto rangkaian yang telah dibuat.
  2. Foto atau video pengujian.
  3. Salinan program Arduino.
  4. Penjelasan cara kerja rangkaian.

🛠️ K. Mengatasi Kesalahan Praktik

Masalah Kemungkinan Penyebab Solusi
LED tidak menyala Polaritas LED terbalik Periksa kaki anoda dan katoda
Tombol tidak merespons Koneksi pin salah Periksa hubungan D2
LED selalu menyala Rangkaian pull-down salah Periksa resistor 10 kΩ
LED berkedip tidak teratur Koneksi tombol tidak stabil Periksa breadboard dan kabel
Program gagal diunggah Board atau port salah Periksa pengaturan Arduino IDE

📝 L. Evaluasi Pemahaman

Jawablah pertanyaan berikut secara mandiri berdasarkan materi yang telah dipelajari.

  1. Apa yang dimaksud dengan input digital pada Arduino?
  2. Apa perbedaan perangkat input dan output? Berikan masing-masing dua contoh.
  3. Apa fungsi perintah digitalRead()?
  4. Apa fungsi perintah digitalWrite()?
  5. Mengapa resistor pull-down 10 kΩ digunakan pada rangkaian tombol?
  6. Apa yang terjadi jika pin input tidak memiliki kondisi logika yang stabil?
  7. Jelaskan cara kerja percabangan if-else pada program LED.
  8. Mengapa LED menyala ketika tombol ditekan pada rangkaian pull-down?
  9. Apa yang terjadi jika pinMode(2, INPUT) tidak dituliskan?
  10. Bagaimana cara mengubah program agar LED menyala ketika tombol tidak ditekan?
Ketentuan pengerjaan:
Jawaban harus disertai alasan dan penjelasan. Hindari hanya menyalin kalimat dari materi.

💬 M. Refleksi Pembelajaran

Jawablah pertanyaan berikut berdasarkan pengalaman praktik.

  1. Apa hal baru yang kalian pelajari dari materi ini?
  2. Bagian mana yang paling sulit dipahami?
  3. Bagaimana hubungan antara input tombol dan output LED?
  4. Kesalahan apa yang kalian temukan selama merangkai?
  5. Bagaimana konsep input dan output dapat diterapkan dalam sistem otomatisasi?

📌 N. Kesimpulan

Input dan output digital merupakan konsep dasar dalam pemrograman mikrokontroler.

Input digunakan untuk menerima informasi dari perangkat luar, sedangkan output digunakan untuk memberikan respons berdasarkan instruksi program.

Melalui penggunaan digitalRead(), Arduino dapat membaca kondisi tombol. Selanjutnya, if-else digunakan untuk menentukan tindakan, dan digitalWrite() digunakan untuk mengendalikan LED.

🎯 Target Akhir Pembelajaran
Peserta didik mampu membuat rangkaian input dan output digital sederhana, menulis program Arduino, serta menjelaskan hubungan antara input, proses, dan output.