Sound Sensor Light Control
โครงงานควบคุมการเปิด-ปิดไฟด้วยเสียง ใช้ Arduino รับสัญญาณจากเซนเซอร์เสียง แล้วสั่งรีเลย์ให้ต่อวงจรหลอดไฟ
อุปกรณ์ที่ใช้
โครงงานนี้ใช้ชิ้นส่วนหลัก 4 ชนิด ได้แก่ บอร์ด Arduino Uno เซนเซอร์เสียง โมดูลรีเลย์หนึ่งช่อง และหลอด LED (หรือโคมไฟ) รายละเอียดและภาพอุปกรณ์ดังนี้
1. Arduino Uno
บอร์ดไมโครคอนโทรลเลอร์หลัก ใช้รับสัญญาณจากเซนเซอร์และส่งสัญญาณไปควบคุมรีเลย์ มีขา Digital (PWM) และ Analog In สำหรับต่อกับเซนเซอร์และอุปกรณ์อื่น
2. เซนเซอร์เสียง (Sound Sensor Module)
โมดูลไมโครโฟนอิเล็กเตรท (electret microphone) มีตัวปรับความไว (potentiometer) และวงจรขยายสัญญาณ (เช่น LM393) ต่อ VCC, GND และขาสัญญาณ (DO/AO) กับ Arduino เพื่อตรวจจับเสียง
3. โมดูลรีเลย์ 1 ช่อง (Single-Channel Relay)
ใช้สัญญาณจาก Arduino (แรงดันต่ำ) เปิด/ปิดวงจรไฟบ้านหรือหลอดไฟ ด้านควบคุมมีขา VCC, GND, IN ด้านออกแรงมี NO, COM, NC (แบบ 12VDC 10A) สำหรับต่อกับโหลด เช่น หลอดไฟ
4. หลอด LED / โคมไฟ
หลอดไฟที่ใช้กับไฟฟ้าบ้าน (เช่น E26/E27) ต่อผ่านรีเลย์ เมื่อรีเลย์ทำงาน (ได้สัญญาณจาก Arduino ตามเสียง) ไฟจะติดหรือดับตามที่โปรแกรมกำหนด
ตัวอย่างโค้ดโปรแกรม Arduino Uno
int soundPin = 2; // ช่องต่อไปเซนเซอร์
int relayPin = 3; // ช่องต่อไปรีเลย์
bool lampState = false;
unsigned long lastTrigger = 0;
void setup() {
pinMode(soundPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // เริ่มปิด
Serial.begin(9600);
}
void loop() {
int soundValue = digitalRead(soundPin);
// มีเสียง
if (soundValue == LOW && millis() - lastTrigger > 1500) {
lampState = !lampState;
if (lampState) {
digitalWrite(relayPin, LOW); // เปิด
Serial.println("ON");
} else {
digitalWrite(relayPin, HIGH); // ปิด
Serial.println("OFF");
}
lastTrigger = millis(); // ล็อค 1.5 วินาที
}
}
วิธีทำ
- ต่อวงจร
เซนเซอร์เสียง: VCC → 5V, GND → GND, ขาสัญญาณ (DO หรือ AO) → ขา Digital ของ Arduino (เช่น D2)
รีเลย์: VCC → 5V (หรือแหล่งจ่ายภายนอกถ้าตามโมดูล), GND → GND, IN → ขา Digital (เช่น D3)
หลอดไฟต่อกับแหล่งจ่าย AC ผ่านขา NO และ COM ของรีเลย์ (ต้องทำตามคู่มือรีเลย์และระวังไฟฟ้า) - เขียนโปรแกรม Arduino
ตั้งค่า pin เซนเซอร์เป็น input และ pin รีเลย์เป็น output อ่านค่าจากเซนเซอร์เสียง ถ้าค่าเกินเกณฑ์ที่กำหนด (มีเสียง) ให้ส่งสัญญาณ HIGH ไปที่ pin รีเลย์เพื่อเปิดไฟ หรือใช้ logic เปิด/ปิดสลับเมื่อได้ยินเสียง (clap to toggle) - ปรับความไว
ใช้ปุ่มปรับบนโมดูลเซนเซอร์เสียง (potentiometer) ปรับจนตรวจจับเสียงได้ตามต้องการและไม่ติดเสียงรบกวน - ทดสอบ
อัปโหลดโปรแกรมลง Arduino แล้วทดสอบตบมือหรือส่งเสียง ตรวจว่าไฟเปิด/ปิดตามที่ตั้งค่า
เอกสาร / ไฟล์โครงงาน
เอกสารและไฟล์ที่เกี่ยวข้องกับโครงงาน Sound Sensor Light Control เก็บไว้ใน Google Drive ดังลิงก์ด้านล่าง