Подключить LCD к МК по 1-проводному интерфейсу.
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Подключить LCD к МК по 1-проводному интерфейсу.
Широко известна приблуда I2C_LCD конвертера, позволяющая экономить ноги процессора. И библиотека под нее - LiquidCristal_I2C. То бишь вместо 6 ног использовать только две.
Вопрос - существует ли приблуда для одной ноги. Ну типа 1-Wire_LCD конвертер. Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него. Которую можно использовать в Arduino IDE.
ПС. Номиналы деталей RC цепочек нарисованы для ручного управления в Протеусе. В реале емкости конденсаторов - 10nF.
Вопрос - существует ли приблуда для одной ноги. Ну типа 1-Wire_LCD конвертер. Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него. Которую можно использовать в Arduino IDE.
ПС. Номиналы деталей RC цепочек нарисованы для ручного управления в Протеусе. В реале емкости конденсаторов - 10nF.
- Вложения
-
- 1Wire_LCD.png
- (14.15 КБ) 231 скачивание
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Подключить LCD к МК по 1-проводному интерфейсу ?
можно... UART называется))

можно... UART называется))
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Ммммдя ? Ну вот есть у меня LCD на HD44780. И как мне притулить его по UART-у к DigiSpark ??? Да так чтобы притуление не стало стоить дороже дисплея и ДижиСпарка вместе взятых !?
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Можно и не-дороже. Берете еще один такой-же модуль MCU, подключаете к нему дисплей, реализуете поддержку приема команд по UART и подключаете его по 1-проводному интерфейсу.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Подключить LCD к МК по 1-проводному интерфейсу.
к PIC МК: Low Cost 1 Wire Lcd for 8 Pin Micro Controllers.
Есть код, можно портировать на другой МК. Но для себя я определил как ненадежным способом. Только если другого пути нет (а он всегда есть). Почему не нравится PCF8574 на I2c?
Есть код, можно портировать на другой МК. Но для себя я определил как ненадежным способом. Только если другого пути нет (а он всегда есть). Почему не нравится PCF8574 на I2c?
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Подключить LCD к МК по 1-проводному интерфейсу.
1. Почему не надежно ? Существует целое семейство устройств (DS18B20 например), которые вполне надежно работают.
2. Когда свободны всего 3 пина (как у DigiSpark например, два занимает USB, плюс еще - RESET)) - рад будешь каждому свободному пину.
2. Когда свободны всего 3 пина (как у DigiSpark например, два занимает USB, плюс еще - RESET)) - рад будешь каждому свободному пину.
Код: Выделить всё
//1-Wire to Parallel converter
#include <OneWire.h>
OneWire ds(0); // on pin 10 (a 4.7K resistor is necessary)
int Sdata = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Sdata= ");
Serial.println(Sdata);
ds.write(Sdata); // Выводим данные в конвеер сдвига
ds.reset(); // Перегружаем из конвеера в выходной регистр
Sdata = Sdata + 1;
if (Sdata >= 256)
Sdata = 0;
delay(64000); // Странно, но это значение дает 1 секунду.
}- Вложения
-
- 1Wire_LCD.png
- (34.61 КБ) 185 скачиваний
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Их нельзя сравнивать. DS18B20 есть CRC и целостность данных может быть проверена с большой точностью.
Носите все через I2c, можно и чрез експандер и входы и выходы, и используете для большинства приложения.
Носите все через I2c, можно и чрез експандер и входы и выходы, и используете для большинства приложения.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
В далёком 2002-м подключал 1602 по однопроводке с паразитным питанием. На стороне LCD стоял PIC16F84. 1,5 ма было потребление.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Можно использовать "многосегментные" дисплейчики на основе микросхем с трехпроводным интерфейсом...
Там всего-то выборка кристалла, строб сопровождения и линия данных.
Тем более это "вторсырье" от весов или кассовых аппаратов...
ну и туда же светодиодные блочки для адуринок на основе MAX7219...
Или модифицированный протокол фазовой манипуляции от "шустрых светиков" а-ля WS2812...

