LED menggunakan modul PWM (Pulse Width Modulation) body { font-family: sans-serif; line-height: 1.6; max-width: 800px; margin: 40px auto; padding: 0 20px; color:
#0078d7; color: white; padding: 20px; margin: 20px 0; border-radius: 5px; } LED menggunakan modul PWM (Pulse Width Modulation)
LED PWM (Pulse Width Modulation)
wokwi
Script di atas adalah contoh program Micropython yang menggunakan modul machine untuk mengendalikan LED menggunakan modul PWM (Pulse Width Modulation) pada sebuah mikrokontroler.
Berikut adalah penjelasan script tersebut baris per baris:
import machine: Mengimpor modul machine yang merupakan modul bawaan Micropython untuk mengendalikan perangkat keras mikrokontroler.
import time: Mengimpor modul time yang digunakan untuk mengatur waktu dalam script.
led_pins = [23, 22, 32]: Mendefinisikan pin-pin LED yang akan digunakan. Dalam contoh ini, terdapat 3 LED dengan pin 23, 22, dan 32.
led_pwm = [machine.PWM(machine.Pin(pin)) for pin in led_pins]: Membuat objek PWM untuk setiap pin LED yang didefinisikan sebelumnya. Objek PWM ini akan digunakan untuk mengendalikan kecerahan LED.
pwm_frequency = 1000: Menentukan frekuensi PWM yang akan digunakan. Frekuensi ini menentukan seberapa cepat siklus PWM berulang dalam satuan Hertz (Hz).
for pwm in led_pwm: pwm.freq(pwm_frequency): Mengatur frekuensi PWM untuk setiap objek PWM yang dibuat sebelumnya sesuai dengan nilai pwm_frequency yang telah ditentukan.
pulse_duration = 0.5: Menentukan durasi pulsa LED (waktu menyala) dalam satuan detik.
pulse_delay = 1: Menentukan jeda antara setiap pulsa LED dalam satuan detik.
def pulse_leds():: Mendefinisikan sebuah fungsi bernama pulse_leds() yang digunakan untuk melakukan pulsing pada LED.
for _ in range(5):: Melakukan perulangan sebanyak 5 kali untuk melakukan pulsing pada LED.
for pwm in led_pwm: pwm.duty(512): Mengatur duty cycle PWM menjadi 50% (nilai 512) untuk setiap LED. Duty cycle mengontrol seberapa lama LED menyala dalam satu siklus PWM.
time.sleep(pulse_duration): Memberikan jeda selama pulse_duration detik untuk menjaga LED tetap menyala.
for pwm in led_pwm: pwm.duty(0): Mengatur duty cycle PWM menjadi 0% (nilai 0) untuk setiap LED, mematikan LED.
time.sleep(pulse_duration): Memberikan jeda selama pulse_duration detik untuk menjaga LED tetap mati.
time.sleep(pulse_delay): Memberikan jeda selama pulse_delay detik sebelum memulai pulsing berikutnya.
while True: pulse_leds(): Memulai loop utama yang akan terus melakukan pulsing pada LED secara berulang selamanya.
Dengan menjalankan script ini, LED yang terhubung ke pin yang ditentukan akan berkedip-kedip dengan durasi dan jeda yang telah ditentukan. Pada contoh ini, LED akan menyala selama 0,5 detik, mati selama 0,5 detik, kemudian ada jeda 1 detik sebelum memulai pulsing berikutnya. Proses ini akan diulang seterusnya.
Discussion (0)