Merhabalar. Bugün raspberry pi pico ile PWM kullanımına değineceğiz. Bir potansiyometre yardımı ile okuduğumuz analog değere bağlı olarak bir ledin parlaklığını değiştireceğiz.
PWM Nedir ?
PWM, Pulse Width Modulation(Darbe Genişliği Modülasyonu) anlamına gelir ve bağlanılan yükün, cihazın ortalama gücünü ayarlamamıza olanak sağlayan bir yöntemdir. Güç elektroniğinde sıklıkla mosfet ve benzeri anahtarlama elemanlarının konturolünde kullanılırlar. Anahtar nekadar uzun süre açık kalır ise yüke aktarılan toplam güçte okadar yüksek olacaktır.
PWM sinyali bir kare dalganın açık kalma ve kapalı kalma sürelerinin oranına bağlıdır ve bu oranada DUTY denir. PWM sinyalinin duty oranı değişirken Periyodunda bir değişiklik olmaz, yani Fekansı sabit kalır.

TON (Açık zaman): Sinyalin yüksek olduğu zamandır. Pico için bu 3.3 volttur.
TOFF (Kapalı Zaman): Sinyalin düşük olduğu zamandır.
Period(Periyot): Açık ve kapalı zamanların toplamıdır.
Duty Cycle(Görev Döngüsü): Bir periyot boyunca sinyalin yüksek olduğu sürenin yüzdesidir. Açık kalma süresinin toplam süreye bölünmesi ile elde edilir.
Duty=(Ton/(Ton+Toff)) * 100 // yüzdelik gösterim için 100 ile genişletiliyor
Vout = Vmax * Duty
Gerekli malzemeler:
Raspberr Pi Pico
Led
10k Potansiyometre
Breadbord
Jumper Kablolar
Devre Şeması

Devre üzerinde mavi led kullandım ve bir direnç kullanmadım, bunun sebebi pico 3.3v çıkış verebiliyor ve mavi ledin çalışma volrajı 3.5v dir.
KOD
from machine import Pin,PWM,ADC
from time import sleep
led=PWM(Pin(1))
led.freq(1000)
pot=ADC(26)
while True:
pot_value=pot.read_u16()
led.duty_u16(pot_value)
sleep(0.001)
print(pot_value)
sleep(0.01)
led=PWM(Pin(1))
led.freq(1000)
Kodun bu kısmında led pinini tanımladıktan sonra "led.freq(1000)" yazarak pinin çıkış frekansını ayarlamış oluyoruz. Bu yapının kullanımı aşağıdaki gibidir.
pin ismi.freq(çalışma frekansı)
bizim kodumuzda pin ismi led çalışma frekansıda 1000Hz olarak belirlenmiştir.
led.duty_u16(pot_value)
bu kod vloğu sayesinde ilgili pin için duty oranını belirleyebiliyoruz. "duty_u16" ibaresindende anaşıldığı üzere parantez içerisine yani "pot_value" yazan kısıma 16 bitlik bir değer girebiliyoruz. Yani PWM pini 0 ile 65535 arasında bir değer alabilmektedir.
Comments