8 (800) 350-30-16

Подключение дисплея с I2C интерфейсов

Дата: / Категория: Дисплеи / Автор: DOC_tr

В последнее время часто стали приходить вопросы о нерабочих / проблемах с подключением / каких-то косяках (нужное подчеркнуть) с I2C LCD1602 дисплеем.

Ну я и решил в этом разобраться - почему у людей это вызывает такую проблему. Давайте посмотрим.

Быстренько поискав по интернету схемы подключения и примеры скетчей я нашел что-то более менее подходящее, и когда все собрал, ни капли не удивился тому, что оно не заработало.

Подключение достаточно простое - в любом случае 4 провода вставить намного легче чем подключать все 16, и происходит по следующей схеме.

Рассмотрим пример - подключать все будем с помощью данной библиотеки и следующего скетча

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("ROBOM.ru");
lcd.setCursor(8, 1);
lcd.print("LCD 1602");
}
void loop()
{
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
delay(1000);
}

Так как экран даже не инициализировался (при включении должен мигнуть) то тут дело либо в экране, либо в скетче. Проверив все дисплеи и отбросив мысль о том, что вся партия бракованная, я начал изучать скетч и код библиотеки.

Так как в данной библиотеке единственное что указывает на связь дисплея и Arduino это адрес - 0x27, будем искать правильный адрес. Для этого в библиотеке Wire есть метод beginTransmission. Как написано в официальной документации - начинает передачу на устройство I2C с указанного адреса.

И с помощью данного метода мы сможем достаточно просто реализовать сканер требуемого адреса. Ниже приведен скетч.

#include <Wire.h>

void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Сканер");
}

