ใช้งาน Arduino ISD1820 โมดูลบันทึกเสียงและเล่นเสียง
ใช้งาน Arduino ISD1820 โมดูลบันทึกเสียงและเล่นเสียง
บอร์ด ISD1820 เป็นโมดูลบันทึกเสียงแบบง่าย ๆ ที่มีไมโครโฟนติดมาด้วยในบอร์ด ต่อกับ Arduino แล้วสั่งเล่นเสียงที่บันทึกไว้ได้เลย เหมาะสำหรับทำเสียงแจ้งเตือน หรือโปรเจคที่ต้องการให้ตัวเครื่องพูดได้
อุปกรณ์ที่ต้องเตรียม
- Arduino UNO R3
- ISD1820 Voice Board Module พร้อมลำโพงในตัว
- สายไฟจัมเปอร์ ผู้-ผู้ เพื่อต่อระหว่างบอร์ด
- บอร์ดทดลอง (Breadboard) ถ้าต้องการจัดวางอุปกรณ์ให้เป็นระเบียบ
รู้จักโมดูล ISD1820
โมดูลมีปุ่มกดบนบอร์ดให้ใช้งานได้เลยโดยไม่ต้องต่อ Arduino
| ปุ่ม/สวิตช์ | หน้าที่ |
|---|---|
| REC | กดค้างเพื่ออัดเสียง ไฟแดงบนบอร์ดจะติดตอนอัด |
| PLAYE | กดครั้งเดียวเล่นเสียงจนจบ |
| PLAYL | กดค้างเล่นเสียง ปล่อยมือแล้วหยุดทันที |
| สวิตช์ FT | เลื่อนเป็น OFF เพื่อใช้ไมค์บนบอร์ดอัดเสียง |
| สวิตช์ REPEAT | เลื่อนเป็น OFF เพื่อเล่นเสียงแค่ครั้งเดียวต่อคำสั่ง |
วิธีต่อวงจร
| Arduino UNO | ISD1820 Module |
|---|---|
| 5V | VCC |
| GND | GND |
| Pin 2 | P-E |
สำหรับลำโพง ให้ต่อเข้าช่องบนโมดูลโดยตรง (ถ้าโมดูลมีลำโพงติดมาแล้วข้ามขั้นตอนนี้ได้เลย)
วิธีอัดเสียงด้วยปุ่มบนบอร์ด
- เลื่อนสวิตช์ FT ไปที่ OFF
- เลื่อนสวิตช์ REPEAT ไปที่ OFF
- ต่อไฟ 3-5V เข้าช่อง VCC และ GND
- กดปุ่ม REC ค้างไว้ แล้วพูดที่ไมค์ (บันทึกได้สูงสุดประมาณ 10 วินาทีต่อครั้ง)
- ปล่อยปุ่ม REC เมื่ออัดเสียงเสร็จ
- กดปุ่ม PLAYE เพื่อฟังเสียงที่บันทึกไว้
เขียนโค้ด Arduino สั่งเล่นเสียง
int PE = 2; // ต่อขา Pin 2 กับขา P-E ของโมดูล
void setup() {
pinMode(PE, OUTPUT);
digitalWrite(PE, LOW); // ปิดสถานะเริ่มต้น
Serial.begin(9600);
}
void loop() {
Serial.println("Play Sound");
// กดปุ่ม PLAYE ด้วยไฟ LOW
digitalWrite(PE, LOW);
delay(100);
digitalWrite(PE, HIGH); // ปล่อยปุ่ม
// รอให้เล่นเสียงจบประมาณ 10 วินาที
delay(10000);
}
วิธีอัพโหลดโค้ด
- เปิด Arduino IDE แล้ววางโค้ดด้านบน
- ไปที่ Tools → Port เลือก Port ที่ Arduino ต่ออยู่
- ไปที่ Tools → Board เลือก Arduino UNO
- กดปุ่ม Upload (ลูกศรขวา)
- เปิด Serial Monitor ที่ Tools → Serial Monitor เพื่อดูข้อความ “Play Sound” พร้อมกับเสียงที่เล่น
หลักการทำงานของโค้ด
โมดูล ISD1820 ทำงานแบบ active LOW คือ ปุ่มจะทำงานเมื่อขา P-E รับไฟ LOW ดังนั้นเมื่อสั่ง digitalWrite(PE, LOW) ก็เหมือนกดปุ่ม PLAYE อยู่ แล้วสั่ง digitalWrite(PE, HIGH) เพื่อปล่อยปุ่ม
ถ้าต้องการสั่งเล่นด้วยขาอื่น เปลี่ยนค่า int PE = 2; เป็นหมายเลขขาที่ต้องการได้เลย
วิดีโออ้างอิง
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย