Вообще-то, способы уменьшения количества проводов там и так предусмотрены. Вот, например, четырёхбитный режим. Всё равно много? Есть дисплейные модули с I2C. Но нет предела совершенству, и если у вас найдётся лишнее Arduino (рано или поздно появляющееся у многих), дисплей можно отнести от источника данных на некоторое расстояние и подключить двухпроводным кабелем.

Один из способов передачи питания и данных по одной и той же паре проводов состоит в следующем. Сигнал с данными модулируют высокой частотой и объединяют, а на противоположном конце линии разделяют для подачи в демодулятор при помощи дросселей и конденсаторов. Но при питании постоянным током можно воспользоваться более простым способом, похожим на применяемый в домофонных ключах. Модулятор и демодулятор в этом случае не требуются, на передающей стороне достаточно ключа, коммутирующего цепь питания:



Транзисторы — AO3400A и AO3401A. Второй из них выдерживает 5 А (по другим данным — 4), а здесь коммутировать ему приходится всего 200 мА. Поток последовательных данных на ключ может быть подан с какого-либо микроконтроллера, но поскольку конструкция экспериментальная, автор воспользовался ПК, на котором запущен Python-скрипт, и конвертером USB-UART.

Прерыватель питания у автора получился неказистым, но очень крепким:



На противоположном конце линии пульсирующее напряжение подано на однополупериодный выпрямитель с фильтром (хотя выпрямление в данном случае не требуется, просто нужно, чтобы напряжение до диода оставалось пульсирующим, а после — нет), от которого питаются Arduino и дисплейный модуль. Arduino преобразует последовательные данные в параллельные, необходимые модулю. Внимание, у модулей на КБ1013ВГ6 цоколёвка бывает нестандартной. Пульсирующее напряжение до диода поступает на один из цифровых входов Arduino.



Так это выглядит в реале:



Прошивка максимально упрощена, она самостоятельно не вырабатывает даже команды инициализации контроллера дисплея (и все остальные команды), поэтому подавать их должна передающая сторона. Но при этом она распознаёт простейшие однобайтные команды, адресованные непосредственно ей. Здесь х — младший полубайт, команда — старший полубайт:

0xA[x] — подать полубайт x на выводы 4 — 7 модуля
0xB[x] — подать младший бит полубайта x на вход RS модуля
0xC[x] — подать младший бит полубайта x на вход EN модуля
0xD[x] — выставить яркость подсветки (регулируется ШИМом) пропорционально полубайту x

Всё необходимое ПО находится здесь. Чтобы показать, как всё работает, автор составил такой сценарий:



И запустил:

