Многие задаются вопросом для каких целей можно использовать матричные клавиатуры, в данной статье приведен пример использования матричной клавиатуры в связке с зуммером
Список деталей:
- (1) Arduino Uno.
- (1) Макетная плата.
- (1) Матричная клавитура 4*4
- (1) Пьезоизлучатель
- (11) Провода папа-папа
Матричная клавиатура
Они бывают разные(большинство подключаются одинаково), например
В моей программе кнопки задают частоту(Гц). Имея базовые знания программирования, вы можете менять нужную частоту в скетче
Buzzer/зуммер/пищалка
Сборка
Все собирается на макетной плате с проводами папа-папа
Матричная клавиатура подключается к пинам 2,3,4,5,6,7,8,10
Зуммер к 9 пину, 5V / 3,3V, земле(слева направо)
Программа
Прошейте Arduino скетчем, который вы можете скачать внизу статьи или скопировать в текстовом виде
int PinOut[4] {5, 4, 3, 2}; // пины выходы клавиатуры int PinIn[4] {10, 8, 7, 6}; // пины входа клавиатуры const int value[4][4] { {250, 275, 300, 325}, {350, 375, 400, 425}, {450, 475, 500, 525}, {260, 360, 460, 310} }; // двойной массив, обозначающий частоту для определенной кнопки void setup() { pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, INPUT); digitalWrite(6, HIGH); pinMode (7, INPUT); digitalWrite(7, HIGH); pinMode (8, INPUT); digitalWrite(8, HIGH); pinMode (10, INPUT); digitalWrite(10, HIGH); pinMode(9, OUTPUT); } void loop() // создаем функцию для чтения данных с кнопок { for (int i = 1; i <= 4; i++) { digitalWrite(PinOut[i - 1], LOW); for (int j = 1; j <= 4; j++) { if (digitalRead(PinIn[j - 1]) == LOW) { tone(9, value[i - 1][j - 1], 100); // tone(порт зуммера, значение массива, задержка) delay(150); // задержка перед обновлением значения с клавиатуры noTone(9); // выключение зуммера } } digitalWrite(PinOut[i - 1], HIGH); } }
Теперь вы можете играть простейшие мелодии на этом синтезаторе
Прикрепленные файлы:
- Sintezator_sketch.ino (1 Кб)
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация