Я использую микроконтроллер Arduino-Uno с сервоуправлением Adafruit. Чтобы переместить довольно быстрый цифровой сервомотор 0,07 с / 60 ° под желаемым углом, например, из приложения C #:
myport.WriteLine(val.ToString());
Я использую библиотеку PWM а>:
pwm.setPWM(1, 0, Serial.parseInt());
Что успешно перемещает двигатель на назначенный угол, но я пытаюсь выяснить, как перемещать серводвигатель от одного угла к другому с полным достижением конечных точек из загруженного кода.
Итак, если максимальный и минимальный диапазон составляет:
#define SERVOMIN 160
#define SERVOMAX 500
А серводвигатель работает от 210 до 450, вот моя попытка:
pwm.setPWM(1, 0, 210);
delay(12);
pwm.setPWM(1, 0, 450);
delay(12);
pwm.setPWM(1, 0, 210);
Таким образом, двигатель не завершает движение или даже не совершает однонаправленное движение без возврата. Каким должен быть правильный способ сделать такое перемещение в загруженном коде.
Любой совет, руководство или пример были бы очень полезны