elektronika

Cara membuat PWM dengan ESP32

Kali ini kita akan belajar bagaimana cara menyalakan sebuah lampu led menggunakan sinyal PWM yang dikontrol menggunan ESP32.

perlu kalian ketahui bawah ESP32 ini mempunyai 16 chanel yang bisa digunakan untuk membangkitkan sinyal PWM yang berbeda-beda.

berikut ini adalah langkah-langkah yang harus anda ikuti ketika mau menggunakan PWM untuk meyalakan lampu LED :

  1. Pertama-tama yang harus dilakukan adalah pilih chanel PWM yang akan digunakan.kamu bisa memilih mulai dari chanel 0 sampai 15
  2. setelah anda memilih chanel yang diinginkan silahkan set frekuensi sinyal PWM.untuk lampu led bisa menggunakan frekuensi 5000 an HZ
  3. setelah langkah kedua diatas kita juga harus menseting sinyal duty cycle.anda bisa menggunakan resolusi 1 sampai 16 bit.kita tentukan saja misalnya kita akan menggunakan resolusi yang 8 bit digunakan untuk mengontrol lampu led.untuk mematikan dan menyalakan lampu led ini menggunakan nilai 0 sampai 255 (8bit).
  4. Langkah selanjutnya memilih GPIO.sinyal akan dikeluarkan melalui GPIO mana?. jadi anda bisa menggunakan syntax dibawah ini.
    ledcAttachPin(GPIO, channel)

    Fungsi diatas ada 2 pernyataan yang pertama adalah GPIO yang mentransfer sinyal PWM, kemudian channel fungsinya untuk mengenerate sinyal.

  5. yang terakir untuk mengatur terang redup LED menggunakan PWM dengan syntax dibawah ini:
ledcWrite(channel, dutycycle)

dibawah ini adalah contoh bagaimana menggunakan EP32 untuk menghasilkan PWM untuk mengontrol lampu LED

note:diatas kebetulan pin yang digunakan adalah GPIO 16, anda bisa menggunakan pin lainya yang anda suka dengan catatnya pin output yang anda gunakan.

Code Program

silahkan buka sofware arduio anda kemudian silahkan tulisankan kode program dibawah ini :

Penjelasan Kode Program

Pertama-tama kita menentukan dulu pin yang akan disambungkan ke lampu LED.dalam contoh ini GPIO 16 yang akan disambungkan ke LED dan syntax progarm seperti dibawah ini

const int ledpin = 16 ;

kemudian kita setting properti dari sinyal PWM, yaitu dengan mendefinisikan nilai frekuensi sebesar 5000 Hz, kemudian anda bisa memilih chanel 0 untuk membangkitkan sinyalnya.

kemudian setting reolusinya 8 bit.untuk settingan ini sebenarnya bebas, anda bisa menggunakan parameter lain untuk settingan ini.dibawah ini adalah syntaxnya :

// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;

selanjutnya adalah fungsi setup(), ini merupakan salah satu fungsi utama yang digunakan untuk menuliskan program setting PWM kemudian pin dan chanel yang digunakan.ledcSetup() fungsi yang digunakan untuk mendefinisikan ledchannel, frekuensi dan resolusi.berikut ini syntaxnya

ledcSetup(ledChannel, freq, resolution);

selanjutnya kita akan memilih pin mana untuk mentranmisikan sinyal PWMnya dengan menggunkan perintah ledAttachPin() dibawah ini adalah syntaxnya:

ledcAttachPin(ledPin, ledChannel);

kemudian fungsi looping fungsinya adalah untuk memberikan nilai duty cycle dengan nilai antara 0 sampai 255.nilai duty cycle ini nantinya akan mempengaruhi intensitas dari cahaya lampu LED.berikut ini syntax

program untuk meningkatkan intensitas cahaya led:

// increase the LED brightness
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}

Program untuk menurunkan intensitas cahaya led

// decrease the LED brightness
for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}

kemudian untuk setting intesitas pencahayaan bisa menggunakan ledcWrite() fungsi tersebut untuk mengeksekusi variabel dari channel dan duty cycle.

ledcWrite(ledChannel, dutyCycle);

seperti sudah dijelaskan diatas resolusi yang digunakan 8 bit kemudian nilai dari duty cycle 0 sampai 255.

Hasil Percobaan

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!