Там всего-то выборка кристалла, строб сопровождения и линия данных.
Тем более это "вторсырье" от весов или кассовых аппаратов...
ну и туда же светодиодные блочки для адуринок на основе MAX7219...
Или модифицированный протокол фазовой манипуляции от "шустрых светиков" а-ля WS2812...
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Послушайте - нет нужды изобретать велосипед.
Вот смотрите, всего три строчки кода -
#include <OneWire.h>
ds.write(Sdata); // Выводим данные в конвеер сдвига
ds.reset(); // Перегружаем из конвеера в выходной регистр. Всё - на выходе конвертора наше число.
- выполняют ВСЮ необходимую работу по проталкиванию данных через один провод.
В библиотеке LiquidCristal_I2C обязательно есть подобный участок кода по проталкиванию данных через два провода.
Все что нужно - это заменить тот участок на мой. И не париться с остальным. Я не понимаю структуру библиотек. Может мудрый гуру от программирования это сделает.
Вот смотрите, всего три строчки кода -
#include <OneWire.h>
ds.write(Sdata); // Выводим данные в конвеер сдвига
ds.reset(); // Перегружаем из конвеера в выходной регистр. Всё - на выходе конвертора наше число.
- выполняют ВСЮ необходимую работу по проталкиванию данных через один провод.
В библиотеке LiquidCristal_I2C обязательно есть подобный участок кода по проталкиванию данных через два провода.
Все что нужно - это заменить тот участок на мой. И не париться с остальным. Я не понимаю структуру библиотек. Может мудрый гуру от программирования это сделает.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Офигеть! Вы от балды что ли пишете? Такое впечатление что под шафэ...
Ознакомились бы с протоколом 1-wire и тем же I2C.
То что я писал выше, работало именно по 1-wire, но реализация slave была на ПИК-е.
То что хотите вы, на 595-м регистре, это не 1-wire, это проще. Но OneWire библиотеки Ардуино тут не канают.
Ознакомились бы с протоколом 1-wire и тем же I2C.
То что я писал выше, работало именно по 1-wire, но реализация slave была на ПИК-е.
То что хотите вы, на 595-м регистре, это не 1-wire, это проще. Но OneWire библиотеки Ардуино тут не канают.
Последний раз редактировалось OKF Вт авг 08, 2023 12:43:50, всего редактировалось 1 раз.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Если хотите именно 1-wire, то от передатчика, через 1-wire, к LCD нужен еще один МК. См. сообщение u37 выше.
Выбираем МК и пишем команды 1-wire для передачи и приема и готово. Одна часть уже написана с использованием библиотеки oneWire.
Лично управление I2c более используемое и перспективное, потому что (если есть дисплей?) используемые выводы дисплея нулевые (0) - почти всегда есть устройство, которое уже использует I2c, с дисплеем и без него, количество используемых выводов не меняется.
Выбираем МК и пишем команды 1-wire для передачи и приема и готово. Одна часть уже написана с использованием библиотеки oneWire.
Лично управление I2c более используемое и перспективное, потому что (если есть дисплей?) используемые выводы дисплея нулевые (0) - почти всегда есть устройство, которое уже использует I2c, с дисплеем и без него, количество используемых выводов не меняется.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
Выбираем МК и пишем команды 1-wire для передачи и приема и готово. Одна часть уже написана с использованием библиотеки oneWire.
Да, только нужно написать поддержку ведомого 1-wire. Т.е. отработку reset, presence, приёма байтов, как минимум. При обслуживании одного LCD - это не сложно, хотя и есть нюансы.
Значительно проще взять МК с UART-ом (типа PIC16F628), тогда и мудрить ничего не надо.
ПС. Про I2C и говорить нечего, т.к. с LCD уже используются готовые преобразователи I2C-LCD.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
1-wire... I2c... UART... и т.д. ... всё работает медленно !
SPI лучше ! ))
Подключить LCD к МК по 1-проводному интерфейсу ?
Если много LCD, то на каждый LCD нужен только один провод - выбор кристалла - SS
Остальные выводы МК - SCK и MOSI общие для всех LCD.
Щас такую схему делаю... всё по одному SPI.
скорость 10 Мбит/c.

SPI лучше ! ))
Подключить LCD к МК по 1-проводному интерфейсу ?
Если много LCD, то на каждый LCD нужен только один провод - выбор кристалла - SS
Остальные выводы МК - SCK и MOSI общие для всех LCD.
Щас такую схему делаю... всё по одному SPI.
скорость 10 Мбит/c.

