LCD 16x2 keypad Shield

Попался мне как-то на Али вот такой интересный шилд: LCD 16x2 keypad Shield

Технические характеристики

  1. Напряжение питания: 5 В
  2. Потребление подсветки дисплея: 150мА
  3. Потребление управления дисплеем: 3мА
  4. Размер дисплея: 2.6 дюйма
  5. Тип дисплея: 2 строки по 16 символов
  6. Цвет подсветки: синий
  7. Цвет символов: белый
  8. Регулировка контрастности : потенциометр
  9. Размеры: 80мм x 58мм x 20мм
  10. Количество кнопок: 5

Принцип рпботы

Дисплей

Дисплей использует для работы следующие контакты:

  1. RS: D8
  2. Enable: D9
  3. LCD4: D4
  4. LCD5: D5
  5. LCD6: D6
  6. LCD7: D7

Работает со стандартной библиотекой LiquidCrystal.h из поставки ArduinoIDE. Для инициализации дисплея используем строку

 lcd(8, 9, 4, 5, 6, 7); 

Кнопки

Для обработки кнопок используется пин аналоговый A0. Все 5 кнопок подключены к этому выходу через различные резисторы. Таким образом, читая значение с A0 мы видим следующее:

Значение A0 Кнопка
0…99 Right
100…199 Up
200…399 Down
400…599 Left
600…799 Left

Пример

lcd_keypad.cpp
#include <LiquidCrystal.h>                // Подключяем библиотеку
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );    // Указываем порты         
 
void setup()
{
  lcd.begin(16, 2);                       // Инициализируем LCD 16x2  
  lcd.setCursor(0,0);                     // Установить курсор на первую строку  
  lcd.print("LCD1602");                   // Вывести текст
  lcd.setCursor(0,1);                     // Установить курсор на вторую строку
  lcd.print("www.rchip.ru");              // Вывести текст
  Serial.begin(9600);                     // Включаем последовательный порт
}
 
void loop() 
{ 
  int x;                                  // Создаем переменную x
  x = analogRead (0);                     // Задаем номер порта с которого производим считывание 
  lcd.setCursor(10,1);                    // Установить курсор на вторую строку 
 
  if (x < 100) 
  {                          // Если x меньше 100 перейти на следующею строк
    lcd.print ("Right ");                   // Вывести текст 
    Serial.print("Value A0 ‘Right’ is  :"); // Вывести текст
    Serial.println(x,DEC);                  // Вывести значение переменной x
  }
  else if (x < 200) 
  {                     // Если х меньше 200 перейти на следующию строку
    lcd.print ("Up    ");                   // Вывести текст 
    Serial.print("Value A0 ‘UP’ is  :");    // Вывести текст
    Serial.println(x,DEC);                  // Вывести значение переменной x
  }
  else if (x < 400)
  {                      // Если х меньше 400 перейти на следующию строку
    lcd.print ("Down  ");                   // Вывести текст
    Serial.print("Value A0 ‘Down’ is  :");  // Вывести текст
    Serial.println(x,DEC);                  // Вывести значение переменной x
  }
  else if (x < 600)
  {                      // Если х меньше 600 перейти на следующию строку
    lcd.print ("Left  ");                   // Вывести текст
    Serial.print("Value A0 ‘Left’ is  :");  // Вывести текст
    Serial.println(x,DEC);                  // Вывести значение переменной x
  }
  else if (x < 800)
  {                      // Если х меньше 800 перейти на следующию строку
    lcd.print ("Select");                   // Вывести текст
    Serial.print("Value A0 ‘Select’ is  :");// Вывести текст
    Serial.println(x,DEC);                  // Вывести значение переменной x
  }
}
lcd_16x2_keypad_shield.txt · Последние изменения: 2017/04/12 21:51 — adm1n
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика