Помощь новичку с сервоприводом

maksimignatev
maksimignatev аватар
Offline
Зарегистрирован: 18.01.2019

Необходимо, чтобы сервопривод ходил с угла в 90 до 180, затем со 180 возвращался на 90 примерно так https://cloud.mail.ru/public/Gjfn/EHESoYoyY Пишу код https://cloud.mail.ru/public/4UA5/DUG822ZUj получается движения совершенно иные https://cloud.mail.ru/public/N22i/tc4633rm6 Помогите новичку разобраться с сервоприводом, что я делаю не так?

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый ТС! Во-первых: укажите, а какое оборудование Вы используете. Во-вторых: Изучите как вставлять программы и файлы в сообщения. Не всем интересно лазить по внешним ссылкам. И в третих: Если у Вас двигатель не  шаговый, то получить внятные углы вряд ли получится без концевых контактов.

maksimignatev
maksimignatev аватар
Offline
Зарегистрирован: 18.01.2019
#include <Servo.h>
Servo servo;

void setup() {
  servo.attach(10);

}

void loop() {
servo.writeMicroseconds(550);
delay(1000);

servo.writeMicroseconds(1400);
delay(1000);

}

Arduino Uno, Micro Servo 9g SG90

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Ага, понятно. А почему вы управляете по времени, а не по углам? Почитайте тут, не лучшее, но первое что нашлось. И что, по вашему мнению должны делать строки 10 и 13?

kalapanga
Offline
Зарегистрирован: 23.10.2016

А серва переделанная или исходно такая (непрерывного вращения, по кругу крутится) ?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
  void write(int value);             // if value is < 200 its treated as an angle, otherwise as pulse width in microseconds 
  void writeMicroseconds(int value); // Write pulse width in microseconds 

Только учтите что до углов 0 и 180 она может не довернуться и упереться.

Поэтому если вам нужно "именно изменение" на 90 делайте углы поворота  45 и 135,
а потом перестановкой качалки выставьте что хотите.

maksimignatev
maksimignatev аватар
Offline
Зарегистрирован: 18.01.2019

Проблема решена дело действительно в приводе.