Pull to refresh

Comments 64

SPI диоды в помощь. Дорогие, конечно, но зато, rgb, и без дополнительного контроллера.
Блин, случайно заминусил :-(((( извините
Не переживайте, никто же не умер)
Можно по spi и обычные светодиоды зажигать. Один сдвиговый регистр 74HC595 до 8 штук позволяет на себя повесить, а так же имеет выход для последовательного соединения сдвиговиков, т.е. можно ленту какого угодно размера набрать просто последовательно соединяя выход предыдущего регистра со входом следующего. Наиболее удобное решение, как по мне=)
Сдвиговые тоже денег стоят. Почти как микроконтроллер. И яркостью сложно управлять через сдвиговый регистр — частота уже будет слишком большая. Потом яркостью надо непрерывно управлять. Яркость нужна чтобы снизить энергопотребление.
Никто не мешает управлять яркостью, подключив PWM выход ко входам /OE регистров. При этом они уходят в Z-состояние и, естественно, ток падает до нуля.
Лично у меня есть где-то проект именно с такой регулировкой яркости свечения диодов за регистрами.
Тогда вы будете яркость всего дисплея задавать. SPI диоды же позволят для каждого это сделать.
пусть частота диммирования будет 1кГц. 20 диодов. итого 20кГц. слишком высокая? если BAM применить — можно еще ниже сделать.
На каждый уровень нужен период загрузки. 10 уровней с условиями, описанными выше — 200кГц. При чем, это именно частота линии данных. При софтварной реализации частота операций должна быть удвоенной.
какая еще софтовая реализация для spi? 10 уровней при 20кгц на spi будет 10мс период с 1мс дисретностью. что собственно 100Гц и 1000Гц описанных выше. больше в данном девайсе думаю не нужно. если настаиваете на 200кГц, то тоже частота далеко не высокая.
на досуге посмотрите на RGB LED панели с hub75 интерфесом (которые в рекламных «телевизорах» используюется). там та же реализация на сдвиговых регистрах.
Самая обычная. Если аппаратных портов мало, делают софтварно, в чем проблема?.
10 уровней при 20кгц на spi будет 10мс период с 1мс дисретностью. что собственно 100Гц
Ах вот вы о чем. Но 100Гц это ужасно — смотреть невозможно на такое. Даже китайцы в интерьерку выше частоту ставят в разы (и все ранво плохо выглядит).
если настаиваете на 200кГц, то тоже частота далеко не высокая.
Так и 10 уровней не дофига. Плавное угасание уже не сделаешь.
на досуге посмотрите на RGB LED панели с hub75 интерфесом
Гугл говорит, что там отдельные каналы для яркости на большие пачки диодов (вообще-то это динамическая индикация, но можно и яркостью групп управлять). А вовсе не shiftPWM (хоть ничто и не мешает его туда впихнуть). Да даже вон на ГТ есть статья.
китайцы в интерьерку выше частоту ставят в разы

Так и 10 уровней не дофига.

таки у нас не интерьерка, а панель индикации
Плавное угасание уже не сделаешь.

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

гугл говорит что там по три бита на пиксел (вкл/выкл для каждой компоненты) и этими тремя битами достигается полноцвет (насколько он возможен учитываю кривость примененных диодов). а то про что вы написали (вывод OE) для регулирования яркости обычно не применяется
В любом случае сомнительное решение при том, что микроконтроллер для решаемых в посте задач стоит 25-50 центов, а итоговый функционал и гибкость выходят выше, как и модульность (центральному контроллеру не надо знать, как именно реализовано управление диодами).
Одназначно на МК лучше и проще. А по яркости… надо больше запас. Человеческий глаз изменение яркости в 5 раз не замечает. Поэтому нужно 100-200 градаций. А сдвиговые регистры больше подходят когда нужна полная яркость. Просто тут смысл, для велокомпьютера, за счет яркости снизить энергопотребление. Шкалу итак хорошо видно, ну и вообще яркость вещь полезная. А потом если будет хотя бы 2 микросхемы сдвиговых регистров — то уже плата громоздкая будет и разводить сложнее.
Человеческий глаз изменение яркости в 5 раз не замечает.
Даже в два замечает. Но в своих девайсах я использую деление на 4 для каждого шага убавления (это тупо удобно за счет оптимизации деления битовым сдвигом), если оно дискретное. Таким образом, при трех уровнях яркости нужна разрядность ШИМ не менее 2^6.
да я то что, я всегда за контроллер, когда он заменяет несколько корпусов. я как всегда на конкретный вопрос отвечаю.
Это сложно, а ShiftPWM безумно требователен к процессорному времени и частоте. А без ШИМ сразу зубудьте об управлении яркостью. Дизайн платы тоже усложняется нехило. Кроме того, у сдвиговых регистров обычно не чистый SPI, и требуемое число управляющих линий будет 3-4 вместо 2, смотря, какие брать, и какой алгоритм управления. Опять же, больше действий ложится на ядро (чистый-то spi мы аппаратно гнать можем).
Опять же, больше действий ложится на ядро

Да какие там действия, выплюнуть последовательность во время простоя?
Зависит от основных задачь же. Т.к. я их не знаю, ответ от них абстрагирован.
595-е для светодиодов использовать нерационально, куда лучше использовать специальные регистры с токовым выходом под светодиоды — не нужны будут ограничивающие резисторы на каждый светодиод — всё сделают встроенные драйверы с всего одним внешним токозадающим резистором. Да и такие драйверы идут уже 16 битные, экономия на корпусах.
В преимущества регистров можно отнести масштабируемость — добавил регистр и у тебя уже строка 32 бита вместо 16.
Это не считая специализированных решений типа контроллера дисплея 16*16 или 24*8(RGB 8x8) светодиодных матриц с поддержкой 4 уровней градации яркости КАЖДОГО светодиода в отдельности и собственной памятью.
Резисторы ставят только трУсы.) Учитесь у братьев.)
Ну вопрос в цене тоже. Индикатор должен быть недорогой. Ну а по сути, тут бери тоже любые припаивай.
Ну рублей 200-300 + текстолит для обсуждаемого решения. При этом он будет действительно низкопрофильным (есть spi диоды с толщиной меньше, чем у sop/tssop/lqfp корпусов).
Прикольно, примерно так и представлял.
Не пойму, зачем там сложности в виде 1-Wire? Почему не UART? Да и необходимость наличия второго МК сомнительна. Можно же тот же MAX7219 поставить и управлять по SPI.
Ну почему сложности, наоборот, 1-wire простой протокол. Uart — надо для управления терять полезный порт или делать soft uart. Во вторых стоимость драйвера — как стоимость STM8. В третьих SPI — 3 провода, а тут один. В четвертых к max столько не подключишь светодиодов — нужны выводы три стейт. В общем схема с МК проще и универсальнее.
В SPI 2 провода, если вас не интересует двухсторонняя передача. UART в этом случае укладывается в один, но SPI не чувствителен к таймингам.
С точки зрения реализации в МК, 1-Wire сложный протокол. и сложный с точки зрения бесполезного расхода процессорных ресурсов на обеспечение таймингов. Плюс к этому он медленный. И что значит «терять полезный порт»? Для 1-Wire выводы не нужны? spi три вывода, зато никаких заморочек с таймингами. Ну и даташит вы видели на max? К ней можно подключить 64 светодиода. А еще есть rgb светодиоды с чипом ws2812, управляются по одному проводу, включаются последовательно. Ну и самых чипы можно купить. Если не надо rgb, то каждый чип может управлять тремя отдельными диодами.
UFO just landed and posted this here
SPI UART это все полезная периферия. Ее нельзя вывести на любую ножку. В этом и проблема. А тайминги не теряются в этом время прерывания работают, так что проблемы нет. Там одно узкое место — когда единица передается — 10мкс, и то прерывания могут все обработаться. И вообще никто же не просит весь 1 wire реализовывать. А вообще посмотрите код к статье, там всего 10 строк на прием и 10 на передачу. Куда уж проще — при том, что любая нога.
Прочитав название, подумал, что речь пойдёт о таком
image
Интересовался темой, нет в природе тонких семисегментных индикаторов, хотя я не вижу сложности промышленно изготовить семисегментные индикаторы толщиной 0,5...1,5 мм.
Ну так можно и такой… Если паять не тяжело.Это общая концепция. Тоже думал о таких. Не хватает тонких цифр. Даже делал прорисовку — достаточно по высоте боковые задводить и будет цифры понятно все. То есть всего 11 светодиодов на цифру — не так много. Вообще проблемы же нет сделать любую форму. В статье написано — до 96 светодиодов. Вопрос плату развести и все.
Вобще-то есть(вспомнить, например АЛС314, АЛС320), только совсем тонкими сделать мешает необходимость эффективного рассеивателя, иначе не сегменты будут а точки от свеодиодов. Прям как на тёплых ламповых советских АЛСxxx.
А делать длинные светоизлучающие кристаллы как на старых добрых АЛС320 почему-то не хотят или не могут… квадратные точечки микронных размеров видимо дешевле обходятся.

