3.7. GPIO çıkışı¶
machine.LED, kameranın yerleşik göstergelerinin kablolamasını soyutlar. Herhangi bir harici donanım parçasını sürmek, çıkış modundaki machine.Pin ile başlar – diğer her GPIO etkileşiminin altındaki ham çevre birimi.
3.7.1. Bir pini sürme¶
Bir pini çıkış yapmak için Pin.OUT ile oluşturun, ardından değerini ayarlayın:
from machine import Pin
led = Pin("P0", Pin.OUT)
led.on() # drive high (about 3.3 V)
led.off() # drive low (about 0 V)
machine.Pin üzerinde durumu ayarlamanın üç eşdeğer yolu:
pin.value(1)/pin.value(0)– açık biçim.
value() öğesini argümansız çağırmak pinin geçerli durumunu geri okur – bu hem girişler hem de çıkışlar için çalışır.
3.7.2. Harici bir LED sürme¶
3,3 V’tan 10 mA’de kırmızı bir LED, seri olarak yaklaşık 130 Ω’a ihtiyaç duyar (elektronik sayfası hesabı yapar). P0 pinini o direnç üzerinden LED’in anoduna, LED’in katodunu toprağa bağlayın. Bir yanıp sönücü:
import time
from machine import Pin
led = Pin("P0", Pin.OUT)
while True:
led.on()
time.sleep_ms(500)
led.off()
time.sleep_ms(500)
LED saniyede bir kez açılır ve kapanır. LED üzerinden geçen akım (ve dolayısıyla parlaklığı) direnç tarafından belirlenir; açma / kapama görev oranı yalnızca ne sıklıkta yandığını kontrol eder, yandığı sırada ne kadar parlak göründüğünü değil.
Tüyo
Yapıcı, başlangıç değerini bir anahtar sözcük argümanı olarak kabul eder: Pin("P0", Pin.OUT, value=0) pini düşük seviyede başlayan bir çıkış olarak yapılandırır. Bu olmadan pin, ilk value() çağrısından önce kısa süreliğine varsayılan durumu her ne idiyse onu alır.
3.7.3. Açık-drenaj modu¶
Varsayılan Pin.OUT modu itme-çekmedir (push-pull): pin hem yükseğe (beslemeye) hem de düşüğe (toprağa) etkin olarak sürer. Bazen bu yanlıştır. Pin hattı ya düşüğe çekmeli ya da serbest bırakmalıysa (yüzdürmeliyse) Pin.OPEN_DRAIN öğesine yönelin:
pin = Pin("P0", Pin.OPEN_DRAIN)
pin.off() # actively drive low
pin.on() # release; an external pull-up brings the line high
Başlıca kullanımı bir teli paylaşmaktır. Birden çok açık-drenaj çıkışı tek bir hattı paylaşabilir, çünkü hiçbiri onu etkin olarak yükseğe sürmez. Herhangi biri hattı düşüğe çekebilir; hepsi serbest bırakırsa, harici bir yukarı çekme direnci hattı yükseğe getirir. Bu, paylaşılan iletişim veri yolları arkasındaki kablolama kuralıdır.
Uyarı
Açık-drenaj, daha yüksek gerilimli bir cihazı sürmek için genel bir çözüm değildir. 5 V’ta bir yukarı çekmeye bağlanan bir açık-drenaj pini, 5 V’a toleranslı bir pinde güvenlidir ancak toleranslı olmayan birinde, pin serbest bırakılıp hat 5 V’a yükseldiği anda yonga üzerindeki koruma diyotları üzerinden ona hasar verir. Çapraz gerilim sinyalleşmesi uygun bir seviye dönüştürücü gerektirir; devre için bkz. Seviye kaydırma.