โปรเจคนี้จะมาสาธิตการใช้งานปุ่มกดเพื่อควบคุม LED กัน
เป้าหมาย:
- ให้ไฟ LED ติด เมื่อกดปุ่ม
- ให้ไฟ LED ดับ เมื่อกดปุ่ม (เอฟเฟกต์ตรงกันข้าม)
Working with a Push Button
พื้นฐานการโต้ตอบ: LED กับปุ่มกด
สิ่งประดิษฐ์เจ๋งๆ ทุกอย่างเริ่มต้นจากการโต้ตอบง่ายๆ แบบนี้แหละ การควบคุม LED ด้วยปุ่มกดนี่คือ "Hello World" แห่งวงการคอมพิวเตอร์กายภาพเลย โปรเจคนี้จะพาน้องไปรู้จักกับแก่นแท้ของ digital reads และ digital writes
ตรรกะการทำงาน
Arduino ทำหน้าที่เป็นคนกลางในวงจรนี้:
- อินพุต: Arduino อ่านสถานะของพิน GPIO ที่ต่อกับปุ่มกด
- วิเคราะห์: ถ้ากดปุ่ม พินนั้นจะอ่านค่าเป็น
HIGH(หรือLOWขึ้นอยู่กับวงจรที่น้องต่อ) - เอาต์พุต: จากสถานะนั้น Arduino จะส่งสัญญาณไปยังอีกพินหนึ่งเพื่อสั่งให้ LED
ONหรือOFF
การตั้งค่าฮาร์ดแวร์: ตัวต้านทาน Pull-Down
จุดผิดพลาดยอดฮิตของมือใหม่คือการต่อปุ่มกดตรงๆ ระหว่างไฟเลี้ยงกับพินอินพุต ซึ่งจะทำให้พินนั้น "ลอย" (floating) ตอนที่ไม่ได้กดปุ่ม ส่งผลให้การทำงานเพี้ยนๆ
- ทางแก้: เราใช้ ตัวต้านทาน 10k-ohm ต่อกับกราวด์ (ตัวต้านทาน pull-down) วิธีนี้จะทำให้พินเห็นสัญญาณ
LOWที่เสถียรจนกว่าจะกดปุ่ม
รายการอุปกรณ์
- Arduino (รุ่นไหนก็ได้): สำหรับประมวลผลสัญญาณ
- LED (สีอะไรก็ได้): เอาต์พุตที่มองเห็น
- ปุ่มกด/สวิตช์แบบกด: อินพุตทางกายภาพ
- ตัวต้านทาน 220-ohm: สำหรับ LED
- ตัวต้านทาน 10k-ohm: สำหรับ pull-down ปุ่มกด
การตั้งง่านี้เป็นพื้นฐานของอินเทอร์เฟซผู้ใช้แทบทุกอย่างในโลกเลย ตั้งแต่ปุ่มไมโครเวฟไปจนถึงแผงควบคุมในโรงงาน เริ่มจากตรงนี้ก่อน งานใหญ่ค่อยว่ากันทีหลัง สู้งานนะน้อง!