Проблемы с сервомашинкой.
- Войдите на сайт для отправки комментариев
Ср, 26/10/2011 - 20:46
Доброго всем времени суток! Пытался подключит к arduino mega вот такую серву: Hobbiking HK15178. Данная серва имеет ограничение угла в 180 градусов. При включении ее (Черный-Gnd, Желтый-D0(D9),Красный- +6в внешнего питания, Gnd - -6в внешнего питания) и при подаче ЛЮБОГО угла (хоть 0, хоть 90, хоть 180, хоть 30), она поворачивается до упора на 180 градусов. В чем может быть причина?
одноразовая что ли?:)
Черный-Gnd, Желтый-D0(D9),Красный- +6в
в D0 - нельзя включать это пины Serial. В ставьте в пин с PWM например. Дальше попробуйте примеры из ардуино IDE с сервами.
Спасибо. Но у Mega ШИМ возможны на выходах с 0 до 13. И еще я подключал к 9-му... Вообщем проблема не решена...
>В чем может быть причина?
Да в чем угодно. От неисправной машинки, до банального "забыл delay вставить". Схема и скетч. Может кто-то что-то и "заподозрит", не пребегая к телепатии.
Я, например, абсолютно не понял что у вас творится с землей и -6V. Вот подали вы на D0 зашимованный 5v, но это пять вольт между чем и чем будет?
Да и вообще, откуда тут "-6V" появились? Можете даташит дать на серву? Из тех описаний что я видел она 6-ти вольтовая. Значит если вы вогнали в нее 12 вольт (разница между +6 и -6) то шутка Prol об одноразовости сервы уже может и не быть шуткой. И возможно вы пытаетесь добится вменяемости от полутрупа.
Код: #include <Servo.h>
Servo myservo;
void setup(){
myservo.attach (9);
delay (3000);
myservo.write(90);
}
void loop(){
}
Извиняюс за качество, под рукой кроме Paint ничего не было...
Код: #include <Servo.h>
Servo myservo;
void setup(){
myservo.attach (9);
delay (3000);
myservo.write(90);
}
void loop(){
}
Извиняюс за качество, под рукой кроме Paint ничего не было...
Ну все правильно - в setup сервомашинка устанавливается на 90 градусов и дальше ничего не делает.
Хотите, чтобы вжикало - поставьте в loop что-нибудь вроде
for(i=5;i<=180;i+=5) {
servo.write(i);
delay(20);
}
Может быть и получите желаемый результат...
>Извиняюс за качество
Отличное качество. Главное что понятно и однозначно. И что мое предположение про 12v, к счастью, не подтвердилось (по текстовому описанию было похоже).
К сожалению, "все выглядит правильно". Поэтому следующие подозрение, все-таки, "машинка дефектная".
Ну разве что еще попробовать, в качестве последней надежды, собрать схему "один в один" из туториала. Без "внешнего питания" (от 5v она тоже должна заработать, просто чуть медленее будет "на позицию" выходить).
Было бы неплохо найти на нее даташит. Вдруг у нее какой-то нестандартный управляющий PWM, хотя погуглил чуток, никаких упоминаний про "нестандартность" не нашел.
А если сделать ей только attach, без write. Как она себя ведет? Стоит? При этом небольшая вибрация рукой чувтсвуется?
От "безысходности", можно попрбовать углы больше 180 (или даже 360). Отрицательные. Может у нее резистор обратной связи по положению навернулся-врет и получится его "програмно обхитрить".
>Ну все правильно - в setup сервомашинка устанавливается на 90 градусов
В первом посте было, что при этом, в реальности, "" она поворачивается до упора на 180 градусов". Что как-бы "правильно" назвать нельзя. Сказали 90, а получили 180.
>"правильно" назвать нельзя". А кто правильно назвал? Но ведь я пытался и в loop() писать код. Что-то вроде этго:
Приведен лишь фрагмент кода.
Не правильно! Если допустить, что тот угол, на который она повернулась, это для нее 90, то ПОЧЕМУ ОНА ПОВОРАЧИВАЕТСЯ ТАК ЖЕ при подачи угла ы в 0, 180, 45, 30 итп?
2Mafia:
Я же отвечал step92. Который сказал "все правильно", а это не так, судя по тому что вы указали в первом посте.
То есть "все правильно" в написанных вами скетчах, но "серва ведет себя не правильно". Поведение сервы не соотвествует тому что от нее попросили в скетче.
Если есть возможность где-то "отдолжить/нахоботить" другую аналогичную серву - попробуйте. Просто что-бы четче локализировать "где проблема".
Собирать по схеме из туториала (без внешнего питания, питать от 5v ардуины) пробовали?
P.S. leshak, отвечаю на вопросы:
1) Без подачи сигналов она стоит в текущей позиции, только дернется при вкл градусов на 5.
2) При питании от Ардуино, она вообще не двигалась. Странно, может я конечно неправильно воткнул (не хотел спалить, вот по невнимательности и сунул не туда).
Можно еще написать самому через ШИМ, без либы. Я на днях степпер подключал, он с либой не захотел работать( ему надо послед. включать обмотки было, а в библиотеке по 2). Может и сервой какая-то такая фигня.
P.P.S. Серва не моя, друга. Она совсем новая, не использованная. Так что сгоревшей\сломанной быть вроде не может.
>Без подачи сигналов она стоит в текущей позиции
Ну это в, какой-то мере, повышает вероятность ее исправности.
>Так что сгоревшей\сломанной быть вроде не может
Ну вы сами употребили слово "вроде" :) Но что же еще думать? Если скетч выглядит правильным, нарисованая схема - тоже. Остаются варианты:
>Странно, может я конечно неправильно воткнул
А вот это действительно странно. Смысл "попробовать как в туториале", как раз и был в том что-бы исключить вероятность неправильного подключения.
Я крутил сервы (правда неизвестных кровей) "по туториалу", причем саму мегу 1280 питал от USB, даже не внешним блоком - ничего не погорело. Вот две - уже не рискнул.
>Можно еще написать самому через ШИМ
Да вообщем-то либа через него же и работает. Лучше вначале попробуйте поигратся с "максимальным, минимальным" таймингом. Метод аттач может принимать два дополнительных параметра. Так сказать "калибровочных". Дефолтные их значения 544, и 2400
Насколько я понимаю это и есть значения какой PWM либа будет выдавать на 0 градусов, а какой на 180. Все остальное по пропорции между ними.