понедельник, 2 января 2017 г.

LCD1602 (по I2C) + Arduino

Завалялся как-то у меня LCD1602, который я заказывал на Aliexpress, вот сегодня нашлось время вам рассказать как его подключить к Arduino и написать "Hello, World".

Подключить данный экран можно на прямую или через специальную плату, с которой ардуино будет работать по протоколу I2C. LCD я заказывал сразу с этой платой, вот несколько фотографий данного модуля:



Из-за данного переходника работающего по I2C схема подключения предельно проста:



С аппаратной частью разобрались, давайте теперь перейдем в редактор.

Для работы с данным экраном самая распространенная библиотека это LiquidCrystal_I2C, скачать её можно здесь.

Для того чтобы узнать функционал данной библиотеки как всегда можно открыть главный файл (LiquidCrystal_I2C.h) и посмотреть весь перечень функций которые перечислены в public.

Давайте рассмотрим часто используемые функции:
LiquidCrystal_I2C lcd(0x27,16,2); //Инициализация дисплея
// LiquidCrystal_I2C(адрес_дисплея, количество_ячеек, количество_строк, количество_точек);
// количество_точек - LCD_5x10DOTS или LCD_5x8DOTS (по-умолчанию LCD_5x8DOTS)
lcd.init(); // Начало работы с дисплеем
lcd.noDisplay(); // Скрыть отображение текста на экране
lcd.display(); // Включить отображение текста на экране
// Важно: Состояние подсветки не изменится, и текст не удаляется, а просто скрывается.
lcd.home(); // Задать позицию курсора в начало
lcd.setCursor(0, 0); // Задать позицию курсора (номер ячейки, строка)
// Важно: расчет идет с ноля, то есть количество ячеек с 0 до 15

lcd.noBlink(); // Не отображать курсор прямоугольный (размер 5х8)
lcd.blink(); // Отображать курсор прямоугольный (размер 5х8)
lcd.noCursor(); // Не отображать курсор (подчеркивание)
lcd.cursor(); // Отображать курсор (подчеркивание)
lcd.print("Hello, world"); // Вывод текста
lcd.clear(); // Очистка экрана
lcd.backlight(); // Включаем подсветку дисплея
lcd.noBacklight(); // Отключаем подсветку дисплея
Теперь этого достаточно чтобы написать нашу программу
#include <LiquidCrystal_I2C.h> // Подключаем необходимую библиотеку
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем экран
void setup(){
  lcd.init(); // Инициализируем экран    
  lcd.backlight(); // Включаем подсветку экрана    
  lcd.home(); // Задаем позицию курсору 0, 0    
  lcd.print("Hello, world"); // Выводим текст Hello, world    
  lcd.setCursor(3, 1); // Задаем позицию курсору 3, 1    
  lcd.print("El Pumpkin"); // Выводим текст El Pumpkin на второй строчке
}
void loop(){
}
Результат должен быть таким:

Остался один момент, который мы не рассмотрели еще, это вывод не стандартных символов. Для этого есть специальная функция lcd.createChar(1, symbol)

Для того чтобы вывести не стандартный символ, необходимо создать пиксельную матрицу. Как вы помните у нас размер ячейки 5 на 8, мы должны представить наш символ в такой матрице:


Там где пиксель должен подсвечиваться, мы пишем еденичку.
В коде это будет выглядеть так:
byte symbol[8] = {
  B00000,
  B01010,
  B01010,
  B01010,
  B10001,
  B01110,
  B00000
};
Теперь можно вывести наш смайл на экране:
#include <LiquidCrystal_I2C.h> // Подключаем необходимую библиотеку
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем экран

byte symbol[8] = {
  B00000,
  B01010,
  B01010,
  B01010,
  B10001,
  B01110,
  B00000
 }; // создаем матрицу пиксельную

 void setup(){
  lcd.init(); // Инициализируем экран
  lcd.backlight(); // Включаем подсветку экрана
  lcd.createChar(1, symbol); // Задаем айди нашему символу
  lcd.home(); // Задаем позицию курсору 0, 0 
  lcd.write(1); // Выводим наш символ
}
void loop()
{
  
}
Результат должен получиться таким:


Ну вот вроде все, что я хотел вам сегодня рассказать :)
Заказывал экранчик у этого продавца. На самом деле экран имеет приятное синее свечение, а текст пишется белым, при фотографировании телефон как-то непонятно цвета отобразил.

PS на этой небольшой плате есть подстроечный резистор, который отвечает за контрастность текста, не забудьте его отрегулировать 

PS2 если хотите посмотреть больше примеров, то после установки библиотеки у вас во вкладке Файл -> Примеры (Files -> Examples) появятся примеры работы с данным экраном

Комментариев нет:

Отправить комментарий