MicroPython machine.Pin kullanımı
Öncelikle kütüphaneyi dahil etmemiz gerekiyor:
from machine import Pin
Ardından pin nesnesi oluşturalım:
EspPin = Pin(33, Pin.IN)
Pin tetiklendiğinde çalıştırılacak fonksiyonu tanımlayalım:
def PinTrigger(p):
print("Pin Tetiklendi:"+str(p)+"||")
Şimdi Pin.irq fonksiyonu ile pin voltajına göre nasıl tetikleme yapabileceğimize bakalım.
1. trigger=Pin.IRQ_FALLING
EspPin.irq(trigger=Pin.IRQ_FALLING , handler=PinTrigger)
Bu şekilde yaptığımızda, 33 nolu pin – (eksi) değer aldığı sürece, sürekli olarak PinTrigger fonksiyonu çalışacaktır.
2. trigger=Pin.IRQ_RISING
EspPin.irq(trigger=Pin.IRQ_RISING , handler=PinTrigger)
şeklinde kullandığımızda ise pin değeri eksiden artıya döndüğünde tetiklenir.
Mekanik butonlar durum değiştirme esnasında milisaniye aralığında dalgalanma gönderirler. Bu doğal bir sonuçtur. Bu işlemin bize yansıması, pin tetikleme foksiyonumuzun butona her basıldığıdna 3-5 defa peşpeşe tetiklenmesi şeklinde olur.
Önlem olarak, fonksiyon başında, iki tetiklenme arası 200-300 milisaniye geçmemişse fonksiyondan çık şeklinde bir sorgu koyarsak sorunumuz çözülmüş olur.
FILED UNDER : Elektronik , ESP32 , MicroPython , Programlama
TAG :
Submit a Comment
Yorum yapabilmek için oturum açmalısınız.