Z- LCD I2C Keypad Shield

Опубликовано 21.11.2014 21:30:00


Z- LCD I2C Keypad Shield - это плата расширения имеющая на своем борту символьный дисплей 1602, а также 6 кнопок (5 считываемых и перезагрузки).

В обычном LCD Keypad Shield'е дисплей подключается к выводам Arduino напрямую, для этого задействуется целых 8 цифровых выводов из 14 доступных (с D4 по D10). Найти какой-либо шилд, поверх которого можно установить данную плату - не самая простая задача.

В нашем же шилде дисплей подключается к контроллеру через микросхему PCF8574T, работа с которой производится по двухпроводному интерфейсу I2C. В общей сложности для работы шилд задействует всего 3 аналоговых входа: A0 для считывания показания 5 кнопок и A4, A5 для работы с дисплеем.

Zelectro LCD I2C Keypad на микросхеме PCF8574T с возможность выбора адресации

 

 

Основные технические характеристики:

• Дисплей: Символьный 16х02

• Подсветка: Синяя с белыми символами

• Подсветка (режим работы ВКЛ/ВЫКЛ): Управляется выводом P3 микросхемы PCF8574T

• Подсветка (режим регулирования яркости): Управляется ШИМ выводом Arduino на выбор (3, 5, 6, 9, 10 либо 11).

• Контраст: Настраивается потенциометром

• Кнопки: 6 шт (5 считываемых и перезагрузки)

• Напряжение питания: 5 В

• Интерфейс: I2C

• I2C адрес: 0x20

Линии SDA и SCL выведены на аналоговые входы A4 и A5. Так как на платах Arduino, построенных на различных контроллерах, интерфейс I2C выведен на различные пины, то Z- LCD совместим только с платами на основе ATmega328 (UNO, Duemilanove, PRO).


 

Задействуемые пины Arduino:

 

Выводы отвечающие подключение дисплея:

Аналоговый вывод A4 - Линия SDA
Аналоговый вывод A5 - Линия SCL
 

Выводы отвечающие за cчитывание состояния кнопок:

Аналоговый вывод A0 


 

Выбор управляющего вывода подсветки

На задней стороне Z- LCD I2C Keypad'a имеется блок джамперов под пайку. "Из коробки" подсветка работает от ШИМ вывода D11, что позволяет программно регулировать её яркость. В случае, если в проекте задействован вывод D11, то можно распаять перемычку и перебросить на другой ШИМ вывод. Если же в проекте не требуется регулирование яркости, то можно вовсе не использовать выводы Arduino, а подсоединить управляющий вывод подсветки к пину P3 микросхемы PCF8574T, тогда подсветка будет работать в режиме ВКЛ/ВЫКЛ.  

Выбираем вывод которым будет управляться подсветка


 

Работа в среде Arduino IDE

Для работы с данным модулем необходимо установить библиотеку LiquidCrystal_I2C1602V1

Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

 

 
Функционал библиотеки
//Работа с курсором 
lcd.setCursor(0, 0);              // Устанавливаем курсор (номер ячейки, строка)
lcd.home();                       // Установка курсора в ноль (0, 0)
lcd.cursor();                     // Включить видимость курсора (подчеркивание)
lcd.noCursor();                   // Убрать видимость курсора (подчеркивание)
lcd.blink();                      // Включить мигание курсора (курсор 5х8)
lcd.noBlink();                    // Выключить мигание курсора (курсор 5х8)

//Вывод информации
lcd.print("zelectro.cc");         // Вывод информации
lcd.clear();                      // Очистка дисплея, (удаление всех данных) установка курсора в ноль
lcd.rightToLeft();                // Запись производится справа на лево
lcd.leftToRight();                // Запись производится слева на право
lcd.scrollDisplayRight();         // Смещение всего изображенного на дисплее на один символ вправо
lcd.scrollDisplayLeft();          // Смещение всего изображенного на дисплее на один символ влево

//Информация полезная для шпионов:)
lcd.noDisplay();                  // Информация на дисплее становится невидимой, данные не стираются
// если, в момент когда данная функция активна, ничего не выводить на дисплей, то
lcd.display();                    // При вызове функции display() на дисплее восстанавливается вся информация которая была

//Подсветка
lcd.backlight();                  // Включение подсветки
lcd.noBacklight();                // Выключение подсветки

 

Вывод текста на дисплей

 
Пример программного кода

 

Считывание и вывод состояния кнопок на дисплей

 
Пример программного кода

 

Пример для демонстрации

 
Пример программного кода

 


 

Создание собственных символов

С выводом текста разобрались, буквы английского алфавита зашиты в память контроллера внутри дисплея и с ними проблем нет. А вот что делать если нужного символа в памяти контроллера нет?

Не беда, требуемый символ можно сделать вручную (всего до 7ми символов). Ячейка, в рассматриваемых нами дисплеях, имеет разрешение 5х8 точек. Все, к чему сводится задача создания символа, это написать битовую маску и расставить в ней единички в местах где должны гореть точки и нолики где нет.

В ниже приведенном примере нарисуем смайлик.

битовая маска для ячейки 5х8

 

 
Пример программного кода
// Тестировалось на Arduino IDE 1.0.5
// Добавляем необходимые библиотеки
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Битовая маска символа улыбки
byte smile[8] =
{
  B00010,
  B00001,
  B11001,
  B00001,
  B11001,
  B00001,
  B00010,
};     
LiquidCrystal_I2C lcd(0x20,16,2);      // Задаем адрес и размерность дисплея.

void setup()
{

  lcd.init();                          // Инициализация lcd
  lcd.backlight();                     // Включаем подсветку  
  // Создаем символ под номером 0
  lcd.createChar(1, smile);

  lcd.setCursor(0, 0);                 // Устанавливаем курсор в начало 1 строки
  lcd.print("\1");                     // Выводим смайлик (символ под номером 0) - "\0"
}

void loop()
{
}

 

Программка для легкого создания символов

В комментариях участник сообщества скинул ссылку на генератор символов

Аватар


 

Документация:

• Принципиальная схема: z-lcd-i2c-keypad-shield-schematics.jpg

• Техническое описание микросхемы PCF8574: datasheet


 

Купить Купить в России Z- LCD I2C Keypad Shield


А как же комментарии?