lcd 1602 на сдвиговом регистре 74hc164 замена i2c

подключение экрана двумя проводами типа i2c

Создаем свой блок. Вопросы, помощь знатоков.
valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#1

Сообщение valand » 16.01.2019{, 00:40}

Недавно наткнулся на один проект на забугорном сайте, там экран 1602 подключается к ардуино двумя проводами, через сдвиговый регистр. Инфы по этому переходнику там не было, так же как и схемы, только фотка с торца платы которая ни о чем не говорила. И я сначала подумал что это обычный китайский переходник i2c и долго искал где в скетче задается адрес экрана)))
В итоге любопытство взяло верх и была найдена схема похожего переходника, сделал под нее плату и проверил, работает.
И в связи с этим возник вопрос, в FLProg программа может сильно тормозить из за экрана подключенного через i2c. если подключить экран напрямую, то уже вроде не так сильно сказывается.
Так вот, будет ли толк от такого переходника в FLProg? Провода точно сэкономит, кроме того там нет привязки к выводам и можно выбирать любые ноги. А будет ли преимущество в быстродействии (влияние блока экрана на выполнение основного тела программы) по сравнению с китайским i2c?
Сам я сделать пользовательский блок не осилю, но если вдруг кого заинтересует, или может просто для ардуинных проектов кому пригодится.
Все файлы оставляю.
lcd2wire1.jpg
IMG_4574.JPG
IMG_4573.JPG
Newliquidcrystal_1.3.5.zip
(2.4 МБ) 135 скачиваний
test ликвид на 74нс164.lay.zip
(11.73 КБ) 120 скачиваний

ecoins
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#2

Сообщение ecoins » 16.01.2019{, 03:08}

Значительного выигрыша не будет. Проблема lcd указанного типа в медленном обмене - один байт передаётся в несколько шагов с обязательными задержками между ними.
LCD можно использовать через другие блоки, но с элементами реального времени.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#3

Сообщение valand » 18.01.2019{, 00:13}

Как ни странно, но метод научного тыка сработал)
С энного раза получилось создать примитивный блок, который даже как то работает.
делал в 3.0.3. схема выше (управление подсветкой не работает).
Пускай лежит на всякий случай.
lcd_1602_74hc164_(CODE).ubi
(35.57 КБ) 113 скачиваний

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#4

Сообщение krom23 » 07.03.2019{, 23:30}

ecoins писал(а):
16.01.2019{, 03:08}
Значительного выигрыша не будет.
В пять раз производительней любой стандартной библиотеки и занимает на 600 байт меньше памяти, по словам автора. На сайте есть результаты тестирования.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#5

Сообщение valand » 08.03.2019{, 00:44}

Вот собрал в кучу пользовательские блоки, для 1602 и 2004.
На сколько хватило познаний облагородил содержимое.
В описании думаю вполне достаточно информации.
v1 для истории. v2 на всякий случай. v3 пока последние.
Все для схемы из первого поста (подсветка по прежнему не работает). Остальное вполне себе успешно.
lcd_1602_74hc164_v1_old_(CODE).ubi
(37.05 КБ) 90 скачиваний
lcd_1602_74hc164_v2_external_erase_(CODE).ubi
(51.42 КБ) 94 скачивания
lcd_1602_74hc164_v3_autoerase_(CODE).ubi
(39.75 КБ) 111 скачиваний
lcd_2004_74hc164_v2_external_erase_(CODE).ubi
(71.94 КБ) 91 скачивание
lcd_2004_74hc164_v3_auto_(CODE).ubi
(59.96 КБ) 99 скачиваний

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

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#6

Сообщение Sancho » 08.03.2019{, 12:18}

Проверил блок lcd 1602 74hc164 v3 autoerase по времени вывода, железа нет.
Отлично!

Отправлено спустя 1 час 24 минуты 9 секунд:
А если попробовать на двух микрухах, в полно-байтном режиме?!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#7

Сообщение valand » 08.03.2019{, 14:25}

На официальной страничке библиотеки, таких вариантов к сожалению нет. Так что попробовать наверно не получится.

Отправлено спустя 24 минуты 5 секунд:
хотя... есть еще такой вариант - 8бит
осталось найти желающих)

aidar_i
Полковник
Сообщения: 3121
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#8

Сообщение aidar_i » 08.03.2019{, 15:26}

Не лучше сделать главный блок и блоки вывода текста отдельно?
Почему автоочистка при изменении длины строки? Не лучше просто при изменении строки? А то совпадут длины старого и нового, новый текст не появится.
Пробовал запустить на Протеус, 74HC595 заработал, а 74LS164 нет.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#9

Сообщение valand » 08.03.2019{, 15:39}

aidar_i писал(а):
08.03.2019{, 15:26}
Не лучше сделать главный блок и блоки вывода текста отдельно?
valand писал(а):
16.01.2019{, 00:40}
Сам я сделать пользовательский блок не осилю, но если вдруг кого заинтересует,
для себя уже осилил, остальных приветствую.
aidar_i писал(а):
08.03.2019{, 15:26}
А то совпадут длины старого и нового, новый текст не появится.
никаких проблем нет при совпадении, встроенный в программу блок работает по такому же принципу совпадения, из него и выдрал.
aidar_i писал(а):
08.03.2019{, 15:26}
запустить на Протеус, 74HC595 заработал, а 74LS164 нет.
Протеуса никогда не видел, 164 уже давно работает живьем.

aidar_i
Полковник
Сообщения: 3121
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#10

Сообщение aidar_i » 08.03.2019{, 16:58}

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

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#11

Сообщение valand » 08.03.2019{, 19:18}

