ESP32 PWM dengan Arduino IDE (Output Analog)

Dalam tutorial ini kami akan menunjukkan cara menghasilkan sinyal PWM dengan ESP32 menggunakan Arduino IDE. Sebagai contoh, kita akan membuat rangkaian sederhana yang meredupkan LED menggunakan pengontrol PWM LED dari ESP32. Kami juga akan menunjukkan kepada Anda bagaimana Anda bisa mendapatkan sinyal PWM yang sama pada GPIO yang berbeda secara bersamaan.

Sebelum melanjutkan dengan tutorial ini, Anda harus menginstal add-on ESP32 di Arduino IDE Anda. Ikuti salah satu tutorial berikut untuk menginstal ESP32 di Arduino IDE, jika Anda belum melakukannya.

    Memasang Papan ESP32 di Arduino IDE(instruksi Windows)

    Memasang Papan ESP32 di Arduino IDE (instruksiMac dan Linux)

Kami juga merekomendasikan untuk melihat sumber daya berikut :

    Memulai dengan Modul Pengembang ESP32

    Referensi Pinout ESP32: Pin GPIO mana yangharus Anda gunakan?

Tonton Video Tutorialnya

Tutorial ini tersedia dalam format video (lihat di bawah) dan dalam format tertulis (lanjutkan membaca).

Bagian yang Diperlukan

Untuk mengikuti tutorial ini Anda memerlukan bagian-bagian ini:

    ESP32 DOIT DEVKIT V1 Board baca papanpengembangan ESP32 terbaik

    3x 5mm LED

    3x 330 Ohm resistor

    Papan tempat memotong roti

    Kabel jumper

Anda dapat menggunakan tautan sebelumnya atau langsung ke MakerAdvisor.com/tools untuk menemukan semua suku cadang untuk proyek Anda dengan harga terbaik!

Pengontrol PWM LED ESP32

ESP32 memiliki pengontrol PWM LED dengan 16 saluran independen yang dapat dikonfigurasi untuk menghasilkan sinyal PWM dengan properti yang 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 LED, frekuensi 5000 Hz baik-baik saja untuk digunakan.

3. Anda juga perlu mengatur 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 :

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:

Fungsi ini menerima sebagai argumen saluran yang menghasilkan sinyal PWM, dan siklus kerja.

Meredupkan LED

Mari kita lihat contoh sederhana untuk melihat cara menggunakan kontroler PWM LED ESP32 menggunakan Arduino IDE.

Skema

Hubungkan LED ke ESP32 Anda seperti pada diagram skematik berikut. LED harus terhubung ke GPIO 16.

(Skema ini menggunakan versi modul ESP32 DEVKIT V1 dengan 30 GPIO – jika Anda menggunakan model lain, periksa pinout untuk papan yang Anda gunakan.)

Catatan : Anda dapat menggunakan pin apa pun yang Anda inginkan, selama itu dapat bertindak sebagai output. Semua pin yang dapat bertindak sebagai output dapat digunakan sebagai pin PWM. Untuk informasi lebih lanjut tentang GPIO ESP32, baca : Referensi Pinout ESP32: Pin GPIO mana yang harus Anda gunakan?

Kode

Buka Arduino IDE Anda dan salin kode berikut.


Anda mulai dengan menentukan pin yang dipasangi LED. Dalam hal ini LED terpasang ke GPIO 16.

Kemudian, Anda mengatur properti sinyal PWM. Anda menentukan frekuensi 5000 Hz, memilih saluran 0 untuk menghasilkan sinyal, dan menetapkan resolusi 8 bit. Anda dapat memilih properti lain, yang berbeda dari ini, untuk menghasilkan sinyal PWM yang berbeda.

Di setup(), Anda perlu mengkonfigurasi LED PWM dengan properti yang telah Anda tentukan sebelumnya dengan menggunakan fungsi ledcSetup() yang menerima sebagai argumen, ledChannel, frekuensi, dan resolusi, sebagai berikut :

