MicroPython machine.Pin kullanımı

coolwolf / 16/08/2019

Ö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