Защо ти е да четеш едно и също нещо на два аналогови входа?
На всеки цикъл от 10 четения получаваш средно аритметично и според него командваш един от два изходни пина. Ако е под нужното - единия, ако е над - другия. Ако е в рамките на толеранса, не правиш нищо, само нулираш пиновете (по-бързо е, отколкото да ги проверяваш и нулираш поотделно) и рестартираш четенето.
Не знам макро езика на Ардуино дали кара компилатора му да вкарва изчаквания, защото Атмегата си има минимално време за едно аналогово четене и ако то не е завършило, данните ще са хаотични. Най-добре се прави, като се следи флага за завършен цикъл на АЦП, тогава се прочита и се нулира флага. Това в режим на свободно работещо АЦП, т.е. то работи и постоянно прави преобразуване. Може да му се зададе и стартиране на цикъл само през програмата, пак през контролен регистър, да се изчака и да се запише стойността.
На всеки цикъл от 10 четения получаваш средно аритметично и според него командваш един от два изходни пина. Ако е под нужното - единия, ако е над - другия. Ако е в рамките на толеранса, не правиш нищо, само нулираш пиновете (по-бързо е, отколкото да ги проверяваш и нулираш поотделно) и рестартираш четенето.
Не знам макро езика на Ардуино дали кара компилатора му да вкарва изчаквания, защото Атмегата си има минимално време за едно аналогово четене и ако то не е завършило, данните ще са хаотични. Най-добре се прави, като се следи флага за завършен цикъл на АЦП, тогава се прочита и се нулира флага. Това в режим на свободно работещо АЦП, т.е. то работи и постоянно прави преобразуване. Може да му се зададе и стартиране на цикъл само през програмата, пак през контролен регистър, да се изчака и да се запише стойността.