Баг при выводе на LCD 1604 через i2c

При выводе на LCD1604 начальный символ 3 и 4 строк смещаются на 4 позиции вправо.

В данный форум Вы можете заносить найденные Вами ошибки.При добавления ошибки пожалуйста приложите файлик error.log который находится в папке с установленной программой
Ответить
dest
Рядовой
Сообщения: 5
Зарегистрирован: 07.07.2018{, 14:42}
Репутация: 0
Имя: Олег

Баг при выводе на LCD 1604 через i2c

#1

Сообщение dest » 16.01.2019{, 13:35}

Здравствуйте! Столкнулся со странным багом на LCD 1604(контроллер HD44780), подключение через модуль i2c, вывод текста во всех строках с 1-го символа .
При выводе 3 и 4 строки происходит сдвиг позиции первого символа на 4 знака вправо в обоих строках. При этом первые две строки выводятся корректно.

Изображение

Попробовал ради интереса вывести текст на ЖКИ написав простенький код - та же проблема, поменял переходник i2c - никакого эффекта. В итоге указал в коде позицию первых символов для 3 и 4 строк, как -4, и все стало отображаться корректно, с первого символа.

Изображение

Возможно ли как то исправить этот баг, что бы при формирование кода чрез FLProg, корректно отображался текст на LCD1604 через i2c ?

Текстовый пример кода, с которым все отображается корректно:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3f,16,4);
//* Задаем адрес и размерность дисплея.

void setup()
{
lcd.init(); // Инициализация
lcd.clear ();
delay (500);
lcd.backlight(); // запускаем подсветку
lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки, как обычно
lcd.print("LCD"); // Выводим текст
lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки, как обычно
lcd.print("1604"); // Выводим текст
lcd.setCursor(-4, 2); // Устанавливаем курсор в начало 3 строки, на -4 символа
lcd.print("HD44780"); // Выводим текст
lcd.setCursor(-4, 3); // Устанавливаем курсор в начало 4 строки, на -4 символа
lcd.print("problem"); // Выводим текст
}

void loop()
{
}

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Баг при выводе на LCD 1604 через i2c

#2

Сообщение Sancho » 16.01.2019{, 13:48}

dest, Картинок нет, проекта тоже.
О таком слышу впервые.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

Баг при выводе на LCD 1604 через i2c

#3

Сообщение Dev1 » 16.01.2019{, 14:36}

Ну тут все просто, потроха расчитаны под дисплей 2004, вопщем китайцы как обычно слепили как могли, это только на i2c :D
Вот пример проблемы, в последних сообщениях найдете ответ :smile38:
Win10-64 FLProg v7.5.2 Portable :fie:

dest
Рядовой
Сообщения: 5
Зарегистрирован: 07.07.2018{, 14:42}
Репутация: 0
Имя: Олег

Баг при выводе на LCD 1604 через i2c

#4

Сообщение dest » 16.01.2019{, 14:43}

Sancho, картинки прикрепил как ссылку, чтобы не засорять форум,можно просто щелнкуть по иконе картинки ПКМ, "открыть URL картинки в новом окне",странно что на форуме миниатюра картинки не отобразилась. На всякий случай прикрепил картинки отдельными файлами к этому сообщению.

Проект не прикреплял, потому, что в нем кроме 4х блоков LCD с вбитыми константами - ничего нет. На всякий случай также прицеплю его к этому сообщению, он голый без какой либо логики, однако проблема видна при заливке в контролер .
СпойлерПоказать
2.jpg
1.jpg
Вложения
lcd1604_test.flp
(16.25 КБ) 52 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Баг при выводе на LCD 1604 через i2c

#5

Сообщение Sancho » 16.01.2019{, 14:47}

dest, Dev1 уже всё расписал.
Не знал я о такой заморочке - не попадался 16 на 4...
Лечи библиотеку.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

dest
Рядовой
Сообщения: 5
Зарегистрирован: 07.07.2018{, 14:42}
Репутация: 0
Имя: Олег

Баг при выводе на LCD 1604 через i2c

#6

Сообщение dest » 16.01.2019{, 14:49}

Dev1, спасибо за ответ! попробую LiquidCrystal_I2C.cpp отредактировать

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Баг при выводе на LCD 1604 через i2c

#7

Сообщение nalnik » 16.01.2019{, 14:56}

Dev1 писал(а):
16.01.2019{, 14:36}
Ну тут все просто, потроха расчитаны под дисплей 2004, вопщем китайцы как обычно слепили как могли, это только на i2c :D
Вот пример проблемы, в последних сообщениях найдете ответ :smile38:
Я такие дисплеи (16х4) покупал в Чип и Дип с 1998 по 2002 работали и работают отлично до сих пор, сейчас еще остались у меня три штуки и также смещается информация и с UNO и с NodeMCU v3 - на flproge 3-0 и 4-2-4.
Так и не надо гнать на Китайцев -- "библиотекари" просто не знают что такие дисплеи были и еще иногда продаются! :smile113:
Последний раз редактировалось nalnik 16.01.2019{, 15:33}, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.

dest
Рядовой
Сообщения: 5
Зарегистрирован: 07.07.2018{, 14:42}
Репутация: 0
Имя: Олег

Баг при выводе на LCD 1604 через i2c

#8

Сообщение dest » 16.01.2019{, 15:10}

Отредактировал метод send в файле LiquidCrystal_I2C.cpp, теперь все работает замечательно.
Выкладываю сюда исправленный файлик, мало ли кто столкнется с такой же проблемой в будущем.

-------------
Вкратце:
Заменяем исходный файл на скачанный в директории: FLProg\ideV2\libraries\LiquidCrystal_I2C\
Вложения
LiquidCrystal_I2C.cpp
(7.23 КБ) 70 скачиваний

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

Баг при выводе на LCD 1604 через i2c

#9

Сообщение Dev1 » 16.01.2019{, 18:10}

nalnik писал(а):
16.01.2019{, 14:56}
Я такие дисплеи (16х4) покупал в Чип и Дип с 1998 по 2002 работали и работают отлично до сих пор, сейчас еще остались у меня три штуки и также смещается информация и с UNO и с NodeMCU v3 - на flproge 3-0 и 4-2-4.
Так и не надо гнать на Китайцев -- "библиотекари" просто не знают что такие дисплеи были и еще иногда продаются! :smile113:
Вы наверное брали с чип и дипа фирмы Powertip, тот же хрен(китайский) только тайваньский. :D Щас их выпускают кому не лень...
А библиотеки обычно делают под широко распространенные форматы, под остальные делают либо форки, либо стучатся к автору чтоб добавил, ну такое себе удовольствие. А в пром устройствах никто не использует библиотеки... :fie:
У меня лежат цветные тфт дисплеи квадратные, тоже сдвиг идет, рассчитана библа на прямоугольные экраны. Правлю ручками... :smile171:
Win10-64 FLProg v7.5.2 Portable :fie:

Ответить

Вернуться в «Новые»