Setelah kita melakukan experimen menyalakan LED builtin pada ESP32, kali ini kita akan melakukan percobaan menyalakan LED External
Peralatan
- ESP32 DevKit V1
- LED eksternal
- Resistor 330 ohm dan 10k ohm
- Push Button
- Breadboard
- Kabel jumper
Langkah-langkah:
Hubungkan LED ke ESP32.
- Hubungkan kaki positif LED ke pin GPIO 05 ESP32 melalui resistor 330 ohm.
- Hubungkan kaki negatif LED ke ground (GND).
Pasang ESP32 ke breadboard.
Pastikan ESP32 terpasang dengan benar pada breadboard.
Hubungkan pin 3v3 ke jalur Positif
- Hubungkan GND ke jalur negetif
- Hubungkan kaki push button ke jalur negatif melalui resistor 10 ohm
- Hubungkan Kaki push button ke jalur positif
Code Programnya
// set pin number
const int buttonPin = 4;
const int ledPin = 5;
// variabel for storing pushbutton
int buttonState = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
Setelah berhasil dengan percobaan diatas, sekarang kita coba menambahkan 2 LED, dengan menekan tombol, maka LED akan menyala Bergantian.
Untuk rangkaian sama dengan percobaan awal, kita hanya perlu menambahkan lagi 2 LED yang akan kita hubungan degan GPIO 22 dan GPIO 23:
Code Program
Selanjutnya kita menuliskan program yang akan kita kirimkan ke ESP32, berikut kodenya :
const int ledPin1 = 5;
const int ledPin2 = 23;
const int ledPin3 = 22;
const int pushButtonPin = 4;
int pushButtonState = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(pushButtonPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
pushButtonState = digitalRead(pushButtonPin);
Serial.println(pushButtonState);
if (pushButtonState == HIGH) {
//Mode 1
Mode1 ();
} else {
//Mode 2
Mode2 ();
}
}
void Mode1 () {
digitalWrite (ledPin2, HIGH);
delay(1000);
digitalWrite (ledPin3, HIGH);
digitalWrite (ledPin2, LOW);
delay (1000);
digitalWrite (ledPin3, LOW);
}
void Mode2 () {
digitalWrite (ledPin1, HIGH);
delay (3000);
digitalWrite (ledPin1, LOW);
delay (1000);
}
Setelah programnya terupload, maka berikut hasil dari percobaan tersebut:
Torubleshooting
Dalam melakukan percobaan agar kiranya dapat lebih teliti, untuk project kedua ini, saya mengalami sedikit kepanikan, ketika melakukan eksperimen kedua kalinya, saya membongkar rangkain awal, dan merangkai kembali untuk menambahkan Kombinasi 2 LED, setelah terangkai komponennya, saya colokkan Usb Kabelnya ke Laptop, ternyata lampu Indikator ESP32 tidak menyala, saya periksa kembali ternyata ada kesalahan jumper pada kaki 3v3 hanya ke jumper ke jalur Negatif pada board, ternyata ketidaktelitian masih berlanjut, setelah diperbaiki posisi jumpernya, dan setelah programnya dijalankan, ternyata LED tidak ada satupun yang menyala, panik ternyata panik. sebagai pemula saya mengira karena kesalahan jumper pada daya tersebut menyebabkan short pada ESP32nya. Setelah agak lama meneliti kembali rangkaian komponen pada Board, ternyata kaki LED terbalik, harusnya katodanya (-) yang disambungkan dengan resitor 330 ohm, ternyata restiornya hanya tersambung seri dengan Anoda (+). alhamdulillah setelah dipindahkan posisi kaki LEDnya, LEDnya sudah bisa menyala sesuai perintah dari program yg ada. semoga pengalaman ini bisa menjadi pelajaran untuk project selanjutnya.