Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 14:51:45

Широко известна приблуда I2C_LCD конвертера, позволяющая экономить ноги процессора. И библиотека под нее - LiquidCristal_I2C. То бишь вместо 6 ног использовать только две.
Вопрос - существует ли приблуда для одной ноги. Ну типа 1-Wire_LCD конвертер. Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него. Которую можно использовать в Arduino IDE.
ПС. Номиналы деталей RC цепочек нарисованы для ручного управления в Протеусе. В реале емкости конденсаторов - 10nF.
Вложения
1Wire_LCD.png
(14.15 KiB) Скачиваний: 80

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 14:56:25

Подключить LCD к МК по 1-проводному интерфейсу ?
можно... UART называется))
Screenshot_5.jpg
(110.76 KiB) Скачиваний: 76

:))

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 15:10:38

Ммммдя ? Ну вот есть у меня LCD на HD44780. И как мне притулить его по UART-у к DigiSpark ??? Да так чтобы притуление не стало стоить дороже дисплея и ДижиСпарка вместе взятых !?

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 15:42:16

Можно и не-дороже. Берете еще один такой-же модуль MCU, подключаете к нему дисплей, реализуете поддержку приема команд по UART и подключаете его по 1-проводному интерфейсу.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 16:10:47

к PIC МК: Low Cost 1 Wire Lcd for 8 Pin Micro Controllers.
Есть код, можно портировать на другой МК. Но для себя я определил как ненадежным способом. Только если другого пути нет (а он всегда есть). Почему не нравится PCF8574 на I2c?

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Пн авг 07, 2023 23:31:15

1. Почему не надежно ? Существует целое семейство устройств (DS18B20 например), которые вполне надежно работают.
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 KiB) Скачиваний: 43

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 00:01:58

Их нельзя сравнивать. DS18B20 есть CRC и целостность данных может быть проверена с большой точностью.
Носите все через I2c, можно и чрез експандер и входы и выходы, и используете для большинства приложения.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 07:07:06

В далёком 2002-м подключал 1602 по однопроводке с паразитным питанием. На стороне LCD стоял PIC16F84. 1,5 ма было потребление.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 11:06:37

Можно использовать "многосегментные" дисплейчики на основе микросхем с трехпроводным интерфейсом...
Там всего-то выборка кристалла, строб сопровождения и линия данных.
Тем более это "вторсырье" от весов или кассовых аппаратов...
ну и туда же светодиодные блочки для адуринок на основе MAX7219...
Или модифицированный протокол фазовой манипуляции от "шустрых светиков" а-ля WS2812...
:roll:

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 12:23:58

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

#include <OneWire.h>
ds.write(Sdata); // Выводим данные в конвеер сдвига
ds.reset(); // Перегружаем из конвеера в выходной регистр. Всё - на выходе конвертора наше число.

- выполняют ВСЮ необходимую работу по проталкиванию данных через один провод.

В библиотеке LiquidCristal_I2C обязательно есть подобный участок кода по проталкиванию данных через два провода.
Все что нужно - это заменить тот участок на мой. И не париться с остальным. Я не понимаю структуру библиотек. Может мудрый гуру от программирования это сделает.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 12:37:53

Офигеть! Вы от балды что ли пишете? Такое впечатление что под шафэ...
Ознакомились бы с протоколом 1-wire и тем же I2C.
То что я писал выше, работало именно по 1-wire, но реализация slave была на ПИК-е.
То что хотите вы, на 595-м регистре, это не 1-wire, это проще. Но OneWire библиотеки Ардуино тут не канают.
Последний раз редактировалось OKF Вт авг 08, 2023 12:43:50, всего редактировалось 1 раз.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 12:40:03

Если хотите именно 1-wire, то от передатчика, через 1-wire, к LCD нужен еще один МК. См. сообщение u37 выше.
Выбираем МК и пишем команды 1-wire для передачи и приема и готово. Одна часть уже написана с использованием библиотеки oneWire.

Лично управление I2c более используемое и перспективное, потому что (если есть дисплей?) используемые выводы дисплея нулевые (0) - почти всегда есть устройство, которое уже использует I2c, с дисплеем и без него, количество используемых выводов не меняется.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 12:51:41

Выбираем МК и пишем команды 1-wire для передачи и приема и готово. Одна часть уже написана с использованием библиотеки oneWire.

Да, только нужно написать поддержку ведомого 1-wire. Т.е. отработку reset, presence, приёма байтов, как минимум. При обслуживании одного LCD - это не сложно, хотя и есть нюансы.
Значительно проще взять МК с UART-ом (типа PIC16F628), тогда и мудрить ничего не надо.
ПС. Про I2C и говорить нечего, т.к. с LCD уже используются готовые преобразователи I2C-LCD.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 12:56:53

1-wire... I2c... UART... и т.д. ... всё работает медленно !

SPI лучше ! ))

Подключить LCD к МК по 1-проводному интерфейсу ?

Если много LCD, то на каждый LCD нужен только один провод - выбор кристалла - SS

Остальные выводы МК - SCK и MOSI общие для всех LCD.

Щас такую схему делаю... всё по одному SPI.
скорость 10 Мбит/c.
Screenshot_1.jpg
(120.59 KiB) Скачиваний: 39

:tea:

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 13:02:14

1-wire... I2c... UART... и т.д. ... всё работает медленно !

SPI лучше ! ))

Да ладно! 3 провода для аппаратного SPI, которого нет в Тини85). USI - ТС с ним разберётся?
При том что LCD работает особенно быстро.)))

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 13:14:59

при чём тут Тини85 ?))
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))
:tea:
Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него. Которую можно использовать в Arduino IDE.

в Arduino IDE есть готовая библиотека SPI.

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 13:45:45

при чём тут Тини85 ?))
ТС использует Arduino IDE... на ATmega328... или аналогичной. Точно так же как у меня.))

Вы невнимательны. ТС хочет к Digispark, а это tiny85.
Да библиотека SPI есть и для него, но 3 пина отдай. При том что I2C уже работать не будет.
Конечно, можно и ногодрыгом, тогда 2 пина, но очень быстро.)

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 17:46:57

В том варианте, о коем Ariadna-on-Line мечтает, без МК на стороне дисплея никак не обойтись.
А это по условию задачи неприемлемо...
Остается только вариант передачи и дешифровки данных по однрму проводку с аппаратным (на рассыпухе) дешифраторе на стороне дисплея. Причем с минимальными затратами на подбор компонентов и подстройки.
А тут или от ИК принцип пересылки/кодирования брать или чего-то от ШИМ или еще какой... ...
Ведь дешифрация должна быть простейшей - на простой логике или на одновибраторах с простой логикой.
Т.е. вариант SPI программно заворачиваем в 1 проводок на стороне МК и разворачиваем аппаратно БЕЗ МК на стороне дисплея.
8)

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 18:18:32

неее... вариант SPI не интересно...
:?
а давайте подключим LCD к МК по Интернету ! ))
:))

в другой теме я так и сделал... https://www.radiokot.ru/forum/viewtopic ... 9&start=40
:tea:

Re: Подключить LCD к МК по 1-проводному интерфейсу.

Вт авг 08, 2023 21:32:41

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