Mikrokontroler dengan Arduino Uno – Kontrol LED

Tujuan

Setelah menyelesaikan praktik ini, mahasiswa diharapkan mampu:

  1. Memahami cara kerja Arduino Uno dalam mengontrol perangkat eksternal.
  2. Menyusun rangkaian elektronik sederhana menggunakan LED dan resistor.
  3. Menulis dan mengunggah program Arduino untuk mengontrol LED.

Alat dan Bahan

  1. Hardware:
    • 1 x Arduino Uno
    • 1 x Kabel USB (untuk koneksi ke komputer)
    • 1 x LED (merah atau warna lain)
    • 1 x Resistor 220 ohm
    • Kabel jumper
    • Breadboard
  2. Software:

Dasar Teori

Arduino Uno adalah platform mikrokontroler berbasis ATMega328P yang sering digunakan untuk proyek IoT, robotika, dan aplikasi elektronik lainnya. Dalam praktik ini, kita akan menggunakan Arduino Uno untuk menyalakan dan mematikan LED melalui kode program.

Prinsip Kerja LED

Rangkaian LED dan resistor pada Arduino Uno

  • LED (Light Emitting Diode) hanya mengalirkan arus dalam satu arah (anoda ke katoda).
  • Resistor digunakan untuk membatasi arus agar LED tidak rusak.

Konsep Digital Output di Arduino

  • Arduino menggunakan fungsi digitalWrite(pin, HIGH) untuk memberikan sinyal logika tinggi (5V) ke pin tertentu, dan digitalWrite(pin, LOW) untuk memberikan logika rendah (0V).

Langkah Praktikum

1. Persiapan Rangkaian

  1. Hubungkan komponen sebagai berikut:
    • Sambungkan kaki panjang LED (anoda) ke pin digital 13 pada Arduino melalui resistor 220 ohm.
    • Sambungkan kaki pendek LED (katoda) ke pin GND pada Arduino.
  2. Pastikan rangkaian seperti gambar berikut:

arduino-led

Arduino Uno:   
Pin 13 ---- Resistor ---- LED Anoda
GND --------------------- LED Katoda

2. Penulisan Program

  1. Buka Arduino IDE di komputer Anda.
  2. Tuliskan kode berikut di Arduino IDE:
    // Program: Mengontrol LED menggunakan Arduino Uno
    
    // Pin LED terhubung ke pin digital 13
    const int ledPin = 13;
    
    void setup() {
    // Atur pin 13 sebagai output
    pinMode(ledPin, OUTPUT);
    }
    
    void loop() {
    // Nyalakan LED
    digitalWrite(ledPin, HIGH);
    delay(1000); // Tunggu selama 1 detik
    
    // Matikan LED
    digitalWrite(ledPin, LOW);
    delay(1000); // Tunggu selama 1 detik
    }
  3. Simpan program dengan nama ino.

3. Unggah Program ke Arduino Uno

  1. Sambungkan Arduino Uno ke komputer menggunakan kabel USB.
  2. Pilih port yang sesuai di Arduino IDE:
    • Klik Tools > Port, lalu pilih port tempat Arduino terhubung.
    • Pastikan board yang dipilih adalah Arduino Uno di Tools > Board.
  3. Klik tombol Upload (ikon panah) untuk mengunggah program ke Arduino.

4. Pengamatan

  • LED akan menyala selama 1 detik, lalu mati selama 1 detik, dan terus berulang.
  • Jika LED tidak menyala:
    • Periksa koneksi kabel dan komponen.
    • Pastikan resistor terpasang dengan benar.

Eksperimen Tambahan

  1. Modifikasi Durasi Kedip LED
    • Ubah nilai pada fungsi delay() untuk mengatur durasi nyala dan mati LED.
    • Contoh:
delay(500); // Nyala/mati selama 0.5 detik
  1. Gunakan Pin Digital Lain
    • Sambungkan LED ke pin lain (misalnya pin 7), lalu ubah program:
const int ledPin = 7;
  1. Kontrol Beberapa LED
    • Tambahkan lebih banyak LED dan atur nyala/matinya secara bergantian.

Tugas Praktikum

  1. Modifikasi program sehingga LED menyala selama 2 detik dan mati selama 0.5 detik.
  2. Tambahkan satu LED lagi pada pin digital 8, lalu buat kedua LED menyala secara bergantian dengan pola:
    • LED di pin 13 menyala, LED di pin 8 mati selama 1 detik.
    • LED di pin 13 mati, LED di pin 8 menyala selama 1 detik.
  3. Buat program untuk menyalakan LED berdasarkan input dari tombol push button.
    • Saat tombol ditekan, LED menyala.
    • Saat tombol dilepas, LED mati.

Menghitung Nilai Resistor untuk LED

Resistor seri membatasi arus agar LED dan pin Arduino tidak rusak. Rumusnya:

R = (Vsumber − Vf) / If

