กลับไปหน้ารวมไฟล์
3-note-piano-box-whidden-speaker-8f483c.md

เจ้า **3 Note Piano Box** ตัวนี้จะให้เราเล่นโน้ตธรรมดา (F, G, A) 3 ตัว และโน้ตชาร์ป (F#, G#, A#) อีก 3 ตัวได้

ทั้งโน้ตธรรมดาและโน้ตชาร์ป ถูกควบคุมด้วยปุ่มกด 3 ปุ่มที่อยู่ด้านบนเหมือนกันเลย เริ่มต้นมันจะเล่นโน้ตธรรมดา ถ้าอยากได้เสียงชาร์ป ก็แค่เอามือมาบังตัวต้านทานแสง (Photoresistor) ที่อยู่ด้านหน้าของกล่องเปียโนซะ!

เจ้า 3 Note Piano Box ตัวนี้แหละที่จะพาน้องๆ เข้าสู่โลกของ Polyphony และ State Machine แบบอินเทอร์แอคทีฟ ถ้าโปรเจคก่อนหน้านี้ที่ใช้บัซเซอร์เล่นเพลงอัตโนมัติคือการดูหนัง งั้นโปรเจคนี้คือการได้เป็นผู้กำกับหนังเองเลย!

การอ่านอินพุตจากหลายปุ่มพร้อมกัน

ความท้าทายอยู่ที่เราต้องคอยเช็คหลายปุ่มตลอดเวลาโดยที่โค้ดไม่ติดแหง็ก

  1. การเซ็ตอัพ: ต่อปุ่มกด 3 ตัวเข้ากับพินดิจิตอล 2, 3, 4 ของ Arduino ใช้ประโยชน์จาก Pull-up resistor ภายใน (pinMode(2, INPUT_PULLUP)) จะได้ไม่ต้องมายุ่งกับตัวต้านทาน 10k ภายนอกให้วุ่นวาย — ต่อปุ่มเข้ากับ Ground ตรงๆ เลย
  2. ลูปหลัก: Arduino จะตรวจสอบทั้งสามปุ่มอย่างรวดเร็ว (เป็นล้านครั้งต่อวินาที)
  3. การสั่งให้เกิดความถี่:
    • if (digitalRead(button1) == LOW) { tone(buzzerPin, 261); } (เล่น Middle C ความถี่ 261 Hz)
    • ... (button2) -> เล่น E (329 Hz)
    • ... (button3) -> เล่น G (392 Hz)
  4. ความเงียบ: ข้อนี้สำคัญมาก! ต้องมีคำสั่ง else { noTone(buzzerPin); } อยู่ท้ายสุดด้วย ไม่งั้นพอปล่อยปุ่ม บัซเซอร์จะร้อง Middle C จนวันสิ้นโลกเลย!

อุปกรณ์ที่ต้องใช้

  • Arduino Uno/Nano: หัวใจหลักของซินธิไซเซอร์
  • ปุ่มกดแบบ Tactile 3 ตัว
  • Piezo Buzzer แบบ Active หรือ Passive
  • กล่องเล็กๆ: (Optional) เอาไว้ติดปุ่มและซ่อนสายระโยงระยาง ให้ดูเป็น "Piano Box" ที่เนี๊ยบ

โปรเจคนี้คือบันไดขั้นสำคัญที่จะพาน้องไปสร้างซินธิไซเซอร์ 8 คีย์เต็มอ็อกเทฟ และต่อยอดไปใช้ไลบรารีสร้างเสียงอย่าง Mozzi ได้เลย สู้งานนะน้อง!

วิธีประกอบ:

1: พิมพ์ 3D กล่องจากไฟล์ .stl ให้เรียบร้อย วางเบรดบอร์ดอันแรกไว้บนกล่อง ส่วนอันที่สองวางไว้บนพื้นราบ (เช่น โต๊ะ) ไปก่อน

2: ต่อสายจากตัวต้านทานแสง (Photoresistor) และบัซเซอร์จาก Arduino Uno (หรือ Arduino MEGA ก็ได้) ไปยังเบรดบอร์ดอันที่ไม่ได้อยู่บนกล่อง

3: เสียบสายจากเบรดบอร์ดบนกล่องเข้ากับ Arduino แต่ยังอย่าเพิ่งต่อเข้ากับเบรดบอร์ด

____

4: ใช้เทปหรือกาวติดเบรดบอร์ดอันที่สองและ Arduino Uno เข้าไปในกล่อง (ดูรูปประกอบด้านล่าง)

5: ดึงตัวต้านทานแสงออกมาทางด้านหน้าของกล่อง

6: สุดท้าย ดึงสายจากเบรดบอร์ดบนกล่องออกมาทางรูด้านบน แล้วต่อเข้ากับตำแหน่งที่ถูกต้องบนเบรดบอร์ดให้เรียบร้อย งานนี้จัดไปวัยรุ่น!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE 2.3.7"
author: "nolanayodeji"
category: "Audio & Sound"
components:
  - "1x 3D Printer (generic)"
  - "1x Photoresistor sensor module"
  - "1x Ardunio Uno R3"
  - "1x 3D printer filament (PLA)"
  - "1x Piezo buzzer"
  - "2x Breadboard 100x50"
description: "จัดไปกับโน้ต F, G, A, F#, G#, A# บนกล่อง 3D printed ที่เราทำเอง! กดปุ่มตึงๆ แล้วเสียงเพลงดังออกมาจากลำโพงลับ วัยรุ่นสาย Maker ต้องชอบแน่นอน"
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/92486cfa-5930-407e-ba21-e65dbc662f40.ino"
encryptedPayload: "U2FsdGVkX18F1Bo7AMDWFY9/EfZwPsR7Jw37H7T7+y/8CQDXPVLeJ9GrSjtg+jTON0ahhQh0k9BfhCF77cnfUjEh/XFWFz5WeNk1cCcOVf4="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/3-note-piano-box-whidden-speaker-8f483c_cover.png"
lang: "en"
likes: 0
passwordHash: "adff8b585c5586f173e9446e0c2e1d520a0ad94b6121abd201e775682058811f"
price: 870
seoDescription: "Build a 3 Note Piano Box with a hidden Speaker. Play F, G, A, F#, G#, A# using a 3D printed box. Great DIY Arduino project."
tags:
  - "Audio"
  - "Music"
title: "กล่องเปียโน 3 ปุ่ม (แอบมีลำโพงซ่อนอยู่!) งานง่ายแต่หล่อ"
tools: []
videoLinks: []
views: 14