Комментарии 35
Пять лет назад я полагал, что Arduino игрушка для детей, а язык СИ применительно к контроллерам — извращение. (Ну, примерно как фон Нейман когда-то по отношению к Фортрану: «Это же отходы для канцеляристов!»). С тех пор мнение во многом поменял, но жалею, кстати, что тогда не задался задачей управления графическими и строчными дисплеями на ассемблере: сейчас бы разбирался в них гораздо лучше.
Реле — зачётное ноу-хау, нужно патентовать.)) Диодик бы только поставить, а не то Ардуино может того-сь...))
На такой маломощной обмотке не может. Хотя, строго говоря, замечание правильное.
Нет, неправильное замечание, потом сообразил. У AVR есть защитные диоды, и для обмотки с собственным сопротивлением 500 Ом их более, чем достаточно.
Может само реле неправильное? Вообще, сочетание OLED с реле не коробит?
Уж хотя бы транзистор поставили, если с инициализацией никак.
Вы это реле видели? http://www.chipdip.ru/product/edr202a0500/. Корпус Дип-16 с отсутствующими частично ногами, ток обмотки 10 мА, время включения 1 мс. Оно идеально вписывается в 5-вольтовую логику. Главное — сопротивление контактов на высоте. У упомянутого ниже FDV303P сопротивление 0,45 Ома (в идеальных условиях), что в момент включения даст заметный провал напряжения. А от этих скачков мы и стараемся избавиться. Если уж ключевой транзистор, то не ниже вот такого: IRF7416PBF
Вдогонку — я сам невнимательно читал даташит на реле. Там диод есть уже встроенный. Так что оно как раз для таких случаев.
У нас любят наезжать агрессивно на тех, кто хоть что-то делает. :) Но в реле действительно смысла нет, один маломощный p-fet (типа FDV303P) легко будет делать тоже самое. Затвор — на D4, исток — на +5, сток — на дисплей. Подаем 0 — открывается, подаем 1 — закрывается.
Спасибо за наводку на мосфет с пороговым напряжением меньше полутора вольт!
P.S. Перфекционистская жаба настаивает на совете добавить в цепь затвора хотя бы стоомный резистор.:-)
Практика показывает, что atmega нормально справляется с единичными переключениями такого «легкого» mosfet-а без токоограничительного резистора. Вот если бы там часто переключать требовалось или stm32 какой-нибудь, тогда да — лучше поставить с номиналом для 10 миллиампер максимум.

Кстати, опечатался в названии, FDV304P, конечно же. FDV303N — его комплиментарный N-FET. Есть еще FDV301/FDV302 — те менее мощные, зато и емкость затвора гораздо ниже.
«легкого» mosfet-а

я и написал, моя перфекционистская жаба :-)
P.S. Жаль только, что на ebay они только в SOT23, хотел купить, а TO-92 и нет.
Да, TO-92 не особо популярный формат для цифровых mosfet-ов. Какой-нибудь TSM2N7000K подойдет? 100 миллиампер, всего, правда. :(

Кроме AVR есть и другие arduino совместимые контроллеры.

Ничего страшного. Проблема возникает когда цепь РАЗМЫКАЕТСЯ, а в случае ардуины выход полноценный, не открытый и он не размыкается а переключается с "+" на "-" шину и роль диода играет нижний полевик выходного драйвера контроллера. Конечно, если не сделать глупость — перевести выход в высокоимпендансное состояние — тогда есть риск что что-то погорит, но тут начинает работать второй уровень защиты — защитные диоды в микроконтроллере которые сольют выброс на шину питания, а там уже всё зависит от 1) потребления схемы, 2) наличия конденсатора у выводов питания контроллера 3) индуктивности обмотки реле, 4) тока через обмотку перед выключением. Идея такова: энергия импульса переходит в конденсатор по питанию, если выброс небольшой то это приведёт лишь к повышению напряжения питания порядка десятой доли вольта. Но, если индуктивность большая, ток через реле больше чем потребление контроллером и другой периферии в момент отключения а шунтирующий конденсатор по питанию способный поглотить энергию выброса отсутствует или слишком мал — выброс повысит напряжение на шине питания что МОЖЕТ привести к выходу и строя чувствительных к перенапряжению микросхем, например STM-микроконтроллеры к этому уязвимы, как и большая часть 3.3В высокоскоростной логики.
При этом есть ещё риск выхода из строя стабилизатора напряжения — многие из них ох как не любят превышение напряжения на выходе по сравнению со входным, даже кратковременное превышение может запустить лавину повреждений. Но при следовании рекомендациям разводки питания от производителей микросхем(в т.ч. и стабилизаторов) вероятность развития такого сценария крайне невелика.
А есть ли доступные eink дисплеи которые можно было бы так же просто подключить к Arduino?
есть на али. насколько доступные — сложно сказать. www.youtube.com/watch?v=RuSb8L2jzfI
Хорошие дисплеи делает контора Pervasive Displays. У них очень хорошая документация, разнообразные платы расширения, но стоят они дорого и продаются на Digi-key.
Есть ещё китайская фирма Good display которая, похоже, тупо копирует у Pervasive Displays всё и вся, но цены ниже в разы. У них есть оффициальный магазин на али.
В принципе, большинство этих дисплеев имеют SPI (вплоть до 7,5 дюймовых), поэтому с подключением к ардуине проблем не должно возникнуть.
Мне одно время seeedstudio «навязывало» дисплеи из своего магазина после заказа у них плат.

