Дисплей lcd 1602 отображает не все символы

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

Здравствуйте. Имеется дисплей lcd 1602 с припаянным к нему модулю, у которого имеется 4 вывода gnd, vcc, sda, scl. Дисплей отображает не все символы. Код и фото предоставляю ниже.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015
#include Wire.h 
#include LiquidCrystal_I2C.h 
 
LiquidCrystal_I2C lcd(0x3F,16,2); // устанавливаем адрес 0x27, и дисплей 16 символов в 2 строки (16х2) 
 
int interval = 0; 
 
void setup() 
{ 
 lcd.init(); // инициализация LCD 
 lcd.backlight(); // включаем подсветку 
 lcd.clear(); // очистка дисплея 
 lcd.setCursor(4, 0); // устанавливаем курсор на 1 строку, 4 символ 
 lcd.print("cxem.net"); // вывод надписи 
 lcd.setCursor(1, 1); // устанавливаем курсор на 2 строку, 1 символ 
 lcd.print("count:"); 
 lcd.setCursor(8, 1); // устанавливаем курсор на 2 строку, 8 символ 
 lcd.print(interval); 
} 
 
void loop() 
{ 
 delay(500); 
 interval++; 
 lcd.setCursor(8, 1); 
 lcd.print(interval); 
}

Дисплей подключаю к 5В и GND arduino uno, SDA к A4, SCl к A5.

Radjah
Offline
Зарегистрирован: 06.08.2014
orcsin
Offline
Зарегистрирован: 12.06.2015

SergeyAndSmart, как подключены sda, scl?

Бывает после загрузки скетча или ресета экран выдаёт бред, помогает выдёргивание питания.

orcsin
Offline
Зарегистрирован: 12.06.2015

И вот ещё..

LiquidCrystal_I2C lcd(0x3F,16,2); // устанавливаем адрес 0x27, и дисплей 16 символов в 2 строки (16х2)

В коменте указано что адрес в Hex 0х27, почему у вас 0х3F?

keefa
Offline
Зарегистрирован: 19.06.2015

orcsin пишет:

И вот ещё..

LiquidCrystal_I2C lcd(0x3F,16,2); // устанавливаем адрес 0x27, и дисплей 16 символов в 2 строки (16х2)

В коменте указано что адрес в Hex 0х27, почему у вас 0х3F?

Думаю с адресом тут будет все нормально. В примере по умолчанию стоит 0х27, а на самом деле 0х3F. Я бы попробовал заменить библиотеку. Была такая же трабла, после замены библиотеки все заработало. В общем был конфликт библиотек.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

orcsin пишет:

SergeyAndSmart, как подключены sda, scl?

Бывает после загрузки скетча или ресета экран выдаёт бред, помогает выдёргивание питания.

Sda к A4, Sdl к A5.
orcsin пишет:

И вот ещё..

LiquidCrystal_I2C lcd(0x3F,16,2); // устанавливаем адрес 0x27, и дисплей 16 символов в 2 строки (16х2)

В коменте указано что адрес в Hex 0х27, почему у вас 0х3F?

Адрес 0х3F выбран потому что я тестировал каким-то скетчем адрес расположения дисплея, там был именно этот адрес. Другие адреса вообще ничего не показывают.
keefa пишет:

orcsin пишет:

И вот ещё..

LiquidCrystal_I2C lcd(0x3F,16,2); // устанавливаем адрес 0x27, и дисплей 16 символов в 2 строки (16х2)

В коменте указано что адрес в Hex 0х27, почему у вас 0х3F?

Думаю с адресом тут будет все нормально. В примере по умолчанию стоит 0х27, а на самом деле 0х3F. Я бы попробовал заменить библиотеку. Была такая же трабла, после замены библиотеки все заработало. В общем был конфликт библиотек.