Vf adalah tegangan maju LED dan If arus yang diinginkan (10–15 mA sudah cukup terang). Contoh LED merah (Vf ≈ 2 V) dari pin 5 V dengan arus 15 mA: R = (5 − 2) / 0,015 = 200 Ω, lalu pilih nilai standar terdekat di atasnya, yaitu 220 Ω.

Warna LEDVf tipikalResistor untuk 5 V (±15 mA)
Merah1,8–2,2 V220 Ω
Kuning / oranye2,0–2,2 V220 Ω
Hijau2,0–3,2 V150–220 Ω
Biru / putih3,0–3,3 V120–150 Ω

Batas aman arus satu pin Arduino Uno adalah 20 mA (maksimum mutlak 40 mA). Jangan pernah menyambung LED langsung ke pin tanpa resistor.

Memakai LED Bawaan Arduino Uno (LED_BUILTIN)

Arduino Uno sudah punya LED kecil di board yang terhubung ke pin 13, berlabel “L”. Untuk uji cepat tanpa rangkaian, gunakan konstanta LED_BUILTIN:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
}

Kedip LED Tanpa delay(): Teknik millis()

Fungsi delay() menghentikan seluruh program, sehingga Arduino tidak bisa membaca tombol atau sensor selama menunggu. Teknik millis() mencatat waktu terakhir LED berubah, lalu mengecek apakah selang waktunya sudah lewat. Program tetap berjalan dan bisa mengerjakan hal lain.

const int ledPin = 13;
const unsigned long interval = 1000;   // 1 detik
unsigned long waktuTerakhir = 0;
bool ledNyala = false;

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

void loop() {
  unsigned long sekarang = millis();
  if (sekarang - waktuTerakhir >= interval) {
    waktuTerakhir = sekarang;
    ledNyala = !ledNyala;
    digitalWrite(ledPin, ledNyala);
  }
  // kode lain (baca sensor, tombol) tetap berjalan di sini
}

Kontrol LED dengan Push Button (Pembahasan Tugas 3)

Cara paling sederhana adalah memakai resistor pull-up internal Arduino, sehingga tidak perlu resistor tambahan untuk tombol:

  • Satu kaki tombol ke pin 2, kaki lainnya ke GND.
  • LED tetap di pin 13 melalui resistor 220 Ω.
const int tombolPin = 2;
const int ledPin = 13;

void setup() {
  pinMode(tombolPin, INPUT_PULLUP);  // tidak ditekan = HIGH, ditekan = LOW
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (digitalRead(tombolPin) == LOW) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Dengan INPUT_PULLUP, logika menjadi terbalik: tombol ditekan terbaca LOW. Ini cara yang umum dipakai di industri karena kabel putus terbaca sebagai “tidak ditekan”, bukan sebagai sinyal acak.

Troubleshooting

GejalaPenyebab umumSolusi
LED tidak menyala sama sekaliKaki LED terbalikKaki panjang (anoda) ke arah pin, kaki pendek ke GND
LED redupResistor terlalu besar atau pin belum di-set OUTPUTPakai 220 Ω dan pastikan ada pinMode(pin, OUTPUT)
Upload gagal / port tidak munculKabel USB hanya untuk charging atau driver belum terpasangGanti kabel data; pasang driver CH340 untuk board clone
LED berkedip acak saat memakai tombolInput mengambang (floating)Gunakan INPUT_PULLUP atau resistor pull-down 10 kΩ

FAQ

Bolehkah LED disambung langsung ke pin tanpa resistor?

Tidak. LED akan menarik arus berlebih yang bisa merusak LED dan pin mikrokontroler.

Apakah posisi resistor harus di sisi anoda?

Tidak harus. Resistor boleh di sisi anoda atau katoda karena keduanya berada dalam satu jalur seri; arusnya sama.

Kenapa contoh memakai pin 13?

Karena pin 13 juga terhubung ke LED bawaan board, sehingga hasilnya terlihat walaupun rangkaian belum benar. Untuk proyek lain, pin digital mana pun (2–13) bisa dipakai.

Kesimpulan

Melalui praktik ini, Anda telah mempelajari cara menggunakan Arduino Uno untuk mengontrol LED. Kemampuan ini dapat diperluas untuk mengontrol perangkat lain seperti motor, sensor, atau perangkat IoT.

Baca juga: Ingin Jadi Ahli IoT & Otomasi? Semua Bisa Dimulai dari Arduino! untuk memahami roadmap lengkap belajar Arduino dari dasar hingga proyek IoT.

Baca juga: Kontrol LED Arduino Uno Berdasarkan Jarak, Pinout GPIO Arduino Uno, dan Bagian-Bagian Arduino Uno.

Related Articles

Tinggalkan Balasan

Chat Langsung dengan Kami
Staff bisaioti 1 — +62 823-3306-4821 E-Course, Offline Course, Hardware & Teknis IoT/OT Staff bisaioti 2 — +62 823-3306-4821 Training Korporat & Toko Hardware