Камрады! Посоветуйте, как можно реализовать одновременное измерение сопротивления 4 резисторов, смысл в чем, когда в 4 измеряемых точках выставляется правильное сопротивление (например 10, 20, 30, и 40 ком) срабатывает реле и запускается вентилятор.
Протянуть 4 проводка к 4 пинам с АЦП и постоянно их опрашивать. При совпадении параметров запускать вентилятор. На Уно и Про Мини таких пинов 6 штук.
Вам еще придется фильтровать данные АЦП (или среднее брать), а то возможно из-за шумов ничего не получится. Примерно так примерно будет выглядеть Код (C++): int x0=0; int x1=0; int x2=0; int x3=0; void setup(){ //тут настраиваем пин управления реле } void loop(){ x0=getAnalog(0); x1=getAnalog(1); x2=getAnalog(2); x3=getAnalog(3); if (x0==10 && x1==20 && x2=30 && x3==40){//если(истина) //включаем реле } else//иначе { //выключаем реле } } //Функция получения срднего значения из 5 замеров int getAnalog(byte ch){//в функию передаем канал АЦП int result=0; for (int i=0; i < 5; i++){ result+=analogRead(ch);//считываем АЦП } return result/5;//возвращаем среднее из 5 замеров }
Не жгу( я попробовал этот код скомпилить в arduinoide выдает ошибку, ну не получается самому разобраться( Спойлер: error sketch_sep08a:16: error: lvalue required as left operand of assignment if (x0==10 && x1==20 && x2=30 && x3==40){//если(истина) exit status 1 lvalue required as left operand of assignment
Вот исправленный код и конец LOOP`а обозначен чтобы видеть где основной цикл заканчиваеться и начинаются всякие доп функции. Код (C++): int x0=0; int x1=0; int x2=0; int x3=0; void setup(){ //тут настраиваем пин управления реле } void loop(){ x0=getAnalog(0); x1=getAnalog(1); x2=getAnalog(2); x3=getAnalog(3); if (x0==10 && x1==20 && x2==30 && x3==40){//если(истина) //включаем реле } else//иначе { //выключаем реле } }//END LOOP //Функция получения срднего значения из 5 замеров int getAnalog(byte ch){//в функию передаем канал АЦП int result=0; for (int i=0; i < 5; i++){ result+=analogRead(ch);//считываем АЦП } return result/5;//возвращаем среднее из 5 замеров }