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:

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.