Re: Подключить LCD к МК по 1-проводному интерфейсу.
1-wire... I2c... UART... и т.д. ... всё работает медленно !
SPI лучше ! ))
SPI лучше ! ))
Да ладно! 3 провода для аппаратного SPI, которого нет в Тини85). USI - ТС с ним разберётся?
При том что LCD работает особенно быстро.)))
Re: Подключить LCD к МК по 1-проводному интерфейсу.
при чём тут Тини85 ?))
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))

в Arduino IDE есть готовая библиотека SPI.
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))

Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него. Которую можно использовать в Arduino IDE.
в Arduino IDE есть готовая библиотека SPI.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
при чём тут Тини85 ?))
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))
Вы невнимательны. ТС хочет к Digispark, а это tiny85.
Да библиотека SPI есть и для него, но 3 пина отдай. При том что I2C уже работать не будет.
Конечно, можно и ногодрыгом, тогда 2 пина, но очень быстро.)
Re: Подключить LCD к МК по 1-проводному интерфейсу.
В том варианте, о коем Ariadna-on-Line мечтает, без МК на стороне дисплея никак не обойтись.
А это по условию задачи неприемлемо...
Остается только вариант передачи и дешифровки данных по однрму проводку с аппаратным (на рассыпухе) дешифраторе на стороне дисплея. Причем с минимальными затратами на подбор компонентов и подстройки.
А тут или от ИК принцип пересылки/кодирования брать или чего-то от ШИМ или еще какой... ...
Ведь дешифрация должна быть простейшей - на простой логике или на одновибраторах с простой логикой.
Т.е. вариант SPI программно заворачиваем в 1 проводок на стороне МК и разворачиваем аппаратно БЕЗ МК на стороне дисплея.

А это по условию задачи неприемлемо...
Остается только вариант передачи и дешифровки данных по однрму проводку с аппаратным (на рассыпухе) дешифраторе на стороне дисплея. Причем с минимальными затратами на подбор компонентов и подстройки.
А тут или от ИК принцип пересылки/кодирования брать или чего-то от ШИМ или еще какой... ...
Ведь дешифрация должна быть простейшей - на простой логике или на одновибраторах с простой логикой.
Т.е. вариант SPI программно заворачиваем в 1 проводок на стороне МК и разворачиваем аппаратно БЕЗ МК на стороне дисплея.
Re: Подключить LCD к МК по 1-проводному интерфейсу.
неее... вариант SPI не интересно...
а давайте подключим LCD к МК по Интернету ! ))
в другой теме я так и сделал... https://www.radiokot.ru/forum/viewtopic ... 9&start=40

а давайте подключим LCD к МК по Интернету ! ))
в другой теме я так и сделал... https://www.radiokot.ru/forum/viewtopic ... 9&start=40

- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Подключить LCD к МК по 1-проводному интерфейсу.
В том варианте, о коем Ariadna-on-Line мечтает, без МК на стороне дисплея
Остается только вариант передачи и дешифровки данных по однрму проводку с аппаратным (на рассыпухе) дешифраторе на стороне дисплея. Причем с минимальными затратами на подбор компонентов и подстройки...
1. Я выложил картинку конвертора на рассыпухе. Работает успешно. Видно переданные цифры и их бинарный вид на выходе. Осталось подключить к линиям LCD модуля и - готово. Вся заморочка-то в том, что библиотека должна быть копией стандартной LiquidCristal_I2C, но выдавать в линию сигнал 1-Wire, а не I2C. Все советы использовать еще один МК - рабочие, но это то же самое как примандрячивать ракетный двигатель к телеге.Остается только вариант передачи и дешифровки данных по однрму проводку с аппаратным (на рассыпухе) дешифраторе на стороне дисплея. Причем с минимальными затратами на подбор компонентов и подстройки...
2. OKF-у - На ВТОРОЙ картинке работает код, который я выложил. Там библиотека OneWire и передача работает. Че тут вам еще непонятного ?
- Вложения
-
- 1Wire_LCD.png
- (34.61 КБ) 182 скачивания
Последний раз редактировалось Ariadna-on-Line Вт авг 08, 2023 22:06:50, всего редактировалось 3 раза.