Страница 1 из 2
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 16 янв 2019, 00:40
valand
Недавно наткнулся на один проект на забугорном сайте, там экран 1602 подключается к ардуино двумя проводами, через сдвиговый регистр. Инфы по этому переходнику там не было, так же как и схемы, только фотка с торца платы которая ни о чем не говорила. И я сначала подумал что это обычный китайский переходник i2c и долго искал где в скетче задается адрес экрана)))
В итоге любопытство взяло верх и была найдена схема похожего переходника, сделал под нее плату и проверил, работает.
И в связи с этим возник вопрос, в FLProg программа может сильно тормозить из за экрана подключенного через i2c. если подключить экран напрямую, то уже вроде не так сильно сказывается.
Так вот, будет ли толк от такого переходника в FLProg? Провода точно сэкономит, кроме того там нет привязки к выводам и можно выбирать любые ноги. А будет ли преимущество в быстродействии (влияние блока экрана на выполнение основного тела программы) по сравнению с китайским i2c?
Сам я сделать пользовательский блок не осилю, но если вдруг кого заинтересует, или может просто для ардуинных проектов кому пригодится.
Все файлы оставляю.
lcd2wire1.jpg
IMG_4574.JPG
IMG_4573.JPG
Newliquidcrystal_1.3.5.zip
test ликвид на 74нс164.lay.zip
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 16 янв 2019, 03:08
ecoins
Значительного выигрыша не будет. Проблема lcd указанного типа в медленном обмене - один байт передаётся в несколько шагов с обязательными задержками между ними.
LCD можно использовать через другие блоки, но с элементами реального времени.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 18 янв 2019, 00:13
valand
Как ни странно, но метод научного тыка сработал)
С энного раза получилось создать примитивный блок, который даже как то работает.
делал в 3.0.3. схема выше (управление подсветкой не работает).
Пускай лежит на всякий случай.
lcd_1602_74hc164_(CODE).ubi
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 07 мар 2019, 23:30
krom23
ecoins писал(а): 16 янв 2019, 03:08Значительного выигрыша не будет.
В пять раз производительней любой стандартной библиотеки и занимает на 600 байт меньше памяти, по словам автора. На сайте есть результаты тестирования.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 00:44
valand
Вот собрал в кучу пользовательские блоки, для 1602 и 2004.
На сколько хватило познаний облагородил содержимое.
В описании думаю вполне достаточно информации.
v1 для истории. v2 на всякий случай. v3 пока последние.
Все для схемы из первого поста (подсветка по прежнему не работает). Остальное вполне себе успешно.
lcd_1602_74hc164_v1_old_(CODE).ubi
lcd_1602_74hc164_v2_external_erase_(CODE).ubi
lcd_1602_74hc164_v3_autoerase_(CODE).ubi
lcd_2004_74hc164_v2_external_erase_(CODE).ubi
lcd_2004_74hc164_v3_auto_(CODE).ubi
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 13:42
Sancho
Проверил блок
lcd 1602 74hc164 v3 autoerase по
времени вывода, железа нет.
Отлично!
Отправлено спустя 1 час 24 минуты 9 секунд:
А если попробовать на двух микрухах, в полно-байтном режиме?!
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 14:49
valand
На
официальной страничке библиотеки, таких вариантов к сожалению нет. Так что попробовать наверно не получится.
Отправлено спустя 24 минуты 5 секунд:
хотя... есть еще такой вариант -
8бит
осталось найти желающих)
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 15:26
aidar_i
Не лучше сделать главный блок и блоки вывода текста отдельно?
Почему автоочистка при изменении длины строки? Не лучше просто при изменении строки? А то совпадут длины старого и нового, новый текст не появится.
Пробовал запустить на Протеус, 74HC595 заработал, а 74LS164 нет.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 15:39
valand
aidar_i писал(а): 08 мар 2019, 15:26Не лучше сделать главный блок и блоки вывода текста отдельно?
valand писал(а): 16 янв 2019, 00:40Сам я сделать пользовательский блок не осилю, но если вдруг кого заинтересует,
для себя уже осилил, остальных приветствую.
aidar_i писал(а): 08 мар 2019, 15:26А то совпадут длины старого и нового, новый текст не появится.
никаких проблем нет при совпадении, встроенный в программу блок работает по такому же принципу совпадения, из него и выдрал.
aidar_i писал(а): 08 мар 2019, 15:26запустить на Протеус, 74HC595 заработал, а 74LS164 нет.
Протеуса никогда не видел, 164 уже давно работает живьем.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 16:58
aidar_i
Вы не подумайте, что я Вас критикую. Просто как разработчику ПБ высказываю свои соображения, как пользователя программы.
По поводу совпадения длины, на старом есть вход, можно и блок отключить .
Протеус отличная программа, раньше я постоянно бегал в магазин что то покупать, чтобы попробовать.
Сейчас симулирую на нем. И блоки для дисплеев, которых у меня нет, делал тоже на нем
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 19:18
valand
aidar_i писал(а): 08 мар 2019, 16:58как разработчику ПБ
Это очень громко сказано) некоторые вещи для меня - темный лес.
Если кто боится потери чего либо в строке, есть v2, там ничего не трет без внешней команды, а её можно формировать уже как угодно.
Про главный блок и дополнительные, не пойму принципа, если можно хоть каких подробностей.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 08 мар 2019, 21:28
krom23
Sancho писал(а): 08 мар 2019, 13:42Проверил блок lcd 1602 74hc164 v3 autoerase по времени вывода,
А вы тестили блок с дефолтным LiquidCrystal, или заменяли его на LiquidCrystal из папки библиотеки Newliquidcrystal? Если нет, то попробуйте заменить и протестить, если найдётся время. Автор библиотеки уверяет что такая связка даст ещё лучший результат.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 09 мар 2019, 09:45
aidar_i
valand писал(а): 08 мар 2019, 19:18Про главный блок и дополнительные, не пойму принципа, если можно хоть каких подробностей.
Я имел ввиду вот
примеры. Если устроит, можете аналогично сделать. Максимально приближен код к штатному.
Блоки автоочисткой
LCD16xx_LiquidCrystal_SR.ubl
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 12 мар 2019, 01:06
valand
Можно попробовать и по аналогии. Спасибо за некоторые идеи, позаимствовал )
Итого: для схемы на 74HC164
Схему подправил, управление подсветкой вряд ли появится, (причины совсем не в блоках)
Поэтому если кто захочет повторять, то лучше сразу делать так -
lcd2wire ok.jpg
управлять подсветкой отдельной ногой ардуины, предусмотреть джампер для ручного включения,
или вообще выкинуть транзистор и запаять подсветку наглухо. В общем выбор широченный)
Ну и сами блоки-конструкторы, если кому интересно -
LCD 74HC164 2wire HD44780 universal.ubl
Главный блок универсальный, можно задать "тип экрана" (1602 \ 2004 \ итд.)
Блоки вывода насочинял разных, на вкус и цвет...
Все подробности указаны в описании.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 12 мар 2019, 09:28
aidar_i
Я себе оставил только такие 4 блока (
Здесь74HC595 ).
Сделал пример управления с ними.
LCD 74HC595 HD44780.flp
LCD 74HC164 HD44780.flp
В протеус проверил 74HC595
Arduino 2x16 LCD 74H595.rar
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 12 мар 2019, 12:40
valand
в описаниях путаница, подправить бы, а то не соответствует действительности.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 12 мар 2019, 20:49
aidar_i
Хорошо, подправил.
Отправлено спустя 6 часов 34 минуты 43 секунды:
valand, проверьте вот этот скетчи
sketch_mar12b.ino
LCD_74HC595__HD44780.ino
Подключение
[spoiler]
K8LH 2-Pin Backpacks (1).png
[/spoiler]
Должен работать на обоих сдвиговых регисторах
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 12 мар 2019, 21:45
valand
О! Это с ходу не проверить, железки такой собранной нет. Надо некоторое время на раскачку.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 24 апр 2019, 19:35
valand
Что то инициатор идеи пропал, по крайней мере личка без ответа.
Прошу помощи, если кто хоть как то силен в создании\редактировании библиотек,то...
Суть в чем, есть скетч для "восьмибитной" схемы -
sketch_8bit_2w.ino
просто так в пользовательский блок он не лезет.
пытался спихнуть часть его в "самодельную" библиотеку-
Liquid_8BIT_TEST.zip
но моих познаний и найденных примеров не хватает, никак не пойму приватные не приватные части и прочие принципы оформления.
получается без ошибок, только если все целиком и только в .h файл.
В общем, если кто чем может... нуждаюсь в правильном переносе лишнего, из скетча в библиотеку.
lcd 1602 на сдвиговом регистре 74hc164 замена i2c
Добавлено: 03 июн 2019, 20:53
valand
С восьмибиткой идея зашла в тупик, ну... туда ей и дорога.
Апну темку по другому поводу.
Немного испытал
однопроводной вариант.
595 1wire sxem.jpg
[spoiler]
IMG_5920.JPG
IMG_5921.JPG
[/spoiler]
На столе все четко, как будет в условиях сильных помех не знаю.
В общем если кому интересно,
главный блок и блок управления подсветкой прилагаю.
LCD_universal_1Wire_74HC595_to_HD44780_главный_блок_(CODE).ubi
lcd_74HC595_1wire_подсветка_(CODE).ubi
Блоки вывода текста используются от двухпроводного варианта, и лежат выше.