delphi-lubitel

Добро пожаловать на наш портал

На нашем сайте вы найдете множество статей на разные тематики, а так же сможете найти и скачать много интересного Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
Стартовая Избранное Главная Контакты Карта сайта
Инфо
Каталог статей

Категории раздела

Ваши уроки [5]
Выкладывайте ваши уроки
по Delphi [6]
Статьи по Delphi
по Visual Basic [0]
Статьи по Visual Basic
по SEO [1]
Уроки по SEO (Раскрутка сайта)
по Photoshop [1]
Уроки по фотошопу
по C++ [1]
уроки по C++
по HTML [1]
Уроки HTML
по CSS [1]
Уроки по CSS
Arduino [2]

Наш опрос

Как вы попали на сайт ???
Всего ответов: 493

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Arduino

Arduino подключение LCD 1602 по I2C

В этой статье я расскажу как подключить hd44780 (LCD 1602) по I2C к ардуино уно

Схема подключения выглядит так:

 

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 пина.


Скачать библиотеку и скетчи


Чтобы скачать нажмите "Перейти" "Пропустить рекламу"
Категория: Arduino | Добавил: Toha (25.01.2018)
Просмотров: 1239 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
 
Хостинг от uCoz | Адаптировал Grey200009 Число ответ: 57432