не могли бы вы набросать схему, хоть на клочке бумаги.Ну вот вам схема, и именно на клочке бумаги. Разумеется, это лишь один из множества возможных вариантов.
В течение примерно 5 секунд свечение должно с 20% яркости подниматься до 100% и затем опускаться обратно.Да ещё и пауза желательна до следующего подъёма яркости, и тоже регулируемая? По крайней мере, она напрашивается.
что если ставить один аккум на 3.7В и преобразовывать в 5В и 12В?Да, с точки зрения возни с обустройством аккумулятора такой подход сильно упрощает дело. Но во-первых, от аккума тогда придётся брать больший ток, что потребует увеличивать его ёмкость. В конечном итоге это сведётся к соединению нескольких банок 18650 параллельно и зарядке их через тот же простой и удобный TP4056, но время зарядки увеличится пропорционально увеличенной ёмкости (ведь ток заряда останется всё тот же 1 ампер). Во-вторых, всё остальное (кроме обустройства аккумулятора) усложнится - потребуется два преобразователя dc-dc. Зато такое разделение на взаимно независимые блоки сильно упростит наладку и поиск неисправностей (а вы можете не сомневаться, неисправностей будет много).
ДБ это единицы измерения громкости звука.Неверно. В действительности это единица сравнения, или измерения отношений любых двух величин. Можно измерять то же самое в разах, но в дб инженерам оказалось удобнее - разы приходится делить-умножать, а дб (единицы логарифмические) можно складывать-вычитать, а это сильно проще.
Каждая резисторная цепочка может иметь сопротивление, изменяемое в моём случае в 11 раз (от 10 до 110 кОм), хотя никто не запрещает другое соотношение и другие номиналы резисторов - работать всё равно будет точно так же. Разумеется, измерение - не в омах (хотя усложнением программы можно получить калиброванное значение в омах), а просто к значению сопротивления привязывается некоторое число, изменяемое при вращении переменного резистора. Каждый цикл измерения сопротивления состоит из следующих шагов:
1. Разряжаем единственный конденсатор в исходное (нулевое) состояние. Для этого переводим единственный вход в состояние выхода и выставляем на нём логический 0. После этого возвращаем этому выводу состояние входа. Измерительные выходы должны быть в Z-состоянии, т.е. отключены, чтобы ничему не мешать.
2. Включаем тот выход, резистор на котором собираемся измерить, и выдаём на него лог. 1. Конденсатор начинает заряжаться через этот резистор тем быстрее, чем меньше его сопротивление. Одновременно запускаем счётчик, начинаем опрос состояния входа (ожидая его перехода из 0 в 1) в коротком цикле, и прибавляем на каждую такую проверку по единичке в счётчик. Число в счётчике растёт, растёт и напряжение на конденсаторе, ожидая превышения порога, который в КМОП-микросхемах обычно составляет половину напряжения питания (но это не факт, бывает и иначе).
3. Как только порог будет превышен (т.е. напряжение на конденсаторе будет интерпретировано микроконтроллером как лог. 1), по этому сигналу опрос входа прекращается, число в счётчике, являющееся эквивалентом сопротивления, считывается и отправляется в другие части программы для использования по назначению. Счётчик обнуляется.
4. Входы/выходы приводятся в исходное состояние, и начинается измерение следующей резисторной ветви, а потом и третьей.
По окончании измерений управление передаётся другим частям программы, ведающим свечением светодиодов. Затем цикл повторяется.