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 sepertipinMode(),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;: Variabelport_ledmenyimpan 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. FungsidigitalWrite()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. FungsidigitalWrite()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 fungsidipdip_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 setelahsetup()selesai dieksekusi. Dalam kode ini, fungsiloop()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.
- Biasanya, kode di dalam
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()danoff_led()digunakan untuk menyalakan dan mematikan LED, tetapi tidak dipanggil dalamloop(). - Fungsi
dip_led()dapat digunakan untuk membuat LED berkedip satu kali, sedangkandipdip_led()untuk dua kali berkedip. loop()kosong, sehingga setelah LED berkedip dua kali pada saatsetup(), 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 :





