Pemrograman Arduino - Blinking LED dengan Buzzer

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

  1. 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.
  2. 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

  1. Setup Function:

    • Pada fungsi setup(), pin untuk LED (5, 6, dan 7) dan buzzer (8) diatur sebagai output.
  2. 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

 

Theme by Gus Fahmi

© 2014-2023 Home | About | Privacy