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 อยู่ในช่วง