Остановить сервопривод программно при использовании delay()

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем kt315where, 23 окт 2017.

  1. kt315where

    kt315where Гик

    Всем привет.

    переделал сервопривод в постоянное вращение 360градусов (перепаял резистор)

    подключил сонар hc sr04, использую библиотеку Ultrasonic, сам датчик нормально работает (проверял через простые скетчи и монитор порта)

    У меня по скетчу серва включается и вращается с кнопки веб-интерфейса (Wemos d1 r2)

    время работы двигателя сервы 6 секунд (delay 6000)

    можно ли как-то программно сделать, чтобы в течении этих 6 секунд, в случае приближения объекта к датчику серва останавливалась, например через отключение вывода (detach) ? перепробовал варианты с If и else, но никак не выходит, всё портит delay...в итоге мотор сначала отрабатывает время по delay и нету реакции на датчик. При этом если удалить delay(), то по приближению к объекту вывод отключается и серва останавливается. Но мне нужно, чтобы значение дистанции отключало мотор именно в течении работы мотора delay(6000). или ставить отдельное реле на питание сервы?
     
  2. akl

    akl Гуру