до этого была команда включить электродвигатель и в ходе его работы он сделает (lin3) == LOW и (lin2) == HIGH , но для этого нужно не определенное время (всегда разное) и если считывание скейтча пойдет по второму кругу, а этот оператор if будет не выполнен будет печально =) if (digitalRead(lin3) == LOW && digitalRead(lin2) == HIGH) { digitalWrite(kol_l, LOW); digitalWrite(kol_r, LOW); Буду рад вашей помощи =)
Что-то это мне напоминает: " Помогите прилепить запалатку на борт моей кривосклепаной яхты, а то вода проникает туда, где ее не должно быть, а там где она должна быть, ее нет.Воды разумеется" В структуре правильно собраной программы такого вопроса в принципе не должно быть. А вот если лепть неизвестно из чего, то это будет бег по минам. ПС: Что за дибилизм писать LOW и HIGH. Пишите 0 и 1. Короче и проще. ПС Это лучше заменить на это if (digitalRead(lin3) == LOW && digitalRead(lin2) == HIGH) if (! digitalRead(lin3) && digitalRead(lin2))
Кстати да, правильное ТЗ - половина победы. А вообще, для случая "пока что то там не выполнится дальше не едем" есть оператор while().