Купил недавно http://amperka.ru/product/troyka-quad-display, но светит он очень ярко и хотелось бы иметь возможность уменьшить его яркость. Я пробовал отредактировать https://github.com/amperka/QuadDisplay/blob/master/QuadDisplay.cpp, так чтобы вместо digitalWrite(pin, HIGH) использовалось analogWrite(pin, 100). Но, к сожалению, при использовании analogWrite индикатор тупо светит всеми светодиодами одновременно и ничего осмысленного отображать не хочет. Есть ли какой-то способ обойти это и отрегулировать яркость или это жесткое хардварное ограничение? P.S. Думал уменьшить напряжение для дисплея, но от этого теряется удобство и компактность подключения к Troyka Slot Shield.
Софтом не решить. Перепаять диодные сборки было бы проще всего, но нужен определенный навык и оборудование.
Там же обычные сдвиговые регистры стоят, если не ошибаюсь. Можно программно яркость регулировать увеличивая интервал между включением сегментов. Правда придется свою функцию вывода на них писать, библиотека тут не поможет. Причем через порты, а не при помощи digitalWrite, так как будет тормозить. Я вот таким образом яркость разрядов менял поочередно, чтобы выделять их:
Посмотрел в библиотеку - там заполнение индикатора не больше 2мс. Можно 50 герц себе позволить, в принципе.
Я пока не соображу что за микросхемы там стоят. Если HC595, то как в них пихают данные по одной ноге, где защелка и синхроимпульсы?
А, понял. Посмотрел схему. Там один канал разбивается на три при помощи RC-цепей. Синхроимпульс проскакивает напрямую, дата с задержкой, латч с еще большей задержкой. Хитро, есть свои плюсы - экономия двух ног, но и минусы, скорость передачи уже ограничена. Потому и частота кадров ограничена. Ну тут ой, софтом сложнее поправить, будет трястись и дрожать изображение скорее всего. Надо брать обычные индикаторы на честной трехпроводной передаче данных. )
С некоторых пор я делаю индикаторы на отдельном "драйвере" в виде Attiny2313, в который посылаю команды от главного МК по UART. Много плюсов, самый главный из которых разгрузка главного от постоянного вывода на индикатор. Еще можно повесить пищалку, например, и кидать ей команду пищать столько то миллисекунд. Да много что можно перекинуть на Тиньку, благо она довольно шустрая и стоит рубль за ведро. )
В библиотеке есть функция fastDigitalWrite, которая напрямую через порты работает, но я пока не понимаю что именно в ней нужно изменить.. Или попробовать увеличивать интервалы в sendByte и latch? А можете для примера пару ссылок дать на такие индикаторы?
Вариантов немного и все некрасивые: 1. Уменьшить напряжение питания 2. Наклеить темную пленку или оргстекло 3. Перепаять резистор выбора ОА/ОК с 0 Ом на что-то побольше. Яркость уменьшится, но при этом еще начнет зависеть от отображаемой цифры 4. Перепаять резисторные сборки на большее сопротивление. Из-за их размера новичку практически нереально сделать
Спасибо всем за ответы. Перепаивать такие мелкие детали я пока не осилю, поэтому придётся другой индикатор прикупить.
Второй вариант предыдушего оратора может быть простым выходом. Я вот делал прибор в корпусе с окошком из темного оргстекла. Индикатор просвечивал не так ярко. Можно просто кусок тонировочной пленки налепить как пример. Он не греется, ничего не покорежит и не спалит.