Baca Juga
Modul ini bertujuan untuk mengajarkan cara mengendalikan beberapa LED dan buzzer menggunakan Arduino. Kita akan membuat LED berkedip dengan pola tertentu, serta mengaktifkan buzzer untuk memberikan efek suara bersamaan dengan efek visual dari LED.
Komponen yang Dibutuhkan
- 1 Arduino (misalnya Arduino Uno)
- 3 LED
- 3 Resistor (220 ohm atau 330 ohm)
- 1 Buzzer
- Kabel jumper
- Breadboard (opsional)
Skematik Koneksi
LED:
- Hubungkan kaki panjang LED (anoda) ke pin digital Arduino 5, 6, dan 7.
- Hubungkan kaki pendek LED (katoda) ke ground (GND) Arduino melalui resistor.
Buzzer:
- Sambungkan pin positif buzzer ke pin digital Arduino 8.
- Sambungkan pin negatif buzzer ke ground (GND) Arduino.
Kode Program
Berikut adalah kode untuk mengendalikan LED dengan efek berkedip dan buzzer yang aktif bersamaan:
// Definisikan pin untuk LED dan buzzer const int ledPins[] = {5, 6, 7}; const int buzzerPin = 8; void setup() { int i; // Set pin LED dan buzzer sebagai output for (i = 0; i < 3; i++) pinMode(ledPins[i], OUTPUT); pinMode(buzzerPin, OUTPUT); } void loop() { // LED 5 berkedip dengan pola: ON 500ms, OFF 500ms digitalWrite(ledPins[0], HIGH); digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer delay(500); digitalWrite(ledPins[0], LOW); digitalWrite(buzzerPin, LOW); // Matikan buzzer delay(500); // LED 6 berkedip dengan pola: ON 300ms, OFF 300ms digitalWrite(ledPins[1], HIGH); digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer delay(300); digitalWrite(ledPins[1], LOW); digitalWrite(buzzerPin, LOW); // Matikan buzzer delay(300); // LED 7 berkedip dengan pola: ON 700ms, OFF 700ms digitalWrite(ledPins[2], HIGH); digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer delay(700); digitalWrite(ledPins[2], LOW); digitalWrite(buzzerPin, LOW); // Matikan buzzer delay(700); // Semua LED menyala bersamaan digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[1], HIGH); digitalWrite(ledPins[2], HIGH); digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer delay(1000); // Semua LED dan buzzer mati digitalWrite(ledPins[0], LOW); digitalWrite(ledPins[1], LOW); digitalWrite(ledPins[2], LOW); digitalWrite(buzzerPin, LOW); // Matikan buzzer delay(1000); }
Penjelasan Kode
Setup Function:
- Pada fungsi
setup()
, pin untuk LED (5, 6, dan 7) dan buzzer (8) diatur sebagai output.
- Pada fungsi
Loop Function:
- LED pada pin 5 akan berkedip dengan pola nyala 500ms dan mati 500ms, bersamaan dengan buzzer yang menyala.
- LED pada pin 6 akan berkedip dengan pola nyala 300ms dan mati 300ms, dengan buzzer menyala.
- LED pada pin 7 akan berkedip dengan pola nyala 700ms dan mati 700ms, bersama dengan buzzer.
- Setelah LED berkedip, semua LED dinyalakan bersamaan selama 1000ms dan buzzer juga menyala. Kemudian, semua LED dan buzzer dimatikan selama 1000ms sebelum memulai siklus lagi.
Hasil yang Diharapkan
Setelah mengupload kode ke Arduino, LED pada pin 5, 6, dan 7 akan berkedip dengan interval yang berbeda, disertai dengan suara buzzer yang aktif pada setiap interval berkedip. Pada akhirnya, semua LED dan buzzer akan menyala bersamaan sebelum mati untuk memulai siklus berikutnya.
Tambahan Tugas
Silahkan ganti kode berikut, kemudian amati:
// Definisikan pin untuk LED dan buzzer const int ledPins[] = {5, 6, 7}; const int buzzerPin = 4; // Definisikan frekuensi nada dalam Hertz (Hz) const int noteDo = 262; // C const int noteRe = 294; // D const int noteMi = 330; // E const int noteFa = 349; // F const int noteSol = 392; // G const int noteLa = 440; // A const int noteSi = 466; // B // Durasi nada dalam milidetik (ms) const int noteDuration = 500; // Ubah durasi sesuai tempo lagu void setup() { int i; // Set pin LED dan buzzer sebagai output for (i = 0; i < 3; i++) pinMode(ledPins[i], OUTPUT); pinMode(buzzerPin, OUTPUT); } void loop() { // Mainkan nada "Do Re Mi Fa Sol La Si Do" pada buzzer dan LED playNoteAndBlinkLED(noteDo, 0); // Do delay(100); // Jarak antar nada playNoteAndBlinkLED(noteRe, 1); // Re delay(100); // Jarak antar nada playNoteAndBlinkLED(noteMi, 2); // Mi delay(100); // Jarak antar nada playNoteAndBlinkLED(noteFa, 0); // Fa delay(100); // Jarak antar nada playNoteAndBlinkLED(noteSol, 1); // Sol delay(100); // Jarak antar nada playNoteAndBlinkLED(noteLa, 2); // La delay(100); // Jarak antar nada playNoteAndBlinkLED(noteSi, 0); // Si delay(100); // Jarak antar nada playNoteAndBlinkLED(noteDo, 1); // Do (octave tinggi) delay(100); // Jarak antar nada // Semua LED menyala bersamaan di akhir digitalWrite(ledPins[0], HIGH); digitalWrite(ledPins[1], HIGH); digitalWrite(ledPins[2], HIGH); delay(1000); // Semua LED dan buzzer mati digitalWrite(ledPins[0], LOW); digitalWrite(ledPins[1], LOW); digitalWrite(ledPins[2], LOW); digitalWrite(buzzerPin, LOW); delay(1000); } // Fungsi untuk memainkan nada dan menyala LED sesuai dengan nada void playNoteAndBlinkLED(int note, int ledIndex) { tone(buzzerPin, note, noteDuration); // Mainkan nada pada buzzer for (int i = 0; i < 3; i++) { // Menyala LED sesuai dengan nada yang dimainkan digitalWrite(ledPins[ledIndex], HIGH); delay(noteDuration); digitalWrite(ledPins[ledIndex], LOW); delay(50); // Delay singkat untuk efek berkedip } }
Tidak ada komentar:
Posting Komentar