top of page

Raspberry Pi Pico PWM #4

Yazarın fotoğrafı: Kadir ÜnverKadir Ünver




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


SUBSCRIBE VIA EMAIL

  • Facebook
  • LinkedIn
  • Twitter
  • Instagram

Thanks for submitting!

© 2035 by Salt & Pepper. Powered and secured by Wix

bottom of page