Наверное нет потому, что сейчас не проблема сделать любой индикатор в промышленном качестве без какой либо подготовки производства. Для этого понадобится либо 3D принтер, либо CNC фрезеровщик с куском белого непрозрачного пластика и белая бумага. Я сейчас часто вижу такое решение в устройствах.
Делается так — на своей плате в нужном порядке разводите SMD светодиоды с широким углом обзора и по несколько штук на сегмент, если надо. Далее либо на 3D принтере либо на фрезеровочном станке делаете шаблон, как на рисунке выше, где в местах, где нужны сегменты вырезаете дырки. Толщина пластика может быть любая — от пары миллиметров. Главное, чтобы пластик был непрозрачным, так как его задача — изолировать свечение светодиодов разных сегментов друг от друга. Далее заклеиваете все сверху белой бумагой и ставите на свою плату. Сверху закрываете стеклом по вкусу. Эффект будет отличный. Мало того, вы можете легко вырезать любые символы, и зажигать их светодиодами разных цветов, как на приборке автомобиля.

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

На картинке выше единственно верное решение этой проблемы- несколько светодиодов на сегмент. Хотя «длинные светоизлучающие кристаллы», о которых вы упоминали, решили бы проблему полностью. Вот раскопал индикатор с советского калькулятора, толщина при снятом защитном стекле менее 1,8 мм (плата+светодиоды), с тоньшей платой можно уменьшить вдвое. Жаль, что подобное сейчас не купить.
image
Я уже упоминал такие индикаторы. Видимо проблема выращивать длинные кристаллы, или слишком дорого.
из таких АЛС314 — толщина 2.4мм
Если надо тонкие, 4мм — KCSA56-104, или вот ещё — KCSA56-105-B-26 толщина 2.4мм!
для филаментных ламп так недорого, а для индикаторов дорого. чудеса…
У филаментных тоже маленькие кристаллы используют, просто люминофора там больше и кристаллы менее заметны на фоне общего излучения.
да, не подумал что люминофор в нашем случае не есть гуд