Библиотек кучу перепробовал ( А у меня есть одинаковые библиотеки, т. е. они могут конфликтовать?

orcsin
Offline
Зарегистрирован: 12.06.2015

Бывает надо подобрать библиотеку они вроде одинаковые, но чуть разные... Конфликтовать могут, бывает даже IDE глючит, вроде самая стабильная 1.0.5.

Sda к A4, Sdl к A5.

А подтягивающие резисторы есть по питанию?

Крайний случай можно попробовать поменять контакты местами.

orcsin
Offline
Зарегистрирован: 12.06.2015

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

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

orcsin пишет:

Бывает надо подобрать библиотеку они вроде одинаковые, но чуть разные... Конфликтовать могут, бывает даже IDE глючит, вроде самая стабильная 1.0.5.

Sda к A4, Sdl к A5.

А подтягивающие резисторы есть по питанию?

Крайний случай можно попробовать поменять контакты местами.

Резисторов нет, все подключено напрямую к ардуино. А какие резисторы и куда нужны?

orcsin
Offline
Зарегистрирован: 12.06.2015

http://robotosha.ru/electronics/interface-i2c.html

Интерфейс I2C использует всего две линии — они именуются SCL (Serial Clock) и SDA (Serial Data). Первая предназначена для передачи синхроимпульсов (они формируются тем устройством, которое в настоящий момент передает данные), а вторая — для передачи самих данных и команд, управляющих этим процессом. Обе линии имеют открытый коллектор (как и во многих других случаях, когда необходимо, чтобы к одной линии мого подключаться несколько различных устройств), поэтому требуют подключения «подтягивающих» резисторов сопротивлением 1-10 кОм.

Обычно для нескольких устройств, но лишними не будут.

JasKo
Offline
Зарегистрирован: 21.11.2015

Проблема в версии IDE и библиотеке обсуждалась не один раз на этом форуме.

В новой https://github.com/marcoschwartz/LiquidCrystal_I2C проблема автором устранена.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

Очень странная ситуация, подключил на линии SDA и SCL по резистру на 1кОм, библиотеку взял с гитхаба, которую дал JasKo. Дисплей отображает текст правильно, потом я дотрагиваюсь до экрана и вместо текста появляются 16 прямоугольников. Отключал питание дисплея, линии SDA и SCL, ребутил ардуино, перезаписывал скетч, символы опять пропали. Сейчас пока не удается вернуть их. Я правильно понимаю, что дело в контактах дисплея? И возможно сам модуль к нему припаян криво?

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

Странно, сейчас опять все заработало. И опять пропало( Т.е. до дисплея вообще касаться нельзя? Я случайно надавил на него. Прошло полчаса, текст так и не отображается.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

SergeyAndSmart пишет:

Т.е. до дисплея вообще касаться нельзя? Я случайно надавил на него. Прошло полчаса, текст так и не отображается.

частями тела, растущими из жопы, дисплея касаться нельзя.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

Не трогая дисплей, заменил текст, который нужно вывести на экран, появились какие-то иероглифы( То ли дисплей чудит, то ли IDE. Очень интересно, просто перезагружая арду, текст меняется и выводится нужный иногда.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

Все работает, спасибо за помощь.

dhog1
Offline
Зарегистрирован: 01.03.2016

Большинство I2C переходников для LCD _уже_ имеют резисторы, подтягивающие SDA и SCL линии к питанию, как правило 4.7 кОм. Если вы подсоединили еще в параллель имеющимся резисторы по 1 кОм ...  Тяжело прийдется I2C шине.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

dhog1 пишет:

Большинство I2C переходников для LCD _уже_ имеют резисторы, подтягивающие SDA и SCL линии к питанию, как правило 4.7 кОм. Если вы подсоединили еще в параллель имеющимся резисторы по 1 кОм ...  Тяжело прийдется I2C шине.

О, спасибо за информацию.

JasKo
Offline
Зарегистрирован: 21.11.2015

SergeyAndSmart пишет:

dhog1 пишет:

Большинство I2C переходников для LCD _уже_ имеют резисторы, подтягивающие SDA и SCL линии к питанию, как правило 4.7 кОм. Если вы подсоединили еще в параллель имеющимся резисторы по 1 кОм ...  Тяжело прийдется I2C шине.

О, спасибо за информацию.

Кроме этого если питаешь ардуину от USB, а экран запитан от ардуины, то иегорлифы будут появляться 100 %. Делай нормальное питание.

SergeyAndSmart
Offline
Зарегистрирован: 05.02.2015

JasKo пишет:

SergeyAndSmart пишет:

dhog1 пишет:

Большинство I2C переходников для LCD _уже_ имеют резисторы, подтягивающие SDA и SCL линии к питанию, как правило 4.7 кОм. Если вы подсоединили еще в параллель имеющимся резисторы по 1 кОм ...  Тяжело прийдется I2C шине.

О, спасибо за информацию.

Кроме этого если питаешь ардуину от USB, а экран запитан от ардуины, то иегорлифы будут появляться 100 %. Делай нормальное питание.

Так и есть, это для тестов я так делал и получается зря. Так то в моем проекте будет нормальное питание от 5В.

KOMAPbI4
KOMAPbI4 аватар
Offline
Зарегистрирован: 22.03.2016

JasKo пишет:

Проблема в версии IDE и библиотеке обсуждалась не один раз на этом форуме.

В новой https://github.com/marcoschwartz/LiquidCrystal_I2C проблема автором устранена.

Спасибо . Помогло !!!