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.