Здравствуйте. Столкнулся с проблемой управления двигателем через serial-порт (потом через bluetooth): 1) Собрал простую схему: Arduino UNO + MotorShield + Мотор с редуктором 2) Скетч: const int MotoPin = 3; void setup() { Serial.begin(9600); pinMode(MotoPin, OUTPUT); } byte speed; void loop() { if (Serial.available()) { speed = Serial.parseInt(); analogWrite(MotoPin, brightness); } } 3) Через Serial-порт отправляю значение 0-255 на порт ~3 (задаю скорость) Все работе как нужно. Но есть одна проблема: после отправки числа 0-255 в Serial-порт, скорость изменяется не сразу, а через 1-2 секунды. Почему появляется эта задержка и можно ли ее убрать?
Возможно, дело в том, что буфер последовательного порта не сразу отправляется, и нужно делать принудительный flush сразу после записи данных в порт (способ зависит от языка программирования).
Я не стану писать тут, так как про это я написал свое время в своей статье. Почитайте вот тут, в низу страницы. Так же там есть описание функции которая устанавливает задержку. По умолчанию она равна 1000 миллисекундам.