Нужно написать скетч для небольшого проекта для визуального представления. фото макета http://savepic.ru/14459192.htm они не подключены пока, если есть скайп буду рад пообщаться. Макет всего 4 "помещения". В 1 помещении датчик DHT(температура и влажность) и дисплей, в 2 помещении свет от фоторезистора включается. Еще есть RGB-светодиод, его цвет нужно регулировать с помошью потенциометра. 3 комната, датчик протечки воды, зумер чтобы пищал когда вода попадет и моргали 3 красных светодиода.
Чтырехразрядный семисегментник зачем? Матрица 8х8 зачем? Еще пара каких то модулей непонятных. Где потенциометр и как вы собираетесь одним регулировать цвет? Нужно 3 на R, G и B. Напишите в личку ТЗ подробнее, мало понятно пока что.
Маленькая идея по rgb: одного резистора хватит. Левое положение светит только красный, среднее - зеленый, правое - синий. При перемещении плавное изменение цветов к этому состоянию.
Если задачу правильно сформулировать, то ее решение очевидно. Три координаты, 10^3 значений ацп, значти нужно сделать куб (в пр-ве RGB) 10х10х10 - это 1000 точек, и соответсвенно сделать соответсвие 1000 точек линии (0-1023) <>1000 точек цветовой модели (куб). Годик назад этот вопрос возникал и я даже код приводил, у человека все заработало как надо.
Вот это отображение и есть самое интересное. В кубе из одной точки в другую можно попасть бесконечным количеством путей, с учетом дискретности их число конечно, но много больше одного. Кроме того, цвет должен меняться плавно, не должен повторяться (не должен выбираться из окрестности уже использованных точек), как можно больший объем куба (с учетом окрестности выбранных точек) должен быть отображен на линию.
Хм, интересно... из этих условий можно практически сразу записать формальный критерий оптимизации и попробовать найти наиболее оптимальные отображения.
Графический редактор код цвета показывает. Условия указывают на то, что двигаться надо между дальними вершинами цветового куба RGB по граням, коих на пути будет три. Это самый длинный путь.
{0,0,0}, потом {0,0,1} и так перебирая точки с модулем 1, потом с модулем квадрат 2, потом с модуль квадрат 3.. и т.д. до {10,10,10}. Могут быть и другие пути, конечно, перебора всех точек.