ESP32 memiliki pengontrol PWM LED dengan 16 saluran independen yang dapat dikonfigurasi untuk menghasilkan sinyal PWM dengan properti berbeda.
Berikut langkah-langkah yang harus Anda ikuti untuk meredupkan LED dengan PWM menggunakan Arduino IDE:
1. Pertama, Anda harus memilih saluran PWM. Ada 16 saluran dari 0 hingga 15.
2. Kemudian, Anda perlu mengatur frekuensi sinyal PWM. Untuk sebuah LED, frekuensi 5000 Hz bisa digunakan.
3. Anda juga perlu menyetel resolusi siklus tugas sinyal: Anda memiliki resolusi dari 1 hingga 16 bit. Kami akan menggunakan resolusi 8-bit, yang berarti Anda dapat mengontrol kecerahan LED menggunakan nilai dari 0 hingga 255.
4. Selanjutnya, Anda perlu menentukan ke GPIO atau GPIO mana sinyal akan muncul. Untuk itu Anda akan menggunakan fungsi berikut:
ledcAttachPin(GPIO, channel)
Fungsi ini menerima dua argumen. Yang pertama adalah GPIO yang akan mengeluarkan sinyal, dan yang kedua adalah saluran yang akan menghasilkan sinyal.
5. Terakhir, untuk mengontrol kecerahan LED menggunakan PWM, Anda menggunakan fungsi berikut:
ledcWrite(channel, dutycycle)
Fungsi ini menerima sebagai argumen saluran yang menghasilkan sinyal PWM, dan siklus kerja.
Baca Juga : Arsitektur dan Fitur ESP32 (Module ESP32) IoT .
Berikut ini adalah Schematics Diagram ESP32 PWM with Arduino IDE (Analog Output) :
Berikut ini adalah Hardware yang dibutuhkan :
1. ESP32 Dev Module >>> BELI DISINI
2. Resistor 330 Ohm >>> BELI DISINI
3. LED >>> BELI DISINI
4. Kabel Jumper Secukupnya >>> BELI DISINI
Berikut ini adalah Code Programnya :
/***************************
ESP32 PWM with Arduino IDE (Analog Output)
Oleh : Edukasi Elektronika
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com
Copyright @2020
****************************/// the number of the LED pin
const int ledPin = 16; // 16 corresponds to GPIO16
// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;
void setup(){
// configure LED PWM functionalitites
ledcSetup(ledChannel, freq, resolution);
// attach the channel to the GPIO to be controlled
ledcAttachPin(ledPin, ledChannel);
}
void loop(){
// increase the LED brightness
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
// decrease the LED brightness
for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
}
Selamat Mencoba !!!
The ESP32-WROOM module has a very comprehensive pinout. It has 34 pins in total, broken down into 4 categories: power, digital, analog, and special.
ReplyDeleteThe power pins are VIN (supplies 5V to the module), GND (ground), 3.3V (output from the 3.3V regulator), and RST (reset).