void loop(){
byte error, address;
bool nDevices;
Serial.println("Сканируем...");
nDevices = false;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();

if (error == 0)
{
Serial.print("I2C адpес 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices = true;
break;
}
else if (error==4)
{
Serial.print("Неизвестная ошибка. Адрес 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (!nDevices)
Serial.println("I2C не найден\n");
else
Serial.println("успешно\n");
delay(5000);
}

В процессе сканирования мы увидим следующую картину

И как видим - адрес нашего устройства далеко не 0x27, хотя все русскоязычные мануалы твердят о том что он установлен по умолчанию, и использовать нужно только его.

Внесем небольшие изменения в наш скетч (Измененный кусок выделен)

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("ROBOM.ru");
lcd.setCursor(8, 1);
lcd.print("LCD 1602");
}
void loop()
{
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
delay(1000);
}

Ничего не произошло, но дисплей, хотя бы, начал инициализироваться при загрузке скетча.

После недолгих разбирательств выяснилось, что регулирование контраста экрана происходит не через код, а через подстроечный резистор на плате. Вооружившись крестовой отверткой я его подкрутил и увидел на дисплее следующее.

Ну на этом наверное все. Если у вас возникают проблемы с ним, то сканер и отвертка вам в помощь ;)

UPD. Информация от нашего читателя

Во первых - видимо у всех дисплеев разный адрес, потому что у некоторых работает с адресом 0x27. В любом случае перед использованием лучше узнать с помощью сканера требуемый адрес.

Во вторых - если у вас дисплей никак не хочет включаться, то найдите в библиотеке из данной статьи следующие строчки (17 - 20)

inline size_t LiquidCrystal_I2C::write(uint8_t value) {
send(value, Rs);
return 0;
}

И замените здесь

return 0;

на

return 1;

Теги: #LCD1602, #I2C

Ваша оценка:

Рейтинг: 8.7 (Оценок: 9)

Комментарии (328):

Gulinjcd
2021-09-22 08:47
http://quickassistant.ru - Контрольная работа физмата
http://quickassistant.ru - Куплю диплом заведение
http://quickassistant.ru - Россия небольшой реферат
http://quickassistant.ru - Пульсовые волны реферат
http://quickassistant.ru - Диплом юриста предметы
Groverelact
2021-09-20 12:55
https://kinogo.io/19141-skvoz-tuman-2016.html
Elliottjag
2021-09-19 23:32
Vrlo je jednostavno kupiti automobil na nasoj net stranici [url=https://wannabuycar.com]https://wannabuycar.com[/url]. Imamo neporecive prednosti u odnosu na trzista automobila i druge web stranice koje postupak kupnje automobila mogu uciniti sto ugodnijim:
- lako i brzo pretrazivanje automobila u gradovima;
- najave o kupnji automobila s opseznim opisom;
- kvalitetna usluga i korisnicka podrska;
- automobil od vlasnika, a ne od preprodavaca.
Georgehic
2021-09-19 01:42
[url=https://exmo.me/?ref=433652]ee finance definition[/url]
DavidHox
2021-09-18 16:37
Hello guys. And Bye.

neversurrenderboys ;)
BrianWes
2021-09-17 18:26
https://movingcompanies.cloud/aurora-moving-company.html
Antoniocfa
2021-09-17 00:53
Доброго времени суток дамы и господа!
Предлагаем Вашему вниманию высококачественные профессиональные плёнки. Наша организация работает 15 лет на рынке этой продукции в Беларуси. С помощью оконных пленок мы превращаем хрупкое стекло в новый строительный материал, сочетающий такие свойства как прочность, термоизоляцию, солнцезащиту и современный внешний вид. Высокое качество тонировочных, защитных, декоративных и солнцезащитных пленок позволяет нам давать заказчикам и партнерам гарантии долговечности и надежности. Тонировка стекла и окон позволяет дозировать свет и солнечную энергию — в помещении, находящемся под защитой тонированного стекла, сохраняется оптимальная температура. С помощью оконных пленок можно воплотить в жизнь любую архитектурную идею.
http://9yma.net/home.php?mod=space&uid=102265
http://www.bragaburgerq.com.br/whatspedidos/forum/viewtopic.php?f=3&t=66497
http://forum.siamesecatsociety.com/viewtopic.php?f=2&t=2833&p=4548#p4548
https://teedinzone.com/webboard/index.php?topic=19917.new#new
https://2cheat.net/topic/8194-grand-chase-auto-kill-item-vac-stage-hack-avan%C3%A7ar-tempo-e/page/53/#comment-50155
DogsAster
2021-09-15 14:46
Приобретая собаку-компаньона особенно важен темперамент и питомца. [url=https://nsdog.ru]https://nsdog.ru[/url] Собаки, лишенные этого инстинкта, непригодны для пастьбы скота. Отбор собак для дрессировки по поиску наркотических средств.
Antonioaag
2021-09-15 12:20
Приветствую Вас господа!Предлагаем Вашему вниманию интересный сайт для заказа бурения скважин на воду. Бурение скважин в Минске компанией ЕВРОБУРСЕРВИС – полный комплекс качественных и разумных по цене услуг. Мы бурим любые виды скважин.У нас доступная ценовая политика, рассрочка на услуги и оборудование.Заказывайте скважину для воды в euroburservice – получите доступ к экологически чистой природной воде по самым выгодным в Минске ценам! Специалисты нашей компании оказывают следующие виды услуг: Грамотный подбор канализационной системы с учётом специфических требований и условий вашего домовладения. Доставка, установка и наладка канализации на даче / в загородном доме / коттедже. Канализация в Минской областиКанализации автономного типа, представляют собой удобные, надёжные и простые в эксплуатации установки, позволяющие очищать и утилизировать сточные воды. Наше канализационное оборудование подходит для эксплуатации во всех климатических зонах Беларуси и производится с учётом разнообразного и местами сурового климата нашей страны. Компания «ЕвроБурСервис» предлагает широкий ассортимент локальных канализационных установок, предназначенных для очистки хозяйственно-бытовых сточных вод. Наша компания занимается любыми коммуникациями для загородных домов, дач, коттеджей. Работаем в Минске, Минской области, в радиусе 200км от Минска.
От всей души Вам всех благ!
http://animefantreffen.techworx.at/viewtopic.php?f=30&t=92&p=93569#p93569
https://kginkz.clan.su/forum/28-68-2#7012
http://services-sector.ru/clubpointeresam/memberlist.php?mode=viewprofile&u=20592
https://raritetno.com/user/Antoniozxt/
http://rolka.house-of-night.ru/forum/47-8-194#66177
BuddyjoypE
2021-09-15 01:45
https://seoworking.ru/ - заказать отчет по практике
https://seoworking.ru/ - заказать решение задач
https://seoworking.ru/ - написание курсовых работ на заказ
https://seoworking.ru/ - заказать реферат
https://seoworking.ru/ - заказать курсовую работу срочно

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

Copyright © RobOM.ru 2021 г. Все права защищены