Cara Menmprogram Lampu Led Pada ESP32

Cara Menmprogram Lampu Led Pada ESP32

Lampu LED (Light Emitting Diode) adalah jenis lampu yang menggunakan dioda untuk menghasilkan cahaya.Berikut adalah cara memprogram lampu led pada esp32 :

#include <Arduino.h>


int port_led = 16;


void on_led()
{
  digitalWrite(port_led,HIGH);
}
void off_led()
{
  digitalWrite(port_led,LOW);
}
void dip_led()
{
  digitalWrite(port_led,HIGH);
  delay(500);
  digitalWrite(port_led,LOW);
}
void dipdip_led()
{
  digitalWrite(port_led,HIGH);
  delay(500);
  digitalWrite(port_led,LOW);
  delay(500);
  digitalWrite(port_led,HIGH);
  delay(500);
  digitalWrite(port_led,LOW);
  delay(500);
}


void setup()
{
Serial.begin(9600);
pinMode(port_led, OUTPUT);
dipdip_led();

}
void loop(){

}

Berikut ini adalah penjelasan dari kode di atas :

1. Pendefinisian Library

#include <Arduino.h>
  • #include <Arduino.h>: Baris ini memasukkan library Arduino.h, yang menyediakan berbagai fungsi dasar seperti pinMode(), digitalWrite(), delay(), dan lain-lain. Ini adalah library standar untuk program berbasis Arduino atau ESP32.

2. Deklarasi Variabel

int port_led = 16;
  • int port_led = 16;: Variabel port_led menyimpan nomor pin GPIO yang akan digunakan untuk mengontrol LED. Dalam hal ini, LED dihubungkan ke GPIO 16.

3. Fungsi on_led()

void on_led()
{
  digitalWrite(port_led, HIGH);
}
  • Fungsi on_led() digunakan untuk menyalakan LED. Fungsi digitalWrite() digunakan untuk mengirimkan sinyal ke pin GPIO yang terhubung ke LED.
    • digitalWrite(port_led, HIGH); akan memberikan sinyal HIGH (tegangan tinggi) ke pin GPIO 16, sehingga LED akan menyala.

4. Fungsi off_led()

void off_led()
{
  digitalWrite(port_led, LOW);
}
  • Fungsi off_led() digunakan untuk mematikan LED. Fungsi digitalWrite() mengirimkan sinyal LOW (tegangan rendah) ke pin GPIO 16, yang akan mematikan LED.

5. Fungsi dip_led()

void dip_led()
{
  digitalWrite(port_led, HIGH);
  delay(500);
  digitalWrite(port_led, LOW);
}
  • Fungsi dip_led() akan membuat LED menyala (berkedip) selama 500 milidetik (0,5 detik) dan kemudian mati selama 500 milidetik.
    • digitalWrite(port_led, HIGH); menyalakan LED.
    • delay(500); memberi jeda selama 500 milidetik.
    • digitalWrite(port_led, LOW); mematikan LED.

6. Fungsi dipdip_led()

void dipdip_led()
{
  digitalWrite(port_led, HIGH);
  delay(500);
  digitalWrite(port_led, LOW);
  delay(500);
  digitalWrite(port_led, HIGH);
  delay(500);
  digitalWrite(port_led, LOW);
  delay(500);
}
  • Fungsi dipdip_led() akan membuat LED berkedip dua kali berturut-turut dengan pola yang sama, yaitu menyala selama 500 milidetik dan mati selama 500 milidetik. Proses ini diulang dua kali.
    • digitalWrite(port_led, HIGH); menyalakan LED.
    • delay(500); memberi jeda 500 milidetik.
    • digitalWrite(port_led, LOW); mematikan LED.
    • Proses ini diulang sekali lagi setelah delay kedua.

7. Fungsi setup()

void setup()
{
  Serial.begin(9600);
  pinMode(port_led, OUTPUT);
  dipdip_led();
}
  • setup() adalah fungsi yang hanya dijalankan sekali ketika board dihidupkan atau di-reset.
    • Serial.begin(9600);: Menginisialisasi komunikasi serial dengan baud rate 9600. Ini memungkinkan pengiriman data melalui serial port, meskipun dalam kode ini tidak ada komunikasi serial yang dilakukan setelahnya.
    • pinMode(port_led, OUTPUT);: Mengatur pin GPIO 16 (tempat LED terhubung) sebagai pin output. Ini diperlukan agar kita bisa mengontrol LED dengan mengirimkan sinyal HIGH atau LOW ke pin tersebut.
    • dipdip_led();: Memanggil fungsi dipdip_led() yang membuat LED berkedip dua kali berturut-turut saat board dijalankan.

8. Fungsi loop()

void loop(){

}
  • loop() adalah fungsi yang akan dijalankan berulang kali setelah setup() selesai dieksekusi. Dalam kode ini, fungsi loop() kosong dan tidak melakukan apa-apa.
    • Biasanya, kode di dalam loop() digunakan untuk menjalankan perintah secara terus-menerus, misalnya menyalakan atau mematikan LED berdasarkan kondisi tertentu.
    • Karena fungsi ini kosong, setelah LED berkedip di setup(), tidak ada aksi lebih lanjut yang dilakukan dalam loop.

Ringkasan Fungsi Program:

  • Program ini mengontrol LED yang terhubung ke GPIO 16.
  • Ketika board dijalankan, LED akan berkedip dua kali berturut-turut (dengan pola 500ms ON, 500ms OFF).
  • Fungsi on_led() dan off_led() digunakan untuk menyalakan dan mematikan LED, tetapi tidak dipanggil dalam loop().
  • Fungsi dip_led() dapat digunakan untuk membuat LED berkedip satu kali, sedangkan dipdip_led() untuk dua kali berkedip.
  • loop() kosong, sehingga setelah LED berkedip dua kali pada saat setup(), program tidak melakukan aksi lainnya.

Modifikasi:

Jika kamu ingin LED terus berkedip atau mengubah perilaku LED dalam loop(), kamu bisa menambahkan kode di dalam fungsi loop(), seperti berikut:

void loop(){
  dip_led();  // LED berkedip satu kali
  delay(1000); // Tunggu 1 detik sebelum berkedip lagi
}

Dengan modifikasi ini, LED akan berkedip satu kali setiap detik, berulang-ulang.

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?