3.5. คลาส LED#

ฮาร์ดแวร์ที่ง่ายที่สุดบน camera คือ LED บนบอร์ด บอร์ดส่วนใหญ่มี LED RGB (แดง เขียว น้ำเงิน) machine.LED คือ class เฉพาะสำหรับควบคุมมัน ไม่ต้องระบุหมายเลขพิน ไม่ต้องใช้ตัวต้านทาน ไม่ต้องต่อวงจร -- การค้นหา การจำกัดกระแส และการเดินสายจัดการโดย camera เอง

import time
from machine import LED

red = LED("LED_RED")
red.on()
time.sleep(5)
red.off()

ฮาร์ดแวร์ "hello world" ที่สมบูรณ์: นำเข้า class สร้าง instance ด้วยชื่อสี เปิด รอ ปิด LED จะติดสว่างระหว่างการหน่วงเวลาห้าวินาที

red.off() ตอนปิดสมดุลกับ red.on() ตอนเปิด และทำให้การล้างค่าชัดเจน LED บนบอร์ดยังรีเซ็ตโดยอัตโนมัติเมื่อสคริปต์ออก เมื่อสคริปต์เติบโตขึ้น การพึ่งพาการล้างค่าเมื่อสคริปต์ออกจะเปราะบาง การจับคู่ .on() แต่ละครั้งกับ .off() ที่ชัดเจนเป็นนิสัยที่ทำให้สคริปต์ยาวๆ คาดเดาได้

3.5.1. Constructor และเมธอด#

Constructor รับค่าหนึ่งใน "LED_RED", "LED_GREEN", หรือ "LED_BLUE" แต่ละ instance เปิดเผยเมธอดสี่ตัว:

  • on() -- เปิด

  • off() -- ปิด

  • toggle() -- สลับสถานะปัจจุบัน

  • value() -- ไม่มีอาร์กิวเมนต์จะคืนค่าสถานะปัจจุบัน (0 หรือ 1) ถ้ามีอาร์กิวเมนต์หนึ่งตัวจะกำหนดค่า

ตัวอย่างการกระพริบโดยใช้รูปแบบ main-loop:

import time
from machine import LED

led = LED("LED_RED")

while True:
    led.toggle()
    time.sleep_ms(500)

ใช้ LED บนบอร์ดเพื่อแสดงสถานะ: การเต้นของหัวใจที่กระพริบทุกวินาที การกะพริบสีแดงเมื่อเกิดข้อผิดพลาด การกะพริบสีเขียวเมื่อค่าการอ่านของ sensor อยู่ในช่วง