1922 ₽
2159 ₽
экономия 237 ₽
Цена в бонусных баллах: 1922
2 строки по 16 символов, регулируемая подсветка дисплея благодаря встроенному потенциометру.
Позволяет настроить многоуровневое меню и управлять передвижением с использованием кнопочной клавиатуры.
6 кнопок
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // выберите контакты, используемые на ЖК-панели
// определить некоторые значения, используемые панелью и кнопками
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
int read_LCD_buttons(){ // чтение кнопки
adc_key_in = analogRead(0); // считывать значение с датчика
// мои кнопки при чтении центрируются в следующих значениях: 0, 144, 329, 504, 741
// мы добавляем примерно 50 к этим значениям и проверяем, близки ли мы
// Мы делаем это 1-м вариантом из соображений скорости, так как это будет наиболее вероятный результат
if (adc_key_in > 1000) return btnNONE;
// For V1.1 us this threshold
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;
// Для V1.0 прокомментируйте другой порог и используйте тот, который указан ниже:
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE; // когда все остальные терпят неудачу, верните это.
}
void setup(){
lcd.begin(16, 2); // запустить библиотеку
lcd.setCursor(0,0); // установить положение курсора ЖК-дисплея
lcd.print("Push the buttons"); // распечатать простое сообщение на ЖК-дисплее
}
void loop(){
lcd.setCursor(9,1); // переместите курсор на вторую строку "1" и на 9 пробелов
lcd.print(millis()/1000); // отображение секунд, прошедших с момента включения
lcd.setCursor(0,1); // перейти к началу второй строки
lcd_key = read_LCD_buttons(); // прочитай кнопки
switch (lcd_key){ // в зависимости от того, какая кнопка была нажата, выполняем действие
case btnRIGHT:{ // нажмите кнопку "ВПРАВО" и покажите слово на экране
lcd.print("RIGHT ");
break;
}
case btnLEFT:{
lcd.print("LEFT "); // нажмите кнопку "ВЛЕВО" и покажите слово на экране
break;
}
case btnUP:{
lcd.print("UP "); // нажмите кнопку «ВВЕРХ» и покажите слово на экране
break;
}
case btnDOWN:{
lcd.print("DOWN "); // нажмите кнопку "ВНИЗ" и покажите слово на экране
break;
}
case btnSELECT:{
lcd.print("SELECT"); // нажмите кнопку «ВЫБРАТЬ» и покажите слово на экране
break;
}
case btnNONE:{
lcd.print("NONE "); // При отсутствии действий на экране отображается "Нет".
break;
}
}
}-
Еще не было вопросов