
Интернет-магазин «Неглупый Дом»
Четыре сенсорные кнопки TTP223 заменяют клавиши обычного пианино — прикосновение к каждой из них воспроизводит свою ноту через пассивный зуммер, без единой механической детали.
TTP223 — это ёмкостный сенсорный модуль: он реагирует не на механическое нажатие, а на изменение ёмкости при прикосновении пальца к контактной площадке, точно так же, как сенсорные кнопки на бытовой технике. Выход модуля цифровой — HIGH при касании, LOW когда палец убран, поэтому его легко читать обычным `digitalRead()` без дополнительной обработки сигнала.
Нотная механика здесь максимально простая: каждому из 4 пинов сопоставлена своя частота звука в массиве `notes`, и пассивный зуммер через функцию `tone()` генерирует именно эту частоту, пока палец касается соответствующей площадки. Пассивный зуммер (в отличие от активного) не имеет собственного генератора — он воспроизводит ровно ту частоту, которую ему подаёт плата, что и позволяет играть разные ноты одним и тем же зуммером.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
const int touchPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 294, 330, 349}; // до, ре, ми, фа
const int buzzerPin = 8;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 4; i++) {
pinMode(touchPins[i], INPUT);
}
}
void loop() {
bool anyTouched = false;
for (int i = 0; i < 4; i++) {
if (digitalRead(touchPins[i]) == HIGH) {
tone(buzzerPin, notes[i]);
anyTouched = true;
break; // играем только первую найденную ноту, даже если касаются сразу две кнопки
}
}
if (!anyTouched) {
noTone(buzzerPin);
}
}
Массив `notes` легко расширить до полной октавы, если добавить ещё сенсорных кнопок и цифровых пинов — принцип остаётся тем же.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 115 ₽ 104 ₽ (экономия 11 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.