สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สร้างโดย: Haotian Ye
ภาพรวม
นี่คือบอร์ดเปียโนที่มีสวิตช์ปุ่มกดแปดปุ่มที่ให้คุณเล่นหนึ่งอ็อกเทฟ (Do Re Mi Fa So La Si Do) และด้วยอ็อกเทฟนี้ คุณสามารถลองเล่นเพลงที่คุณชอบได้ สำหรับโครงการนี้ มีความรู้สำคัญบางอย่างที่คุณต้องรู้ก่อนเริ่ม
อันดับแรก เราต้องรู้ความถี่ของโน้ตพื้นฐานของเปียโน
ความถี่มีการระบุไว้ด้านล่าง:
ทำ – 261Hz
เรื่อง – 294Hz
Mi – 329Hz
ฟ้า – 349Hz
ดังนั้น – 392Hz
ลา – 440Hz
ศรี – 493Hz
ทำ – 523Hz
ประการที่สอง ผมจะแสดงวิธีการสร้างวงจรโดยใช้ชิ้นส่วนที่หาซื้อได้จาก Lee's Electronic Store สุดท้าย ผมจะนำเสนอและอธิบายโค้ดที่ต้องอัปโหลดไปยังบอร์ด Arduino
ชิ้นส่วนที่คุณต้องการ:
Arduino Uno R3 (รหัสผลิตภัณฑ์: 10997)
สาย USB A เป็น B M/M (Product ID: 29861)
ตัวต้านทาน 10K * 8 (รหัสผลิตภัณฑ์: 91516)
สวิตช์แทคหลากสี * 8 (Product ID: 3124, 31242, 31243, 31245, 31246)
ลำโพงขนาดเล็ก (Product ID: 41680)
เขียงหั่นขนม (รหัสผลิตภัณฑ์: 106861)
สายจัมเปอร์ (Product ID: 21801)
ขั้นตอนที่ 1: ขั้นตอนที่ 1: สร้างวงจร
ขั้นแรก ใส่สวิตช์ปุ่มกดและลำโพงขนาดเล็กทั้งหมดบนเขียงหั่นขนมทีละตัวแล้วจับคู่ในแถวเดียว จากนั้นต่อหมุดของสวิตช์ปุ่มกดแต่ละปุ่มกับพื้น ที่สอง เชื่อมต่อตัวต้านทาน 10k ระหว่างกำลังบวกกับพินอื่น ๆ ของสวิตช์ปุ่มกดแต่ละตัว และเชื่อมต่อคอลัมน์นี้กับพิน 2-9 บนบอร์ด Arduino เชื่อมต่อกราวด์กับพินกราวด์และพลังงานบวกกับพิน 3.3v บน Arduino สุดท้ายเชื่อมต่อลำโพงขนาดเล็กกับพิน 10 บน Arduino
ขั้นตอนที่ 2: ขั้นตอนที่ 2: รหัสและคำอธิบาย
รหัสด้านล่างคือสิ่งที่ฉันเขียน
const int สีดำ = 2;
const int สีขาว = 3;
const int สีแดง = 4;
const int สีเขียว = 5;
const int สีน้ำเงิน = 6;
const int black2 = 7;
const int สีเขียว2 = 8;
const int สีแดง2 = 9;
const int speaker = 10; // เชื่อมโยงสวิตช์ปุ่มกดและลำโพงทั้งหมดด้วยหมุดสัญญาณของ Arduino
ความถี่ int = {262, 294, 330, 349, 392, 440, 493, 523}; // อาร์เรย์มีความถี่ทั้งหมดของหนึ่งอ็อกเทฟ
การตั้งค่าเป็นโมฆะ () {
// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว:
pinMode (สีดำ, INPUT);
โหมดพิน (สีขาว, INPUT);
pinMode (สีแดง, INPUT);
pinMode (สีเขียว, INPUT);
pinMode (สีน้ำเงิน, INPUT);
โหมดพิน (black2, INPUT);
โหมดพิน (green2, INPUT);
โหมดพิน (red2, INPUT);
pinMode (ลำโพง, เอาต์พุต);
โทนเสียง (ลำโพง 2000);
Serial.begin (9600);
}
วงเป็นโมฆะ () {
// ใส่รหัสหลักของคุณที่นี่เพื่อเรียกใช้ซ้ำ ๆ:
if (digitalRead(black) == LOW)// เมื่อคุณกดสวิตช์ "DO"
{โทน(ลำโพง, ความถี่[0], 50);
ล่าช้า (50);
noTone (ลำโพง);}
อื่น if (digitalRead(สีขาว) == LOW)// เมื่อคุณกดสวิตช์ "RE"
{โทน(ลำโพง, ความถี่[1], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(red) == LOW)// เมื่อคุณกดสวิตช์ "MI"
{โทน(ลำโพง, ความถี่ [2], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(green) == LOW)// เมื่อคุณกดสวิตช์ปุ่มกด "FA"
{โทน(ลำโพง, ความถี่[3], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(blue) == LOW)// เมื่อคุณกดสวิตช์ "SO"
{โทน(ลำโพง, ความถี่[4], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(black2) == LOW)// เมื่อคุณกดสวิตช์ "LA"
{โทน(ลำโพง, ความถี่[5], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(green2) == LOW)// เมื่อคุณกดสวิตช์ปุ่มกด "SI"
{โทน(ลำโพง, ความถี่[6], 50);
ล่าช้า (50);
noTone (ลำโพง);}
else if (digitalRead(red2) == LOW)// เมื่อคุณกดสวิตช์ "DO"
{โทน(ลำโพง, ความถี่[7], 50);
ล่าช้า (50);
noTone (ลำโพง);}
อื่น// เมื่อไม่กดอะไรเลย
noTone (ลำโพง);
}
อันดับแรก เราต้องประกาศสวิตช์ปุ่มกดและลำโพงทั้งหมดเป็นพินตั้งแต่ 2 ถึง 10 บน Arduino สวิตช์แต่ละตัวแทนโน้ตหนึ่งตัว จากนั้นใช้อาร์เรย์เดียวเพื่อใส่ความถี่ทั้งหมดไว้ภายใน ต่อไป คำสั่ง if และ else คือสิ่งที่ฉันใช้เพื่อให้ Arduino รู้ว่าฉันกดสวิตช์ปุ่มกดตัวใด
สุดท้าย เชื่อมต่อบอร์ด Arduino ของคุณกับคอมพิวเตอร์หรือแล็ปท็อปด้วยสาย usb A ถึง B ก่อนที่คุณจะอัปโหลดโค้ด คุณยังต้องดาวน์โหลดซอฟต์แวร์ Arduino และทำการตั้งค่าเริ่มต้น เลือกเครื่องมือ -> บอร์ด -> Arduino/Genuino Uno; จากนั้นเราต้องเลือกพอร์ตการสื่อสารที่เชื่อมต่อกับบอร์ด Arduino เลือกเครื่องมือ -> พอร์ต จากนั้นชื่อพอร์ตใดก็ตามที่มีป้ายกำกับว่า "(Arduino/Genuino Uno)" จากนั้นคุณสามารถอัปโหลดรหัสไปยังบอร์ด Arduino