aidar_i писал(а):
08.03.2019{, 16:58}
как разработчику ПБ
Это очень громко сказано) некоторые вещи для меня - темный лес.
Если кто боится потери чего либо в строке, есть v2, там ничего не трет без внешней команды, а её можно формировать уже как угодно.
Про главный блок и дополнительные, не пойму принципа, если можно хоть каких подробностей.

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#12

Сообщение krom23 » 08.03.2019{, 21:28}

Sancho писал(а):
08.03.2019{, 13:42}
Проверил блок lcd 1602 74hc164 v3 autoerase по времени вывода,
А вы тестили блок с дефолтным LiquidCrystal, или заменяли его на LiquidCrystal из папки библиотеки Newliquidcrystal? Если нет, то попробуйте заменить и протестить, если найдётся время. Автор библиотеки уверяет что такая связка даст ещё лучший результат.

aidar_i
Полковник
Сообщения: 3121
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#13

Сообщение aidar_i » 09.03.2019{, 09:45}

valand писал(а):
08.03.2019{, 19:18}
Про главный блок и дополнительные, не пойму принципа, если можно хоть каких подробностей.
Я имел ввиду вот примеры. Если устроит, можете аналогично сделать. Максимально приближен код к штатному.
Блоки автоочисткой
LCD16xx_LiquidCrystal_SR.ubl
(85.26 КБ) 88 скачиваний
Последний раз редактировалось aidar_i 12.03.2019{, 20:43}, всего редактировалось 6 раз.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#14

Сообщение valand » 12.03.2019{, 01:06}

Можно попробовать и по аналогии. Спасибо за некоторые идеи, позаимствовал )
Итого: для схемы на 74HC164
Схему подправил, управление подсветкой вряд ли появится, (причины совсем не в блоках)
Поэтому если кто захочет повторять, то лучше сразу делать так -
lcd2wire ok.jpg
управлять подсветкой отдельной ногой ардуины, предусмотреть джампер для ручного включения,
или вообще выкинуть транзистор и запаять подсветку наглухо. В общем выбор широченный)
Ну и сами блоки-конструкторы, если кому интересно -
LCD 74HC164 2wire HD44780 universal.ubl
(117.62 КБ) 106 скачиваний
Главный блок универсальный, можно задать "тип экрана" (1602 \ 2004 \ итд.)
Блоки вывода насочинял разных, на вкус и цвет...
Все подробности указаны в описании.

aidar_i
Полковник
Сообщения: 3121
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#15

Сообщение aidar_i » 12.03.2019{, 09:28}

Я себе оставил только такие 4 блока (Здесь74HC595 ).
Сделал пример управления с ними.
LCD 74HC595 HD44780.flp
(133.53 КБ) 106 скачиваний
LCD 74HC164 HD44780.flp
(146.88 КБ) 99 скачиваний
В протеус проверил 74HC595
Arduino 2x16 LCD 74H595.rar
(115.58 КБ) 91 скачивание
Последний раз редактировалось aidar_i 12.03.2019{, 14:26}, всего редактировалось 2 раза.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#16

Сообщение valand » 12.03.2019{, 12:40}

в описаниях путаница, подправить бы, а то не соответствует действительности.

aidar_i
Полковник
Сообщения: 3121
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#17

Сообщение aidar_i » 12.03.2019{, 14:15}

Хорошо, подправил.

Отправлено спустя 6 часов 34 минуты 43 секунды:
valand, проверьте вот этот скетчи
sketch_mar12b.ino
(3.04 КБ) 79 скачиваний
LCD_74HC595__HD44780.ino
(3.53 КБ) 80 скачиваний
Подключение
СпойлерПоказать
K8LH 2-Pin Backpacks (1).png
Должен работать на обоих сдвиговых регисторах

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#18

Сообщение valand » 12.03.2019{, 21:45}

О! Это с ходу не проверить, железки такой собранной нет. Надо некоторое время на раскачку.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#19

Сообщение valand » 24.04.2019{, 19:35}

Что то инициатор идеи пропал, по крайней мере личка без ответа.
Прошу помощи, если кто хоть как то силен в создании\редактировании библиотек,то...
Суть в чем, есть скетч для "восьмибитной" схемы -
sketch_8bit_2w.ino
(4.02 КБ) 76 скачиваний
просто так в пользовательский блок он не лезет.
пытался спихнуть часть его в "самодельную" библиотеку-
Liquid_8BIT_TEST.zip
(1.69 КБ) 77 скачиваний
но моих познаний и найденных примеров не хватает, никак не пойму приватные не приватные части и прочие принципы оформления.
получается без ошибок, только если все целиком и только в .h файл.
В общем, если кто чем может... нуждаюсь в правильном переносе лишнего, из скетча в библиотеку.

valand
Рядовой
Сообщения: 63
Зарегистрирован: 15.07.2018{, 15:12}
Репутация: 13
Имя: Андрей

lcd 1602 на сдвиговом регистре 74hc164 замена i2c

#20

Сообщение valand » 03.06.2019{, 20:53}

С восьмибиткой идея зашла в тупик, ну... туда ей и дорога.
Апну темку по другому поводу.
Немного испытал однопроводной вариант.
595 1wire sxem.jpg
СпойлерПоказать
IMG_5920.JPG
IMG_5921.JPG
На столе все четко, как будет в условиях сильных помех не знаю.
В общем если кому интересно,
главный блок и блок управления подсветкой прилагаю.
lcd_74HC595_1wire_подсветка_(CODE).ubi
(9.5 КБ) 82 скачивания
Блоки вывода текста используются от двухпроводного варианта, и лежат выше.

Ответить

Вернуться в «Разработка пользовательских блоков»