Program Pertama: Blink LED
Blink LED adalah "Hello World"-nya dunia embedded system. Pada tutorial ini, kita akan membuat LED bawaan ESP32 (built-in LED) berkedip setiap 1 detik menggunakan Arduino IDE.
Apa itu GPIO?
GPIO (General Purpose Input/Output) adalah pin pada mikrokontroler yang bisa diprogram sebagai input atau output. ESP32 memiliki 34 pin GPIO yang masing-masing bisa digunakan untuk berbagai fungsi.
Built-in LED pada ESP32 DevKit biasanya terhubung ke pin GPIO 2. Namun ini bisa berbeda tergantung versi board yang kamu gunakan.
Kode Program Blink LED
Berikut adalah kode lengkap untuk membuat LED berkedip:
// Mendefinisikan pin LED
#define LED_PIN 2
void setup() {
// Set pin LED sebagai OUTPUT
pinMode(LED_PIN, OUTPUT);
// Mulai Serial Monitor untuk debugging
Serial.begin(115200);
Serial.println("Program Blink LED ESP32 dimulai!");
}
void loop() {
// Nyalakan LED
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
delay(1000); // Tunggu 1 detik
// Matikan LED
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
delay(1000); // Tunggu 1 detik
}
Penjelasan Kode
setup() Function
Fungsi setup() hanya dijalankan SEKALI saat ESP32 pertama kali dinyalakan atau direset. Di sini kita:
pinMode(LED_PIN, OUTPUT)— Mengatur pin LED sebagai outputSerial.begin(115200)— Menginisialisasi komunikasi serial dengan baud rate 115200
loop() Function
Fungsi loop() dijalankan BERULANG-ULANG selamanya setelah setup() selesai. Di sini kita:
digitalWrite(LED_PIN, HIGH)— Memberikan tegangan ke pin LED (LED menyala)delay(1000)— Menunggu 1000 milidetik (1 detik)digitalWrite(LED_PIN, LOW)— Mematikan tegangan di pin LED (LED padam)
Cara Upload Program
- Salin kode di atas ke Arduino IDE
- Pastikan board sudah dipilih: Tools → Board → ESP32 Arduino → ESP32 Dev Module
- Pilih port yang benar di Tools → Port
- Klik tombol Upload (panah ke kanan)
- Tunggu hingga muncul "Done uploading"
Modifikasi: Blink dengan Kecepatan Berbeda
Coba eksperimen dengan mengubah nilai delay untuk kecepatan kedip yang berbeda:
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(100); // Cepat: 100ms
digitalWrite(LED_PIN, LOW);
delay(100);
}
Dengan delay 100ms, LED akan berkedip 5 kali lebih cepat dari sebelumnya!
Tantangan: Modifikasi program agar LED berkedip dengan pola SOS morse code: 3 kedipan cepat, 3 kedipan lambat, 3 kedipan cepat.