คณิตศาสตร์แห่งเสียงเพลง: เครื่องสังเคราะห์เสียงเปียโนที่ใช้ Arduino
วิทยาศาสตร์ทางกายภาพของดนตรีขึ้นอยู่กับ Hertz (Hz) ทั้งหมด โน้ต "A" บนแกรนด์เปียโนจะสั่นสะเทือน 440 ครั้งต่อวินาทีอย่างแม่นยำ โปรเจกต์ Arduino Based Piano นี้จะสอนเกี่ยวกับการทำแผนที่ array และการสร้างความถี่ เปลี่ยนแถวของ Tactile switch ที่น่าเบื่อให้กลายเป็นคีย์บอร์ดอิเล็กทรอนิกส์ที่มีเสียงกังวานสูงและปรับจูนได้อย่างสวยงาม

Array ความถี่ (ฟังก์ชัน tone())
คุณไม่สามารถส่งออกคลิปเสียง MP3 ที่ซับซ้อนบน Arduino Uno แบบง่ายๆ ได้ คุณต้องสังเคราะห์รูปคลื่นด้วยกลไก
- คำสั่ง
tone(pin, frequency)ของ Arduino ใช้ Hardware timer เพื่อส่งสัญญาณ Square wave ขนาด 5V ไปมาหลายพันครั้งต่อวินาทีอย่างรุนแรง - การตั้งค่าสเกลเพลง: คุณกำหนด array ของความถี่ทางกายภาพที่แน่นอน
// C4, D4, E4, F4, G4 (Middle C Scale)
int notes[] = {261, 293, 329, 349, 392};
- กลุ่ม Tactile Push-Button จำนวน 5 ตัวเชื่อมต่อกับ Pin 2 ถึง 6 โดยใช้ Resistor แบบ
INPUT_PULLUP(เพื่อป้องกันไม่ให้เกิดอาการ Floating ทางไฟฟ้า)
ลูปการเล่นพร้อมกัน
- Arduino สแกนปุ่มทั้ง 5 อย่างรวดเร็วอย่างต่อเนื่อง
if (digitalRead(btn_C) == LOW) { tone(speakerPin, notes[0]); }- เมื่อคุณกดปุ่มแรก กรวยลำโพงจะสั่นสะเทือนทางคณิตศาสตร์ 261 ครั้งต่อวินาทีอย่างแม่นยำ—สร้างเสียง Middle C ที่สมบูรณ์แบบ!
- หากคุณปล่อยปุ่มทั้งหมด ลูปจะเรียกใช้
noTone(speakerPin);เพื่อปิดเสียงเครื่องกำเนิด Square wave ทันที ป้องกันเสียงบี๊บที่ดังต่อเนื่องไม่หยุด
ฮาร์ดแวร์สำหรับการสร้างเสียง
- Arduino Uno/Nano (มีความแม่นยำของ Timer ที่ยอดเยี่ยม)
- Tactile Push Button 5 ตัว (จัดวางบน Breadboard อย่างสมบูรณ์แบบเพื่อเลียนแบบคีย์เปียโนสีขาว)
- Mini Speaker ขนาด 8-Ohm หนึ่งตัว (หรือ Piezo Buzzer แบบธรรมดา)
- (การอัปเกรดเสริม: เพิ่ม Potentiometer ขนาด 10K ไปยัง Analog pin ที่ว่างอยู่ โดยใช้ฟังก์ชัน
<map()>เพื่อดัดเสียง (Pitch) แบบไดนามิก เปลี่ยนเปียโนธรรมดาให้เป็น EDM Synthesizer!)