@2908969,
if (workMode) { // авто
LEDtick();
flowRoutnie(1000); // крутим отработку кнопок и поиск рюмок
} else { // ручной
if (btn.clicked()) { // клик!
systemON = true; // система активирована
timeoutReset(); // таймаут сброшен
}
if (systemON)
flowRoutnie(0); // если активны - ищем рюмки и всё такое
}
}
}
// поиск и заливка
void flowRoutnie(int delayMove) {
if (systemState == SEARCH) { // если поиск рюмки
bool noGlass = true;
for (byte i = 0; i < NUM_SHOTS; i++) {
if (shotStates
== EMPTY && i != curPumping) { // поиск
TIMEOUTtimer.stop();
noGlass = false; // флаг что нашли хоть одну рюмку
curPumping = i; // запоминаем выбор
systemState = MOVING; // режим - движение
shotStates[curPumping] = IN_PROCESS; // стакан в режиме заполнения
delay(delayMove);
servoON(); // вкл питание серво
servo.attach();
servo.setTargetDeg(shotPos[curPumping]); // задаём цель
DEBUG("find glass=");
DEBUGln(curPumping);
break;
}
}
красным то что поменялось или добавилось
@renby, у меня много чего другого в файле, ещё больше запутаетесь, сверху кусок скопируйте в свой файл
ЗЫ посмотрел и добавил ещё LEDtick();, потому как после установки рюмки и задержки на движение светодиод под рюмкой не загорается пока не пройдет задержка, так как LEDtick(); в loop вызывается после flowTick(), код сверху поправил