На плате установлено 16 кнопок и имеется разъем с девятью контактами.
Примерный способ подключения клавиатуры к плате Arduino:
G - контакт для подключения общего провода GND Arduino.
A - контакт для подключения к выводу 2 Arduino.
B - контакт для подключения к выводу 3 Arduino.
C - контакт для подключения к выводу 4 Arduino.
D - контакт для подключения к выводу 5 Arduino.
1 - контакт для подключения к выводу 6 Arduino.
2 - контакт для подключения к выводу 7 Arduino.
3 - контакт для подключения к выводу 8 Arduino.
4 - контакт для подключения к выводу 9 Arduino.
Подключение питания к плате не требуется.
Кнопки на плате соединены особым образом, поэтому для работы с 16 кнопками понадобится всего 9 выводов Arduino.
Примерный скетч для определения названия нажатой кнопки выглядит так:
Ссылка на витрину магазина http://dvrobot.ru/238/455.html
Примерный способ подключения клавиатуры к плате Arduino:
G - контакт для подключения общего провода GND Arduino.
A - контакт для подключения к выводу 2 Arduino.
B - контакт для подключения к выводу 3 Arduino.
C - контакт для подключения к выводу 4 Arduino.
D - контакт для подключения к выводу 5 Arduino.
1 - контакт для подключения к выводу 6 Arduino.
2 - контакт для подключения к выводу 7 Arduino.
3 - контакт для подключения к выводу 8 Arduino.
4 - контакт для подключения к выводу 9 Arduino.
Подключение питания к плате не требуется.
Кнопки на плате соединены особым образом, поэтому для работы с 16 кнопками понадобится всего 9 выводов Arduino.
Примерный скетч для определения названия нажатой кнопки выглядит так:
void setup() { Serial.begin(9600); Serial.println("4x4..."); //определяем выводы Arduino pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); } int row[]={ 9,8,7,6}; //указываем выводы горизонтальных рядов кнопок int cols[]={ 5,4,3,2}; //указываем выводы вертикальных рядов кнопок //коды нажатия кнопок char simbols[][2]={ { 0,'D' } , { 1,'C' } , { 2,'B' } , { 3,'A' } , { 4,'#' } , { 5,'9' } , { 6,'6' } , { 7,'3' } , { 8,'0' } , { 9,'8' } , { 10,'5' } , { 11,'2' } , { 12,'*' } , { 13,'7' } , { 14,'4' } , { 15,'1' } }; void loop() { for(int i=0;i<4;i++){ digitalWrite(row[i], HIGH); for(int j=0;j<4;j++){ if(digitalRead(cols[j])==HIGH){ Serial.println(FindKey(4*i+j)); //выводим код нажатой кнопки } } digitalWrite(row[i], LOW); } } char FindKey(unsigned int keyCode){ for(int i=0;i<16;i++){ if(simbols[i][0]==keyCode){ return simbols[i][1]; } } }Включаем монитор порта и видим, какую кнопку мы нажали.
Ссылка на витрину магазина http://dvrobot.ru/238/455.html