เดโมนี้เหมาะกับคอมพิวเตอร์ บนมือถือใช้ได้แต่พื้นที่แคบ · This demo is best on a computer; it works on a phone but the workbench is cramped.

skillsiot

ภารกิจ ไฟทางข้าม

สร้างไฟจราจรที่มีปุ่มสำหรับคนข้าม โดยไม่มีจังหวะใดที่ไฟเขียวทั้งสองฝั่งพร้อมกัน

ในบทนี้คุณจะ

  • ออกแบบลำดับสถานะทั้งหมดก่อนเขียนโค้ด
  • ทำให้ปุ่มมีผลโดยไม่ทำให้ระบบค้าง
  • พิมพ์ STATE ทุกครั้งที่เปลี่ยนสถานะ

โจทย์

ไฟแดงและไฟเขียวสำหรับรถ ปุ่มหนึ่งปุ่มสำหรับคนข้าม เมื่อกดแล้วระบบต้องเปลี่ยนเป็นช่วงให้คนข้ามภายในเวลาที่กำหนด แล้วกลับสู่สถานะปกติเอง ใช้ millis ไม่ใช้ delay เพื่อให้ปุ่มยังตอบสนองตลอดเวลา

สิ่งที่ต้องทำให้ได้

หนึ่ง มีไฟแดงและไฟเขียวอยู่ในวงจรจริง สอง ระบบเดินเป็นจังหวะต่อเนื่องเห็นได้ที่ D13 สาม พิมพ์คำว่า STATE ตามด้วยชื่อสถานะออก Serial ทุกครั้งที่เปลี่ยน เพื่อให้ตรวจสอบลำดับย้อนหลังได้

ทำนายก่อนลงมือ

ถ้ามีคนกดปุ่มค้างไว้ตลอดเวลา ระบบของคุณจะเป็นอย่างไร จะติดอยู่ในสถานะเดียวหรือยังวนครบรอบ เขียนคำตอบไว้ก่อนแล้วค่อยทดลอง

เกณฑ์ที่ใช้ตัดสิน

ตรวจว่ามีไฟแดงและไฟเขียวในวงจร มีสัญญาณเป็นจังหวะที่ D13 และมีคำว่า STATE ปรากฏใน Serial ทั้งสามข้อนี้วัดจากวงจรและโค้ดที่รันจริง ไม่ใช่จากคำอธิบาย

ทบทวน

ถ้าต้องเพิ่มเสียงเตือนสำหรับผู้พิการทางสายตา คุณจะเพิ่มเข้าไปที่สถานะไหน และต้องแก้โครงสร้างเดิมมากแค่ไหน คำตอบนี้บอกว่าการออกแบบสถานะของคุณดีพอหรือยัง

ลงมือทำ

ลงมือทำ

สร้างไฟทางข้ามให้ครบ ไฟรถและไฟคนต้องไม่เขียวพร้อมกัน และต้องพิมพ์ STATE ทุกครั้งที่เปลี่ยน

เริ่มแล็บใน StudioStudio จะเปิดวงจรเริ่มต้นของบทนี้ พร้อมคำใบ้ เฉลย และการตรวจคำตอบจากค่าที่วัดได้