Вопрос с недостаточной яркостью решается установкой сверхярких светодидов, коих сегодня полно. Мало кто знает, что с динамической индикацией также можно спокойно увеличивать ток светодиода в разы выше постоянного допустимого, так как светодиод работает в импульсном режиме. Это очень эффективно компенсирует потерю яркости.
Ну и я не в курсе супертонких индикаторов, наверное, там будут нюансы, но видел вполне рабочий индикатор на данном принципе с примерно 5мм толщиной и там не было никакого компаунда. Также я недавно протестировал SMD сверхяркие светодиоды с углом рассеивания в 160 градусов — это песня.

Конечно, только с повышением яркости будет расти и потребление. Импульсный ток вы увеличиваете, но средний не растёт иначе кирдык светодиоду, количественно излучение остаётся таким же как на постоянном токе, и только биологический хак с глазами делает видимую яркость несколько больше, но не кардинально. В то время как нормальные сверхяркие индикаторы с током примерно 5мА и скважностью 0.5 дают яркий свет освещающий пол комнаты в темноте… И боюсь, с бумажкой в качестве светорассеивателя контраст сильно упадёт, как ни задирай яркость.
Вобщем, по подводным камням люди уже ходили — не получается так делать светодиодные индикаторы. А по нескольку светодиодов на сегмент это конечно выход, но весьма не бюджетный. И вопрос как включать такие диоды — последовательное соединение потребует увеличения рабочего напряжения на сегмент(такое и делают в больших индикаторах)… а параллельное — выравнивающих резисторов, иначе индикатор на пару месяцев. Но опять же, для сооовсем больших индикаторов, например с высотой цифры в 10 сантиметров эффективней использовать светящуюся бумагу.
lingvo Сильно повышать яркость нельзя, иначе цифра или знак превращается в световое пятно.
Alexeyslav По несколько светодиодов на сегмент только последовательно, на бюджет не повлияет, получится 21 светодиод на цифру, стоит 12 американских копеек за цифру (посчитал по реальным ценам, недавно брал смд светодиоды здесь, не в Китае). Ну конечно для большого количества знаков такой огород городить не сильно интересно.
на бюджет повлияет цена монтажа 21 диода.
увеличиваем яркость, снова обретаем проблемы со светящимися точками вместо сегментов, увеличиваем плотность рассеивателя, снова теряем яркость. далее по кругу.
доводы лишены смысла, так как в промышленных масштабах подобный самосборный индикатор будет стоить как золотой, а спрос определяется далеко не домашними мастерами.
К сожалению да, в произв. масштабах проще на заказ сделать LCD индикатор.
да даже LED индикатор часто по потребностям заказывают. глянул на микроволновку и стиралку от компании s...g — везде спецсимволы.
Max7219 или Max7221 были бы всё же проще. Три линии и всё (clk, in, latch). 64 светодиода на каждую Max. Управляемая яркость, декодирования BCD или напрямую, полностью автономное динамическое обновление, а значит 0% нагрузки на процессор (энергоэффективность). И железобетонная предсказуемость. В общем цена в 2 доп. ноги себя окупает сторицей. В Китае 29 амеро центов штука. Не думаю что STM8 дешевле. Но если задача стояла чисто DIY то вполне себе неожиданное решение у вас вышло.
Ну все таки оригинальный MAX 7221 стоит больше 200руб. В китае продается подделка, работающая конечно. Ну и потребление тока 150мкА в спящем режиме — много. А У МК всего 5мкА, и можно другой подробрать еще меньше. Ну и потом МК сам запрограммировал как угодно, можно еще больше логики добавить если надо.
Например, если это шкала можно запоминать макс уровень и его подсвечивать какое то время.
Можно гейтом выключать питание схемы.
еще ноги… к спи добавляются.
Зависит от того, сколько у вас вообще потребляющей переферии и какой. Иногда удобно все заглушить разом. А еще зависит от того, какое у вас питание — есть же управляемые стабилизаторы, и тогда все уже есть из коробки для всей схемы включая МК. В общем, от задач зависит.
Ну конкретно здесь все известно. Ссылка на статью про велокомпьютер есть. Он все время в спящем режиме — аккумулятор 100мА. Потребление 5мкА. Если будет 150 — то мало спать будет. Придется ноги добавлять на отключение питания. В общем с MAX не лучше выйдет. Конкретно в этом случае. А так конечно драйвер хороший. Но, вот покупать конечно надо оригинальный, а цена в этом случае совсем не Айс. А STM8, самый оригинальный.
А почему всего 20? 10 выводов могут управлять 90-ми светодиодами. Без ничего!)
И потом в болото застрять отлаживая вывод на эти самые 90 светодиодов. Компромисс нужен между простотой железа и простотой программы им оперирующей. Так-то вообще десятками светодиодов можно управлять вообще одной ножкой, используя явление резонанса…
Кто как хочет так и… мозги тренирует! Не?)
Просто я знаю чем это чревато. Иногда лучше немного усложнить железо чтобы потом не ломать долго мозг. Чем проще программа — тем быстрее её написать и отладить. А железо… есть не просит.
А откуда 20?? в статье про 90 и более. Типа не дочитал?? И потом надо каждым в отдельности… без ничего… это интересно.
Да ладно! Кто автор?))
20 светодиодов на 10 выводах — легко!
А дальше прочитать слабо? Еще больше светодиодов… Видимо много буков.
Ну да.)) Читаем только заголовки. Ничего нового.)
Only those users with full accounts are able to leave comments. Log in, please.

Articles