Комментарии (41)


  1. aivs
    28.04.2019 10:59

    Полезная статья. Несколько раз мне пригодился бы такой подход.
    Автор конечно мастер скриншотов :)


    1. u_235
      28.04.2019 13:04
      +2

      В чём польза, в экономии одного провода?


      1. AlexAV1000
        28.04.2019 17:15
        +2

        В том, что его можно сдать в металлоприёмку.


      1. Otard
        28.04.2019 18:01
        +1

        Если два провода уже проложены, а третий проложить возможности нет.


    1. safari2012
      29.04.2019 17:19
      +1

      Потрясающе. Автор изобрёл велосипед 1-wire.


  1. VT100
    28.04.2019 13:30
    +1

    Милый Kunststuck.
    Может — даже полезный, если рассматривать с т.з. того, что не надо засирать радиодиапазон для такого низкоскоростного устройства.


  1. pvvv
    28.04.2019 14:47
    +1

    вместо ардуины можно было 595 сдвиговым регистром и парой RC цепочек обойтись.


    1. A__D
      28.04.2019 15:27
      +2

      А куда тогда девать ардуину? Она должна быть… везде, даже в генераторе меандра простейшем (555 юзают только деды и не продвинутые).


      1. cyberly
        28.04.2019 21:29
        +1

        555 юзают только деды

        Не, деды делают на рассыпухе…


        1. Paskin
          29.04.2019 12:45

          На самом деле — китайцам положена какая-нибудь премия вроде той что дали Курниковой за «вклад в развитие высокоскоростного интернета». «Левые» тиражи любого заказанного устройства привели к замене всего чего можно микропроцессорами…


        1. flacon
          30.04.2019 00:39

          На лампах


      1. AlexSam
        29.04.2019 09:57
        +2

        Вот вы смеётесь с ардуины, а у меня акумы для шуруповерта с Bluetooth…


  1. FuneralService
    28.04.2019 15:02
    +1

    Это интересное решение. Даже придраться особо не к чему. Взял на заметку и повторю.
    Что изменю у себя:
    1. Инициализацию дисплея полностью перенесу на видео-мк.
    2. Вместо ардуино, поставлю 20-ти ногую stm32f042/f030
    2. В схеме, вместо n-mosfet AO3400A, поставлю биполярник BCR512


    1. Tomasina
      29.04.2019 15:04
      +1

      Если результат будет, я даже готов купить с десяток таких корвертеров.


    1. green88
      30.04.2019 11:11

      Без подсветки 1602 потребляет около 3 ма. Лет 20 назад питал по аналогии с 1-wire. На выходе мастера был только резистор подтяжки на 470 ом, без всего этого огорода. Притом что к мастеру планировалось подключить 1602 в кол-ве 16 штук.


  1. REPISOT
    28.04.2019 16:17
    +1

    Схема — трэш и угар. Почему все ардуинщики не могут нарисовать схему, чтобы было понятно нормальным людям?


    1. FuneralService
      28.04.2019 16:24
      +1

      А что не так со схемой??? Ну кроме того что там на входе нет токоограничивающего резистора и резистора подтяжки (которые, кстати говоря, при определенных условиях, не обязательны)???
      И нормальные люди — это кто?? Те кому надо все разжевать и в рот положить или те кто все же способен самостоятельно добыть недостающие знания или синтезировать их самостоятельно???


      1. REPISOT
        28.04.2019 16:29
        +1

        Нормальная схема? Серьезно?image


        1. FuneralService
          28.04.2019 16:37
          +1

          Аааааа. Дак вы об этом убожестве… Тут с вами не поспоришь. Но все же и тут при желании можно разобраться.


      1. REPISOT
        28.04.2019 16:32
        +1

        А статью зачем читать?

        самостоятельно добыть недостающие знания или синтезировать их самостоятельно
        я и так могу. Зачем мне бесполезная картинка?


  1. Habivax
    28.04.2019 20:07
    +1

    Идея очень интересная в плане практического применения.

    коммутировать ему приходится всего 200 мА.
    Ардуино потребляет 17 ма и подсветка 40 мА (максимальный ток выхода). Как получилось 200 мА?

    Хотел бы обратить внимание что примененный модуль ЖКИ у Вас новый, с яркими диодами подсветки. Это видно по выступающему справа от экрана блестящему кожуху. На обычных (старых) модулях ток подсветки примерно 160 мА (от 5В). При их использовании выход желательно бы усилить транзистором.


    1. NordicEnergy
      28.04.2019 22:08
      +2

      У меня попадались 1602 с алишки, которые жрали до 1А легко с подсветкой на полную мощность.


      1. Kolschik
        29.04.2019 05:26

        1А 5В это 5 ватт мощности на светодиоде. Это же прожектор-фонарик!.. Может, китайцы не поставили токоограничивающий резистор?


  1. Kolschik
    28.04.2019 20:14
    +4

    Вот жесть то, еще адруинку запихать… Если уже так хочется передать данные по двум проводам хоть на километр, то меняйте полярность, модулируя переменку хоть фазой, хоть частотой.


    1. NordicEnergy
      28.04.2019 22:04
      +2

      По буду занудой… На километре эти 5В упадут настолько, что работать не будет. 5В и 1А на километр — это надо ВВГ 2.5 мм2 или что-то на уровне, а не китайские говно-провода с сечением 0.1 мм2 :))

      P.S. просто случай из жизни, одни ардуинщики знакомые пытались запитать цепочку устройств от 12В. Первые 20 устройств работали, а потом что-то переставали. Суммарное потребление было 12В и пара ампер, через километр было уже 5...6В, провод какой-то китайский с алишки около 0.5 мм2.


      1. cyberly
        28.04.2019 22:47
        +1

        Помню, я лично пытался питать роутер от его родного БП (12В переменки, в роутере — выпрямитель и линейный стабилизатор) по неиспользуемым парам UTP. Метров 70 что-ли… Не получилось…


  1. clawham
    28.04.2019 23:48
    +1

    У меня возникает только один вопрос — зачем там процессор?
    Прекрасно это все реализуется одной примитивной микрухой 74hc595. более того я так делал и оно работает!

    схема проверенная в железе.


    image


    1. Habivax
      29.04.2019 05:55
      +1

      Не показывает картинку, проверьте пожалуйста.


      1. clawham
        29.04.2019 13:23
        +1

        Вот обновленная картинка
        image


        1. Habivax
          29.04.2019 16:32

          Нога порта атмеги легко вытягивает питание и передачу данных и даже подсветку трем экранам.
          На все экраны выводится одинаковая информация?


          1. pvvv
            29.04.2019 16:34

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


    1. sim2q
      29.04.2019 09:17
      +1

      Прекрасно это все реализуется одной примитивной микрухой 74hc595. более того я так делал и оно работает!
      точно два провода, вместе с питанием?


      1. pvvv
        29.04.2019 12:36
        +1

        Да, питание от данных точно так же отделяется диодом с большой ёмкостью.
        Клоки, данные и чипселект для защелкивания данных — разделяются двумя RC цепочками. Как на схеме из комментария выше (скорее всего), которую не видно.


        1. sim2q
          29.04.2019 12:42
          +1

          не видно, оттуда и вопрос


    1. CrashLogger
      29.04.2019 09:40
      +1

      Микруху эту еще заказать надо, а ардуина у многих валяется в ящике стола. Кроме того, на ардуину можно навесить дополнительных функций, например инициализацию, скроллинг символов.


      1. balamutang
        29.04.2019 10:34
        +1

        к чему мелочиться, можно передавать закодированную информацию и ардуиной раскодировать на дисплей. можно еще много чего придумать чтоб оправдать оверкилл, но промышленное решение будет самое дешевое и надежное, с 595 микросхемой :)


      1. pvvv
        29.04.2019 12:53
        +1

        Всё равно будет какой-то свой протокол поверх этого однопроводного интерфейса, что ничем особо не отличается от какого-нибудь кривого (посылать в УАРТ байт для передачи одного бита) управления сдвиговым регистром по одному проводу импульсами разной длительности.
        А «разгружать» основной процессор поставив дополнительную ардуину в качестве «видеокарты» для 16х2 — так себе идея.
        Только если надо здесь и сейчас что-то соорудить из того что есть под рукой, приходилось как-то заменять пару микросхем медленной, обычной 74 логики микроконтроллером, в качестве временного патча.


    1. clawham
      29.04.2019 17:44
      +1

      Вот обновленная картинка
      image


      1. Tomasina
        30.04.2019 11:32

        Но тут все же три провода.
        P.S. в закладки внес, пригодится.


        1. clawham
          30.04.2019 15:06

          два… три то если надо много то перемычка разрывается и питание дается отдельно. или когда подсветке надо больше газу :) изначально два


  1. ktod
    29.04.2019 19:09
    +1

    С ардуинкой? Надпись «Data overkill» смотрелась бы забавнее и правдивее.