Теперь научимся подключать устройство ввода к Ардуине. В этом примере разберемся, как подключить мембранную клавиатуру 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 миллисекунд
}
}
Скачать скетч можно по этой ссылке
Видео:

Обсуждение