Проблема с сервомашинкой. При включении дёргается и замирает.
- Войдите на сайт для отправки комментариев
Добрый день! Простите за мой вопрос, я совсем новичко в этом деле, но сейчас пытаюсь учиться управлять arduino с помощью Youtube. Возникла проблема, ничего не нашёл по этому поводу в интернете.
При включении в сеть сервопривод MG995 дёрается в сторону ограничителя на большой шестерне выходного вала и замирает.
Сначала использовал эту прошивку:
#include <Servo.h> Servo servo; void setup() { servo.attach(9); servo.write(0); } void loop() { servo.write(90); delay(1000); servo.write(1800); delay(100); servo.write(90); delay(1000); servo.write(0); delay(1000); }
Думал, что дело в прошивке, посмотрел, что можено прописывать импульсами (думал, что начальное положение шестерни не было правильным, или как ещё можно сказать)ю
Нашёл такую прошивку:
#include <Servo.h> // для дальнейшей работы назовем 9 пин как servoPin #define servoPin 9 // 544 это эталонная длина импульса при которо мсервопривод должен принять положение 0° #define servoMinImp 544 // 2400 это эталонная длина импульса при котором сервопривод должен принять положение 180° #define servoMaxImp 2400 Servo myServo; void setup() { myServo.attach(servoPin, servoMinImp, servoMaxImp); // устанавливаем пин как вывод управления сервоприводом, // а также для работы сервопривода непосредственно в диапазоне углов от 0 до 180° задаем мин и макс значения импульсов. // импульсы с большей или меньшей длиной восприниматься не будут. // для сервоприводов даже одной партии значения длин импульсов могут отличаться, может быть даже и 584-2440. // поэкспериментируйте и найдите идеальные длины импульсов конкретно для вашего сервопривода. } void loop() { // устанавливаем качалку сервопривода в положение 0°(т.к.импульс равен 544мкс) myServo.writeMicroseconds(servoMinImp); delay(2000); // в данной функции можно задавать длины импульсов непосредственно числами. // 90°(т.к.vимпульс равен 1520мкс) myServo.writeMicroseconds(1520); delay(2000); // 180°(т.к. импульс равен 2400мкс) myServo.writeMicroseconds(servoMaxImp); delay(2000); }
Обе выдают одинакувую картину. Подключал к БП с 5v 350mAh и 500mAh, думал, что не хватает питания.
Земля ардуино и серво соеденины. Помогите, пожалуйста, не знаю, как решить эту проблему.
Просто поподавайте питание на серву без подключения к ардуине - дергается?
Да, происходит точно тоже самое.
Значит от ардуины данные дерги вообще никак не зависят и ею не исправляются. Так работает сама электроника сервы. И, по-моему, тут писали, что это нормальное поведение для серв данной ценовой ниши.
Я читал, что при включении дёргания в порядке вещей. Проблема в том, что код не исполняется. Дёргается и всё. Мочит, пока не выключишь-включишь в сеть.
Так бы и писали, что не управляется. Вот это должно выставлять на какой-то угол серву. Т.е. понимаете, да - в пин даем HIGH на определенное кол-во микросекунд. Если серва не дохлая и соединение правильное (к заданному пиру), то она повернется.
Прошу прошения, что не уточнил суть проблемы. К сожалению, данный скейч выполняется точно также. Немного двигается в направлении упора на шестерне.
Ну, тут что могу посоветовать... вскрыть со стороны электроники, мультиметром потыкать, убедиться, что есть контакт между ардуиной и платой сервы. Кто его знает, что там напаяно нашими трудолюбивыми друзьями.
Не думал, что столкнусь на первых порах с такой проблемой. Спасибо за советы.