| 分类 | 项目 | 规格 / 说明 |
|---|---|---|
| 基础参数 | 模块型号 |
16位电容式触摸钢琴键盘 |
| PCB 外形尺寸 | 100.00mm × 50.50mm | |
| 触摸按键数 | 16 键(KEY1~KEY16),按钢琴键位布局 | |
| 通信接口 | I2C(SCL/SDA),兼容 Arduino、STM32 等单片机 | |
| 供电电压 | 3.3V~5V DC | |
| 板载功能 | 电源指示灯(PWR)、I2C 地址可配置、防误触设计 | |
| 接口定义(插座) | VCC | 电源正极,接 3.3V~5V |
| GND | 电源负极,需与单片机共地 | |
| SCL | I2C 时钟信号线 | |
| SDA | I2C 数据信号线 | |
| 关键特性 | 电容触摸感应 | 无需机械触点,无磨损、寿命长,轻触即可触发 |
| 16 键钢琴布局 | 覆盖两个八度音域,包含白键与黑键,可直接映射为标准音符 | |
| I2C 通信 | 仅需两根信号线,节省单片机 I/O 资源,支持多设备级联 | |
| 低功耗设计 | 静态电流极低,适合电池供电的便携设备 | |
| 安装友好 | 四角预留固定孔,可直接安装在设备面板上 |




#include <Wire.h>
#define PIANO_ADDR 0x50
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("16键触摸钢琴就绪");
}
void loop() {
Wire.beginTransmission(PIANO_ADDR);
Wire.write(0x00);
Wire.endTransmission();
delay(10);
Wire.requestFrom(PIANO_ADDR, 2);
if (Wire.available() >= 2) {
byte high = Wire.read();
byte low = Wire.read();
uint16_t keys = (high << 8) | low;
if (keys != 0) {
Serial.print("触发按键:");
for (int i = 0; i < 16; i++) {
if (keys & (1 << i)) {
Serial.print(i + 1);
Serial.print(" ");
}
}
Serial.println();
}
}
delay(50);
}