Проблемы с LCD 2004A i2c
- Войдите на сайт для отправки комментариев
Чт, 22/03/2018 - 11:20
LCD 2004A i2c неправильно отображает каждый 4 символ. При отображении всех восьмерок каждый 4 символ выводиться 0, а при тображении всех девяток каждый 4 символ выводиться 1.
Адрес PCF8574A 0X3F
Использовал стандартную библиотеку LiquidCrystal_I2C. Пример SerialDispley
В чем может быть заморочка, куда копать ?
LiquidCrystal_I2C. Пример SerialDispley
Поэтому, что и как Вы запускали и какие данные и как вводили - загадка.
Если Вы хотите конкретного разговора, то:
Если проблема есть, то:
Вот тогда можно будет попытаться Вам помочь.
Библиотеку загрузил через Менеджер библиотек.
В мониторе порта набрал:88888888888888888888
На дисплее отобразилось:88808880888088808880
Правило формирования конца строки установлено:Нет конца строки.
lcd.print ();
Угадал? Нет?
Ну, теперь давайте учиться отделять мух от котлет, т.е. выявлять в чём именно проблема.
Сделайте следующие эксперименты:
1. Вставьте после строки #30 delay(1); Что получается?
2. Вместо строк 23-34 вставьте просто
Что получается?
В 1 случае опять каждый 4 символ выводился 0
Во 2 случае вывелась одна 8 в первой строке первым символом.
Во 2 случае вывелась одна 8 в первой строке первым символом.
Фига се!
Значит дело в не связано с сериал - про него забыли.
Теперь так. Возьмите проверенную библиотеку.
С ней попробуйте такой пример
Если всё в порядке, то пробуйте примеры из библиотеки или свои примеры, но там надо заменить init на begin.
Не помогло. Каждый 4 символ выводиться 0.
Так, значит скроее всего одно из трёх:
1. Плохой контакт между сосбтвенно дисплеем и I2C переходником (они же у Вас разделяемые?). Вытащите, посмотрите на контакты, на пайки, если надо подравняйте ножки, порпаяйте, протрите контакты спиртиком, воткните на место, прижмите хорошо. И попробуйте.
2. Битый экран (попробуйте другой)
3. Битый I2C переходник (попробйте другой)
Если что-то битое, внимательно осмотрите устройство, может где непропай - все подозрительные места пропаяйте, может где неочищенный флюс - все подозрительные места прочистите. Кстати, флюс - болезнь многих китайских производителей, сколько раз уж было, что необъяснимые глюки исчезают после промывки платы изопропиловым спиртом (можно и обычным). Берёте старую зубную щётку, окунаете в спирт и фигачите.
Пробуйте, отпишитесь потом, что нашли - интересно.
Изопропиловый отличная вещь, но сильнейший аллергетик.
(по всем признакам подмыкает адресная шина на контроллере дисплея (не I2C))
Всем спасибо за помощь. Проблема в самом ЖКИ.
Ну, собственно про это я Вам вчера и писал.
А что за проблема? Решается пропайкой/промывкой или только утилизацией и покупкой нового?
Ну, собственно про это я Вам вчера и писал.
А что за проблема? Решается пропайкой/промывкой или только утилизацией и покупкой нового?
Да наврядли утилизацией, подмыкает нога D3 на одной из капелек (подтянута к 0)
всем доброго времени суток.
может кто сталкивался с проблемой:
на экран выводится строка из serial, дли на бывает разная... при превышении 20 знаков переходит с первой (1) не на вторую (2) а сразу на третью (3) затем на вторую (2) а после на четвертую (4).
как выводить последовательно 1,2...4?
Неинициализированный экран квадратики тоже через строчку рисует. Это как бы намекает на своебразное мышление конструкторов ))
По делу тебе уже намекнули, что "само" не переносится. Программист должен САМ следить за переносом на следующую строку. Можешь заказать такой код в "Ищу исполнителя", ну если ты из каких: "...средства у нас есть, у нас ума нет" (с) Почтальон Печкин. ;))
"Проблема" нигде не обсуждается, поскольку существует только в твоей голове. Собственно обсуждение уже и закончилось, больше писать не о чем. ;))
По делу тебе уже намекнули, что "само" не переносится. Программист должен САМ следить за переносом на следующую строку. Можешь заказать такой код в "Ищу исполнителя", ну если ты из каких: "...средства у нас есть, у нас ума нет" (с) Почтальон Печкин. ;))
"Проблема" нигде не обсуждается, поскольку существует только в твоей голове. Собственно обсуждение уже и закончилось, больше писать не о чем. ;))
я Вас понял. думал что можно по принципу 1602. там переносится само
хорошо. буду допиливать код