Selanjutnya, Anda harus memilih GPIO yang akan menerima sinyal. Untuk itu gunakan fungsi ledcAttachPin() yang menerima sebagai argumen GPIO tempat Anda ingin mendapatkan sinyal, dan saluran yang menghasilkan sinyal. Dalam contoh ini, kita akan mendapatkan sinyal di ledPin GPIO, yang sesuai dengan GPIO 16. Saluran yang menghasilkan sinyal adalah ledChannel, yang sesuai dengan saluran 0.

Dalam loop, Anda akan memvariasikan siklus tugas antara 0 dan 255 untuk meningkatkan kecerahan LED.

Dan kemudian, antara 255 dan 0 untuk mengurangi kecerahan.

Untuk mengatur kecerahan LED, Anda hanya perlu menggunakan fungsi ledcWrite() yang menerima sebagai argumen saluran yang menghasilkan sinyal, dan siklus kerja. 

Karena kami menggunakan resolusi 8-bit, siklus tugas akan dikontrol menggunakan nilai dari 0 hingga 255. Perhatikan bahwa dalam fungsi ledcWrite() kami menggunakan saluran yang menghasilkan sinyal, dan bukan GPIO.

Menguji Contoh

Unggah kode ke ESP32 Anda. Pastikan Anda memilih papan dan port COM yang tepat. Lihatlah sirkuit Anda. Anda harus memiliki LED redup yang meningkatkan dan menurunkan kecerahan.

Mendapatkan Sinyal yang Sama pada GPIO yang Berbeda

Anda bisa mendapatkan sinyal yang sama dari saluran yang sama di GPIO yang berbeda. Untuk mencapai itu, Anda hanya perlu melampirkan GPIO tersebut ke saluran yang sama di setup().

Mari kita ubah contoh sebelumnya untuk meredupkan 3 LED menggunakan sinyal PWM yang sama dari saluran yang sama.

Skema

Tambahkan dua LED lagi ke sirkuit Anda dengan mengikuti diagram skema berikut :

(Skema ini menggunakan versi modul ESP32 DEVKIT V1 dengan 30 GPIO – jika Anda menggunakan model lain, periksa pinout untuk papan yang Anda gunakan.)

Kode

Salin kode berikut ke Arduino IDE Anda.


Ini adalah kode yang sama dengan yang sebelumnya tetapi dengan beberapa modifikasi. Kami telah mendefinisikan dua variabel lagi untuk dua LED baru, yang mengacu pada GPIO 17 dan GPIO 5.

Kemudian, di setup(), kami telah menambahkan baris berikut untuk menetapkan kedua GPIO ke saluran 0. Ini berarti bahwa kami akan mendapatkan sinyal yang sama, yang dihasilkan di saluran 0, di kedua GPIO.

Menguji Proyek

Unggah sketsa baru ke ESP32 Anda. Pastikan Anda memilih papan dan port COM yang tepat. Sekarang, lihat sirkuit Anda :

Semua GPIO mengeluarkan sinyal PWM yang sama. Jadi, ketiga LED meningkatkan dan menurunkan kecerahan secara bersamaan, menghasilkan efek yang disinkronkan.

Membungkus

Singkatnya, dalam posting ini Anda telah mempelajari cara menggunakan pengontrol PWM LED dari ESP32 dengan Arduino IDE untuk meredupkan LED. Konsep yang dipelajari dapat digunakan untuk mengontrol output lain dengan PWM dengan mengatur properti yang tepat untuk sinyal.

Kami memiliki tutorial lain yang terkait dengan ESP32 yang mungkin juga Anda sukai :

    Server Web ESP32 – Arduino IDE

    Suhu Pencatatan Data ESP32 ke Kartu MicroSD

    Server Web ESP32 dengan BME280 – StasiunCuaca Mini

    ESP32 vs ESP8266 – Pro dan Kontra

 

Posting Komentar

0 Komentar