สวัสดีน้องๆ ทุกคน! ในคลิปนี้พี่จะพาน้องไปทำวงจรตบมือ (Clap Circuit) ด้วย Arduino Uno กัน ควบคุมเครื่องใช้ไฟฟ้าในบ้านด้วยเสียงตบมือเดียว! ดูให้จบนะ อย่าข้าม!
Acoustic Control: วงจรสวิตช์เสียงตบมือ
จำโฆษณา "The Clapper" ตอนเด็กๆ ได้มั้ย? Arduino Clap Switch ตัวนี้แหละ คือการสร้างของแบบนั้นขึ้นมาเอง! มันใช้เซ็นเซอร์เสียงแบบอนาล็อก (Analog Sound Sensor) ฟังเสียงแหลมๆ ดังๆ (อย่างเสียงตบมือ) แล้วสั่งให้รีเลย์เปิด-ปิดอุปกรณ์ไฟฟ้า
ตรรกะของเกณฑ์เสียง (Sound Threshold Logic)
ไมโครโฟนมันจับเสียงทุกอย่างแหละ หน้าที่ของ Arduino ของเราคือกรองมันออก:
- เซ็นเซอร์: โมดูลตรวจจับเสียง (Sound Detector Module - LM393/KY-037) จะส่งค่าแรงดันไฟฟ้าที่เปลี่ยนแปลงตลอดเวลาไปที่พินอนาล็อก
- สัญญาณกระชาก (Spike): เสียงตบมือจะสร้างสัญญาณแรงดันไฟฟ้าที่พุ่งสูงขึ้นกะทันหัน
- การสลับสถานะ (Toggle): โค้ดจะใช้ตัวแปรประเภท
boolean(สถานะจริง/เท็จ) เมื่อสัญญาณเสียงดังเกินเกณฑ์ที่กำหนด ตัวแปรนี้จะสลับค่า ทำให้รีเลย์เปิด (ON) พอตบมืออีกครั้ง ตัวแปรก็สลับกลับ ทำให้รีเลย์ปิด (OFF)
อุปกรณ์ที่ต้องใช้ (Hardware Components)
- Arduino Uno/Nano: ตัวประมวลผลเสียงหลัก
- โมดูลเซ็นเซอร์เสียง KY-037: ไมโครโฟนและวงจรขยายสัญญาณ
- โมดูลรีเลย์ 1 ช่อง: สวิตช์สำหรับควบคุมไฟแรงสูง
- โคมไฟตั้งโต๊ะหรือเครื่องใช้ไฟฟ้า: สำหรับทดสอบการทำงานของรีเลย์อย่างปลอดภัย
Debouncing เสียง
เหมือนกับปุ่มกดเลยน้อง เสียงก็มีสัญญาณรบกวน (Noise) เต็มไปหมด! ส่วนที่ยากที่สุดของโปรเจกต์นี้คือการเขียนโค้ด หน่วงเวลาแบบไม่บล็อก (Non-blocking Delay) โดยใช้ millis() เพื่อให้แน่ใจว่าเสียงตบมือเดียวที่ยาวหน่อยๆ จะไม่ถูกนับเป็นสองหรือสามครั้ง ซึ่งจะทำให้ไฟไม่กระพริบเร็วเกินไป จัดไปวัยรุ่น!