เล่นเพลง Happy Birthday ด้วย Arduino Uno
ในโปรเจค Arduino นี้ พี่จะสอนน้องๆ วิธีต่อลำโพงกับบอร์ด Arduino และเขียนโค้ดให้เล่นเพลง Happy Birthday กัน
โปรเจค Happy Birthday Tone นี้เป็นวิธีที่สนุกมากๆ ในการลองสร้างเสียงดนตรีด้วยไมโครคอนโทรลเลอร์ ไม่ว่าน้องจะทำกล่องของขวัญดนตรีหรือการ์ดอวยพร โปรเจคนี้จะทำให้ Arduino ของน้องมีชีวิตชีวาด้วยทำนองเพลงที่ทุกคนคุ้นเคย
ขั้นตอนที่ 1: อุปกรณ์ที่ต้องใช้
เพลง Happy Birthday ด้วย Arduino Uno
อุปกรณ์ที่ต้องใช้สำหรับโปรเจคนี้:
- Arduino uno
- ลำโพง/ออด 8 โอห์ม
- ทรานซิสเตอร์ Bc547
- เบรดบอร์ดและสายจัมเปอร์
อุปกรณ์ฮาร์ดแวร์ที่ต้องใช้
- Arduino Uno/Nano: ตัวเครื่องเล่นเพลงหลักของเรา
- Piezo Buzzer (แบบ Passive): ข้อนี้สำคัญมาก! ต้องใช้แบบ Passive เท่านั้นถึงจะเล่นความถี่ต่างๆ ได้ ส่วนแบบ Active มันจะส่งเสียงบี๊บเดียวตลอดกาล หรือจะใช้ลำโพง 8 โอห์มแบบในรูปก็ได้
- ทรานซิสเตอร์ BC547: ใช้ขยายสัญญาณจากขาของ Arduino เพื่อขับลำโพงให้ดังขึ้น
- ตัวต้านทาน 100 โอห์ม: ต่ออนุกรมกับออดเพื่อควบคุมความดังและป้องกันขา Arduino
- เบรดบอร์ดและสายจัมเปอร์: สำหรับต่อวงจร
ขั้นตอนที่ 2: การต่อสาย
ต่อขั้วบวกของลำโพงเข้ากับ 5V
ต่อขา Emitter ของทรานซิสเตอร์เข้ากับ GND
ต่อขา Base ของทรานซิสเตอร์เข้ากับขา 7 ของ Arduino
ต่อขา Collector ของทรานซิสเตอร์เข้ากับลำโพง
การใช้ Arrays และความถี่
แทนที่จะเขียนโค้ดยาวเหยียดด้วยฟังก์ชัน delay() กับ tone() เต็มไปหมด โปรเจคนี้จะสอนให้น้องจัดระเบียบข้อมูลอย่างสวยงามด้วย Arrays:
- Array ทำนอง (Melody Array): เก็บลำดับของโน้ตเพลง (เช่น C4, C4, D4, C4, F4, E4)
- Array ความยาว (Durations Array): เก็บว่าต้องเล่นโน้ตนั้นๆ นานแค่ไหน (โน้ตตัวดำ, โน้ตตัวขาว ฯลฯ)
- The Loop: ใช้ลูป
forวนอ่านค่าจากทั้งสอง Array พร้อมกัน อ่านโน้ต, เล่นเสียงตามความยาวที่กำหนด, หยุดพักนิดหน่อย, แล้วก็ขยับไปโน้ตต่อไป
ขยายเพลงใน Playlist
พอเข้าใจเรื่อง Arrays แล้ว น้องก็สามารถหาโน้ตเพลงอื่นๆ อย่าง Star Wars, Super Mario หรือ Tetris จากในเน็ตได้เลย แปลงโน้ตเป็นความถี่ แล้ว Arduino บอร์ดเดียวของน้องก็จะกลายเป็นตู้เพลงสุดเท่ได้เลย! จัดไปวัยรุ่น!