В этой статье я расскажу как подключить hd44780 (LCD 1602) по I2C к ардуино уно
Схема подключения выглядит так:
![](http://delphi-lubitel.ucoz.ru/Arduino/img/Arduino_LCD1602_I2C.png)
SDA и SCL - Это у нас связь с I2C
SCL - Вход тактирования последовательной связи
SDA - Ввод-вывод последовательных данных
VCC и GND - Это питание
VCC - Напряжение питания 5V
GND - минус (земля)
Обратите внимание! Подключение будет выглядеть так: SCL > SCL (Serial Clock) , SDA > SDA (Serial Data), VCC > 5V, GND > GND
Скачать все что нужно для этого урока можно в конце статьи
И подключим библиотеку LiquidCrystal_I2C.h
Скетч Подключить библиотеку Добавить .ZIP библиотеку
Теперь когда мы все подключили начнем писать скетч
#include <Wire.h> // библиотека для управления устройствами по I2C
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602
LiquidCrystal_I2C lcd(0x3F,16,2); // lcd для дисплея 16х2
void setup() // процедура setup
{
lcd.init(); // инициализация LCD дисплея
lcd.backlight(); // включение подсветки дисплея
}
void loop() // процедура loop
{
lcd.setCursor(4,0); // устанавливаем курсор на 4 символ первой строки
lcd.print("DELPHI"); // выводим на дисплей слово DELPHI
lcd.setCursor(3,1); // устанавливаем курсор на 3 символ второй строки
lcd.print("LUBITEL"); // выводим на дисплей слово LUBITEL
delay(100); // задержка
}
Ну тут я думаю все предельно ясно описано в комментариях скетча.
Хочу обратить внимание на строку:
LiquidCrystal_I2C lcd(0x3F,16,2); // lcd для дисплея 16х2
Где 0x3F это адрес устройства I2C , а 16 количество символов в строке и 2 количество строк
НО ЕСЛИ ВДРУГ ПО КАКОЙ-ТО ПРИЧИНЕ НЕ РАБОТАЕТ ЧИТАЙТЕ ДАЛЬШЕ!
На экране может ничего не отображаться по нескольким причинам:
1 Не отрегулирован контраст: Попробуйте покрутить потенциометр подстроечный резистор для регулирования контраста (выглядит как болтик).
2 Указан неверно адрес для устройства I2C попробуйте адрес: 0x27
А если не поможет что бы не гадать поступим по другому:
2.1 нужно залить скетч в плату ардуино
#include
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); }
2.2 Заходим в Инструменты => Монитор порта (Сериал монитор)
2.3 После "I2C device found at address" будет написан адрес
3 Попробуйте переключить провода с A4 на SDA (Serial data) и A5 на SCL (Serial Clock) их вы найдете на этой картинке чуть выше 13 пина.
Скачать библиотеку и скетчи
Чтобы скачать нажмите "Перейти" "Пропустить рекламу" |