Проблема с поворотом сервопривода

Pr3D

✩✩✩✩✩✩✩
12 Апр 2023
9
0
Оформи код соответствующим тэгом
Добрый день!
После заливки скетча для серво привода на плату ПроМини 3,3 "ATMEL mega 328P AU1612", сервопривод делает поворот только в одну сторону примерно на 80 градусов.
Серво привод на 180 градусов Tower Pro Micro Servo 9g SG90 (синий). До него был 360 -это крутился без остановки.

Заливал прошивку через Преобразователь USB- UART PL2303HX.

C++:
#include <Servo.h>



Servo servo1;



void setup()

{



servo1.attach(5);



}



void loop()

{



servo1.writeMicroseconds(550);

delay(1500);

servo1.writeMicroseconds(2350);

delay(1500);

}
 
Изменено:

Alex_HF

★✩✩✩✩✩✩
11 Мар 2023
40
16
можно попробовать так
C++:
void loop()
{
    servo1.write(180);
    delay(1500);
    servo1.write(0);
    delay(1500);
}
 

Alex_HF

★✩✩✩✩✩✩
11 Мар 2023
40
16
1. Проверьте еще раз подключение (возможно перепутан +питания и сигнал управления идущие на серву)
2. Попробуйте изменить пин порта с 5 на 9
3. Я х.з. )) - попробуйте другую серву :)
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,703
474
@Pr3D, можно порекомендовать пример из библиотеки:
C++:
#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(5);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos ++) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos --) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}
 
Изменено:
  • Лойс +1
Реакции: Pr3D

Pr3D

✩✩✩✩✩✩✩
12 Апр 2023
9
0
@Alex_HF,
Уже пробовал 3 сервы, две постоянно вращаются, 1 только одну сторону. с пинами норм,. серву тестил на сервотесторе (синяя коробочка с диммером).
Пин попробую!
 

Alex_HF

★✩✩✩✩✩✩
11 Мар 2023
40
16
Может и правда серва такая медленная и 1,5сек ей мало - залейте пример от @PiratFox
 

Kot9

✩✩✩✩✩✩✩
15 Апр 2023
3
0
Здравствуйте. Столкнулся с такой же проблемой! Плата Mega 2560.

C++:
#include <Servo.h>

Servo servo1;

void setup() {
  servo1.attach(A1);
}

void loop() {
  servo1.write(180);
  delay(1500);
  servo1.write(0);
  delay(1500);
}
Серва двигается на пару миллиметров в одну сторону, потом в обратную и происходи щелчок. Если прокрутить Серву немножко руками и ее включить, она начинает быстро прокручиваться. Перепробовал все выше варианты. Но ничего не помогло. Синяя Серва 9G с набора от Keyestudio.

Дошли руки до учебы от Гувера) И тут косяк... Смотрю на Серву и на стену)

ТС, если вы найдете ответ, сообщите пожалуйста. Пока со своей стороны куплю другую Серву для тестов.

Прилагаю видео: https://youtube.com/shorts/7rfE0NELGaM
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
540
87
Серво через почему подключена к аналоговому входу? Возьми пример из иде.
 

Pr3D

✩✩✩✩✩✩✩
12 Апр 2023
9
0
@Старик Похабыч,
ДА, нормально се тесты.

@PiratFox,
Работать стал плавно и даже видно что пытается сработать обратно. Но не получается у него.

@Kot9,
Тоже самое.
Решение: новая серва.
Купил на озоне новую серву и все заработало. Не знаю почему предыдущие работали на тесте а на ардуино нет!
 

Kot9

✩✩✩✩✩✩✩
15 Апр 2023
3
0
Купил новый серво + сервотестер, подсоединил проблемный к сервотестеру и он также отказывался работать. Сам по себе был нерабочий. Новая серва работает хорошо и от ардуино и от тестера. Только как оказалось, синий тестер для серво, не на 180 градусов поворачивается а чуть меньше.