AD KeyBoard Module
- Войдите на сайт для отправки комментариев
Приветствую.
Помогите пожалуйста.
Не могу разобраться как правильно подключается AD KeyBoard Module к Arduino MEGA 2560 через плату расширения (MEGA Sensor Shild V2.3).
И написать код проверки работы правильной работы AD KeyBoard Module, т.е. на AD KeyBoard Module есть 5 кнопок, нажимая на любую, должен загореться тестовый светодиод, подключенный к, например pin 8.
AD KeyBoard Module подключаю к аналоговому pin А6, но не уверен в правильности (кабель стандартный, 3-х проводной. но по моему
провода в нем перепутаны, т.к. например провод с GRD приходит на 5В, а провод с 5В приходит на GRD, сигнальный провод вроде там где должен быть) самого кабеля с помощью которого подключаю AD KeyBoard Module к плате расширения.
Помогите, подскажите, я заблуждаюсь в браке кабеля или нет? и с помощью какой программы можно проверить сам AD KeyBoard Module, желательно, что бы сигналы с кнопок отображались на мониторе последовательного порта.
Спасибо.
http://arduinostarterskit.sell.everychina.com/p-98908795-arduino-module-...
там нет примера программы для AD KeyBoard Module
Прошу прощения наверное чтото не то попало, вот еще раз http://arduinostarterskit.sell.xpshou.com/pz5e93c3d-arduino-module-5-key-keyboard-module.html
И на всякий случай скопировал код от туда
/ / ADKeyboard Module int adc_key_val [5] = {50, 200, 400, 600, 800}; int NUM_KEYS = 5; int adc_key_in; int key = -1; int oldkey = -1; void setup () { pinMode (13, OUTPUT); / / we'll use the debug LED to output a heartbeat Serial.begin (9600); / / 9600 bps } void loop () { adc_key_in = analogRead (0); / / read the value from the sensor digitalWrite (13, LOW); key = get_key (adc_key_in); / / convert into key press if (key! = oldkey) / / if keypress is detected { delay (50); / / wait for debounce time adc_key_in = analogRead (0); / / read the value from the sensor key = get_key (adc_key_in); / / convert into key press if (key! = oldkey) { oldkey = key; if (key> = 0) { digitalWrite (13, HIGH); switch (key) { case 0: Serial.println ("S1 OK"); break; case 1: Serial.println ("S2 OK"); break; case 2: Serial.println ("S3 OK"); break; case 3: Serial.println ("S4 OK"); break; case 4: Serial.println ("S5 OK"); break; } } } } delay (100); } / / Convert ADC value to key number int get_key (unsigned int input) { int k; for (k = 0; k <NUM_KEYS; k + +) { if (input <adc_key_val [k]) { return k; } } if (k> = NUM_KEYS) k = -1; / / No valid key pressed return k;я такой код находил, спасибо. Но когда прошивал он не прошивался, выдавал кучу ошибок.
И еще возможно не правильно впринципе подключал сам модуль, он же к А6 пину подключается??
спасибо
Вот хорошая статья для понимания как считать кнопки с аналового входа с примерами
http://alxarduino.blogspot.com/2013/09/ReadAnalogKeys.html
Клавиатура занимает аналоговый пин A0 и состоит из 5 кнопок. Прежде чем начать работать с такой клавиатурой желательно определить значения на аналоговом входе Arduino, соответствующие нажатию каждой из кнопок. Разные экземпляры клавиатур могут выдавать разные значения. Это можно сделать при помощи следующего тестового скетча:
int val = 0; // переменная для хранения считываемого значения void setup() { Serial.begin(9600); // установка связи по serial } void loop() { val = analogRead(A0); // считываем значение Serial.println(val); // выводим полученное значение }