Подключение LCD1602 по I2C к Ардуино

I2C модуль на базе микросхем PCF8574 позволяют подключить символьный дисплей 1602 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5), что дает возможность не использовать цифровые выходы Arduino при подключении дисплея.

Подключение  I2C модуля к дисплею 1602 очень простое, установите модуль как показано на фото и пропаяйте контакты.

Как видите все достаточно просто, а самое главное что все функции библиотеки LiquidCrystal аналогичны LiquidCrystal_I2C за не большим исключением связанные с инициляцией экрана. В добавок появляется возможность программно включать и выключать подсветку дисплея.

Ниже представлен простой пример скетча демонстрирующий работу дисплея. В очень редких случаях могут возникнуть проблемы с запуском дисплея, как правило это связано с не верным адресом уст-ва, для решения этой проблемы можно поменять адрес на рекомендуемые: с 0x20 до 0x27 для PCF8574 или с 0x38 до 0x3F для PCF8574A. Если и это не помогло, можете запустить скетч I2C сканера, который поможет определить верный адрес уст-ва.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
void setup()
{
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.print("  rcl-radio.ru  ");
  lcd.setCursor(0, 1);
  lcd.print("    LCD 1602    ");
  delay(5000);
  lcd.noBacklight();// Выключаем подсветку дисплея
  delay(5000);
  lcd.backlight();// Включаем подсветку дисплея
}
void loop(){}

Аналогичным способом к Arduino подключается LCD2004, который содержит четыре строки по 20 символов. Для нормальной работы в скетч достаточно внести не большие изменения. Пример скетча показан ниже:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // Устанавливаем дисплей
void setup()
{
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.setCursor(0, 0);
  lcd.print("rcl-radio.ru");
  lcd.setCursor(0, 1);
  lcd.print("LCD 2004");
  lcd.setCursor(0, 2);
  lcd.print("Arduino");
  lcd.setCursor(0, 3);
  lcd.print("NANO");
  delay(5000);
  lcd.noBacklight();// Выключаем подсветку дисплея
  delay(5000);
  lcd.backlight();// Включаем подсветку дисплея
}
void loop(){}

Добавить комментарий

Войти с помощью: