用 Arduino UNO 自制迷你钢琴 — 图文教程
元件与材料
| Arduino UNO | × | 1 |
| 面包板 (通用) | × | 1 |
| 按键开关 12mm (SparkFun) | × | 7 |
| 跳线 (通用) | × | 1 |
| 蜂鸣器 | × | 1 |
所需工具
- 电烙铁
项目步骤
步骤 1:准备材料

- Arduino 开发板
- 压电蜂鸣器
- 按键开关 7 个
- 跳线若干
步骤 2:电路连接

- 7 个按键分别接 Arduino D4 ~ D10
- 蜂鸣器接 D11
步骤 3:上传代码
需安装 Tone 库 (GitHub 下载),不会安装第三方库请参考 Arduino 官网指南。下载附件 Arduino_Piano.rar,解压后用 Arduino IDE 打开 Arduino_Piano.ino 并上传。

步骤 4:开始演奏
按下按键即可发出对应音符。音准可在代码中修改音符频率值调整。代码内置多种音阶,取消注释即可切换,也可自定义音阶。欢迎分享你的成品照片/视频!
原理说明
代码利用 tone() 函数在蜂鸣器上产生方波,按键按下时持续发声,松开停止。内置 LED (引脚 13) 作为指示灯同步闪烁。
完整代码
// Arduino Piano
/* Visit the Channel for more interesting projects https://www.youtube.com/channel/UCks-9JSnVb22dlqtMgPjrlg */
#define T_C 262
#define T_D 294
#define T_E 330
#define T_F 349
#define T_G 392
#define T_A 440
#define T_B 493
const int C = 10;
const int D = 9;
const int E = 8;
const int F = 7;
const int G = 6;
const int A = 5;
const int B = 4;
const int Buzz = 11;
const int LED = 13;
void setup() {
pinMode(LED, OUTPUT);
pinMode(C, INPUT); digitalWrite(C, HIGH);
pinMode(D, INPUT); digitalWrite(D, HIGH);
pinMode(E, INPUT); digitalWrite(E, HIGH);
pinMode(F, INPUT); digitalWrite(F, HIGH);
pinMode(G, INPUT); digitalWrite(G, HIGH);
pinMode(A, INPUT); digitalWrite(A, HIGH);
pinMode(B, INPUT); digitalWrite(B, HIGH);
digitalWrite(LED, LOW);
}
void loop() {
while (digitalRead(C) == LOW) { tone(Buzz, T_C); digitalWrite(LED, HIGH); }
while (digitalRead(D) == LOW) { tone(Buzz, T_D); digitalWrite(LED, HIGH); }
while (digitalRead(E) == LOW) { tone(Buzz, T_E); digitalWrite(LED, HIGH); }
while (digitalRead(F) == LOW) { tone(Buzz, T_F); digitalWrite(LED, HIGH); }
while (digitalRead(G) == LOW) { tone(Buzz, T_G); digitalWrite(LED, HIGH); }
while (digitalRead(A) == LOW) { tone(Buzz, T_A); digitalWrite(LED, HIGH); }
while (digitalRead(B) == LOW) { tone(Buzz, T_B); digitalWrite(LED, HIGH); }
noTone(Buzz);
digitalWrite(LED, LOW);
}
项目仓库
https://github.com/Rahul24-06/Mini-Piano
原理图
视频中已详细讲解接线,请参考视频。

制造工艺
- 打造安全的 Arduino RFID 门锁——分步指南
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 用 Arduino 制作便携电容触控钢琴:分步指南
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- 用 Arduino Pro Mini 与 DS1302 RTC 打造精准七段数码管时钟
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino入门教程01:开始你的第一个项目