2" с SPI и даташитом на сайте. Правда, цена — вдвое по сравнению с вышеприведёнными китайцами. И шлейф, кажись, другой — пошире

UPD: У них как раз от Pervasive Displays дисплеи оказались :)
Вообще подключить и работать с этими дисплеями не сложно. Сложности возникают, когда надо понять как его инициализировать. Я купил на али пару таких дисплеев, уже с модулями I2C, что называется «на сдачу». Так вот по стандартной схеме инициализации, которая приведена на большинстве ресурсов, он не заводился. Я перепробовал несколько вариантов, нашёл рабочий. Но некоторые команды всё равно явно работали не так как должны. В итоге нормально отображать символы, обновлять строку и тому подобное, я так и не научился. И самая проблема в том, что я даже не могу понять кто их производитель — никаких особых опознавательных знаков на самом дисплее не видно… Разве что снять I2C модуль, но хотелось бы как-то без этого обойтись. Кто-то может посоветовать как их распознавать?
попробуйте библиотеку u8g2 — она много разных дисплеев поддерживает.
Извините, забыл написать, я под PIC всё это дело пытаюсь поднять.

Ну и библиотеки вообще не сильно люблю для подобных вещей, хочется понимать как оно внутри работает.
Когда я баловался с атмегой то начал с бэйсика — там настолько все просто с дисплеями(и не только) что дети отдыхают.
Я использую OLED-дисплеи последние 4 года. Пишу исключительно на ассемблере под AVR (спасибо вам, Юрий Всеволодович, и вашим книгам), поэтому никакой мороки с допиливанием библиотек не испытываю: следуешь даташиту (который, кстати, китайцы присылают по первому запросу на почту sales@winstar.com.tw, или можно попросить у наших продавцов, например, терраэлектроники) и всё сразу начинает работать. А вообще, касательно даташитов: самые лучшие, которые мне пока удалось встретить — это от компании Newhavendisplay.Пробовал 4-хпроводный, 8-проводный интерфейсы, SPI, I2C, но, по возможности, стараюсь использовать 8-проводный, как самый быстрый.

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

Как раз недавно делал другу погодную станцию с огромным дисплеем WEH001602B, работающим в графическом режиме. Тёмные промежутки совершенно не мешают считыванию цифр, особенно издалека.

image

О долговечности могу сказать, что за 4 года я использовал штук 20 разных OLED-дисплеев (символьных, графических, в том числе RGB). Пока все работают без нареканий.
Большое спасибо за информацию. О Newhavendisplay я, конечно, слышал, но не пробовал, буду иметь в виду.

"И тем не менее, один из дисплеев 13-го года выпуска (желтого свечения) к настоящему моменту (зима 16-го) у меня резко потерял в яркости" — это всё фигня, вот если брать китайские мелкие экраны на SSD1306, там если экран работает 24/7, то его хватает на месяца 2-3, дальше начинают выгорать/сыпаться пиксели, выглядит это всё настолько убого…
Ну и общая проблема экранов — это довольно большое потребление, в общем не LCD.

это всё фигня, вот если брать китайские мелкие экраны на SSD1306, там если экран работает 24/7, то его хватает на месяца 2-3, дальше начинают выгорать/сыпаться пиксели, выглядит это всё настолько убого…

Большинство этих экранов имеют белые или синие пиксели. Они быстрее всего деградируют. Лучше брать жёлтые, красные или зелёные — прослужат на порядок дольше.

А ещё у китайских дисплеев есть 2 большие проблемы: это повышающий DC-DC преобразователь с КПД 60-70% (который я сразу стараюсь менять на более эффективный) и настройки яркости по-умолчанию, при которых через диоды прогоняют слишком высокий ток. Лучше сразу снижать яркость вдвое.

Ну и общая проблема экранов — это довольно большое потребление, в общем не LCD.

Если сравнивать с LCD без подсветки — то да.
Лучше брать жёлтые, красные или зелёные — прослужат на порядок дольше.

Спасибо за совет, попробую.


это повышающий DC-DC преобразователь

В моих версиях (что покупал) — это не проблема, всё что могли они отрезали, сэкономили, да и у SSD1306 есть внутренняя схема питания (на стекле).


Лучше сразу снижать яркость вдвое

Это "да", но есть ещё и программная возможность этим управлять, впрочем на этом Г это не спасает.


Вообще у китайцев есть и двухцветные матрицы, как в старом, добром КВН, когда наклеивали прозрачную, цветную пленку. Вот здесь порой кажется, что они делают тоже самое. :D
Ну и видимо выгодно получается, когда экраны приходят в негодность весьма быстро. Хотя для меня, ценность такого подхода ровна нулю, т.е. больше уже покупать не буду.

Отличные дисплеи, тонкие, яркие, контрастные.
Только имеют свойство выгорать. Был опыт обслуживания оборудования с такими OLED-дисплеями. Работали они по 12-14 часов в день и за первый год эксплуатации выгорели несколько десятков штук.
На выгоревших дисплеях в выключенном состоянии можно было различить текст, который выводился на дисплей 90% времени работы)
А нет желания повторить подвиг с обновленной библиотекой LiquidCrystal_I2C.h? (отличается от оригинальной более быстрым откликом, что на OLED дает преимущества).
Подружить ее с OLED Winstar мне удалось (хотя при включении иногда проскакивает мусор), а вот добавить кириллицу не получается.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.