Помогите с выводом букв на дисплей через нажатие кнопки
- Войдите на сайт для отправки комментариев
Втр, 15/11/2016 - 20:27
Нужно написать скетч на клавиатуре 3х3. 7 кнопок для алфавита, 1 для ввода и одна "backspace". Пытался написать хотя бы для одной кнопки, но всплывает слишком мног
#include <LiquidCrystal_I2C.h> #include <Wire.h> #include <Bounce.h> Bounce bouncer = Bounce(2, 40); LiquidCrystal_I2C lcd(0x27,16,2); unsigned long elapsedTime = 0; unsigned int previousMillis = 0; static int lastPressedKey = -1; static int counter = 0; String printedText(); int cursorPosition = 0; void setup() { lcd.init(); lcd.backlight(); } void loop() { static int counter = 0; //static isSecondPress = false; unsigned long currentMillis = millis(); if ((currentMillis - previousMillis) > 1500) { counter = 0; } if (bouncer.update()) { if (bouncer.read()==0) { switch (counter) { case 0 : lcd.print("A"); break; case 1: lcd.clear(); lcd.print("B"); break; case 2: lcd.clear(); lcd.print("C"); break; case 3: //lcd.clear(); counter = -1; break; } counter++; previousMillis = millis(); } } }
о подводных камней. Помогите пожалуйста!
Daniil1497, во-первых вы должны уяснить что обработка кнопки и обработка клавиатуры принципиально отличаются. Во-вторых должны определить какие события с клавиатуры надо снимать, а какие игнорировать. В третих как эти события будете обрабатывать. Ведь глупо создавать в обработчике клавиатуры анализатор событий и потом тупо его не испльзовать.
Ваша процедура (функция или как назовете) должна генерировать 0, если ни одна клавиша не нажата. 1,2,3,...,9 если клавишу только что нажали , а до этого была клавиша не нажата. Ну и наконец 10 (можете выбрать любое другое) код ошибки. Это если нажато больше 1 клавиши, если уже отправлялся код клавиши, но клавиша все еще нажата. Вот на основе этого и пишите свой код.