3.7. Đầu ra GPIO

machine.LED trừu tượng hóa cách nối dây của các chỉ thị tích hợp sẵn trên camera. Điều khiển bất kỳ phần cứng ngoại vi nào bắt đầu với machine.Pin ở chế độ đầu ra -- ngoại vi thô nằm bên dưới mọi tương tác GPIO khác.

3.7.1. Điều khiển chân

Khởi tạo chân với Pin.OUT để đặt nó làm đầu ra, rồi thiết lập giá trị của 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)

Ba cách tương đương để thiết lập trạng thái, tất cả trên machine.Pin:

Gọi value() không có đối số sẽ đọc lại trạng thái hiện tại của chân -- hoạt động cho cả đầu vào và đầu ra.

3.7.2. Điều khiển LED ngoại vi

LED đỏ ở 10 mA từ 3,3 V cần khoảng 130 Ω nối tiếp (trang điện tử tính toán chi tiết). Nối chân P0 qua điện trở đó đến anode của LED, cathode của LED nối đến đất. Một bộ nhấp nháy:

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 bật và tắt một lần mỗi giây. Dòng điện qua LED (và do đó độ sáng của nó) được xác định bởi điện trở; chu kỳ bật/tắt chỉ kiểm soát tần suất nó sáng lên, không phải độ sáng khi nó đang bật.

Mẹo

Hàm tạo chấp nhận giá trị ban đầu dưới dạng đối số từ khóa: Pin("P0", Pin.OUT, value=0) cấu hình chân làm đầu ra bắt đầu ở mức thấp. Không có nó, chân sẽ tạm thời nhận bất kỳ trạng thái mặc định nào trước lần gọi value() đầu tiên.

3.7.3. Chế độ open-drain

Chế độ Pin.OUT mặc định là push-pull: chân chủ động kéo cả lên cao (đến nguồn cung) và xuống thấp (đến đất). Đôi khi điều đó không phù hợp. Hãy dùng Pin.OPEN_DRAIN khi chân cần kéo đường xuống thấp hoặc thả nó ra (nổi):

pin = Pin("P0", Pin.OPEN_DRAIN)
pin.off()       # actively drive low
pin.on()        # release; an external pull-up brings the line high

Cách dùng chính là chia sẻ dây dẫn. Nhiều đầu ra open-drain có thể chia sẻ một đường duy nhất vì không cái nào trong số chúng chủ động kéo đường lên cao. Bất kỳ đầu ra nào trong số chúng đều có thể kéo đường xuống thấp; nếu tất cả chúng thả ra, điện trở kéo lên ngoài sẽ đưa đường lên cao. Đây là quy ước nối dây đằng sau các bus giao tiếp chung.

Cảnh báo

Open-drain không phải giải pháp chung cho việc điều khiển thiết bị điện áp cao hơn. Kết nối chân open-drain với điện trở kéo lên ở 5 V là an toàn trên chân chịu được 5 V nhưng làm hỏng chân không chịu được thông qua các điốt bảo vệ trên chip ngay khi chân thả ra và đường nổi lên 5 V. Chuyển đổi mức điện áp khác nhau cần bộ dịch mức thích hợp; xem Dịch chuyển mức điện áp để biết mạch điện.