Помогите с выводом букв на дисплей через нажатие кнопки
- Войдите на сайт для отправки комментариев
Втр, 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 клавиши, если уже отправлялся код клавиши, но клавиша все еще нажата. Вот на основе этого и пишите свой код.