Теперь научимся подключать устройство ввода к Ардуине. В этом примере разберемся, как подключить мембранную клавиатуру 4*4
Данный пример будет выполнять две задачи:
- Первая задача: определяет, какая из клавиш была нажата на клавиатуре и передать информацию по сериал порту на компьютер, где в "мониторе последовательного порта ".
- Вторая задача: при каждом нажатии клавиш издавать звуковой сигнал. У каждой клавиши звуковой сигнал будет разный.
В данном уроке нам понадобится:
- Arduino
- Клавиатура 4x4 кнопки
- Зуммер пьезоэлектрический
- Набор проводов ПАПА-МАМА
- Провода Папа-Папа или Набор проводов для макетирования 65 шт.
Для реализации проекта нам необходимо установить библиотеки:
Сборка:
1) Клавиатуру удобнее всего подключить к Ардуине проводками Папа-Папа.
Контакты на клавиатуре отсчитываются слева на право.
Клавиатура 4*4 | Arduino (uno) |
---|---|
Контакт 1 | pin 11 |
Контакт 2 | pin 10 |
Контакт 3 | pin 9 |
Контакт 4 | pin 8 |
Контакт 5 | pin 7 |
Контакт 6 | pin 6 |
Контакт 7 | pin 5 |
Контакт 8 | pin 4 |
Контакты к которым подключаем клавиатуру, могут быть перенастроены на любые другие цифровые контакты. Настраиваются здесь:
byte rowPins[ROWS] = {11,10, 9, 8}; byte colPins[COLS] = {7, 6, 5, 4};
2) Звуковой сигнал будет издаваться с помощью зуммера, его подключаем следующим образом:
Зуммер | Arduino |
---|---|
GND | GND |
IO | pin 3 |
VCC | 5V или 3V |
Контакт Pin3 так же может быть изменен на любой удобный вам цифровой выход. Настраивается здесь:
tone(3, (int)key*10, 300); // 3 - это и есть номер цифрового порта
Скетч:
Теперь, если все подключено и библиотеки установлены, можно приступить к загрузке скетча.
#include <Keypad.h> // Подключаем библиотеку const byte ROWS = 4; // 4 строки const byte COLS = 4; // 4 столбца char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {11,10, 9, 8}; byte colPins[COLS] = {7, 6, 5, 4}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); // Передаем название нажатой клавиши в сериал порт tone(3, (int)key*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд } }
Скачать скетч можно по этой ссылке
Видео:
Обсуждение