
Пытаюсь написать код, чтобы при приближении к УЗ-датчику меньше чем на 10 см начинал работать мотор, и работал до тех пор, пока расстояние до объекта не станет больше 10 см.
Буду очень благодарен людям, которые приведут рабочий пример кода или подскажут что можно заменить.

Вот мой код, мне кажется проблема в delay после указания мотору к началу движения, т.к. после начала запуска мотора его время работы равно времени этой задержки.
- Код: Выделить всё
#include <AFMotor.h>
#include "Ultrasonic.h"
Ultrasonic ultrasonic(21, 20);
AF_DCMotor motor1(4);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float dist_cm = ultrasonic.Ranging(CM);
Serial.println(dist_cm);
if (dist_cm < 10)
{
motor1.run(FORWARD);
motor1.setSpeed(255);
delay(1000);
}
else
{
motor1.run(RELEASE);
delay(100);
}
}