Серва не докручивает до 180 и до нуля
- Войдите на сайт для отправки комментариев
Ср, 03/10/2012 - 10:59
Серва цифровая FS5519M не докручивает до 180 градусов и до нуля.
Может кто сталкивался?
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); } void loop() { myservo.write(1); delay(3000); myservo.write(90); delay(3000); myservo.write(179); delay(3000); }
Серва цифровая FS5519M не докручивает до 180 градусов и до нуля.
А до чего докручивает?
До 179? До 150? До 91 еле-еле?
На вскидку 30-150
Открываем документацию на Servo.attach и читаем какие параметры он принимает. Особое внимание обращаем на второй и третий (опциональные). Скорее всего ваша серва не совпадает с тем что "по дефолту". Или в даташите ищите ее тайминги, либо тупо "подбирайте".
Кстати где-то видел что цифровых можно вообще как-то в режим Serial команд вводить. И настраивать им характеристики. Перепрограмливать их. Можно и с этим "поигратся", но думаю и без этого решится.
Открываем документацию на Servo.attach и читаем какие параметры он принимает. Особое внимание обращаем на второй и третий (опциональные). Скорее всего ваша серва не совпадает с тем что "по дефолту". Или в даташите ищите ее тайминги, либо тупо "подбирайте".
Подскажите плиз, по какой методе подбирать эти цифры. Датащита на серву я не смог найти.
Открываем документацию на Servo.attach и читаем какие параметры он принимает. Особое внимание обращаем на второй и третий (опциональные). Скорее всего ваша серва не совпадает с тем что "по дефолту". Или в даташите ищите ее тайминги, либо тупо "подбирайте".
Подскажите плиз, по какой методе подбирать эти цифры. Датащита на серву я не смог найти.
Элементарно ватсон. Смотрим в документацию какие тайминги используются по дефолту. 544 для 0 градусов и 2400 для 180-ти.
Для начала "воспроизводим их же".
myservo.attach(9,544,2400);
Затем применяем секретную технологию под названием "метод научного тыка".
Раз 2400 у нас не докручивает до 180 - берем, к примеру 2600. Делаем myservo.attach(9,544,2600); Дальше возможны "три варината"
1. "ничего не поменялось" значит дело не в таймингах, а в механических свойствах самой сервы.
2. стала поворачиватся дальше, но все равно "не докручивает". Значит "еще увеличиваем"
3. Докрутилась до 180-ти. Уменьшаем, скажем на 2500. Пока опять не начнет "не докуричивать".
Вот так и "пристреливаемся". Что-бы найти минимальное значение которое будет "докручивать до 180-ти".
Аналогично с 0-лем.
Уменьшаем. Смотрим что вышло. Подбираем, теперь _максимальное_, значение которое будет устанавливать ее в ноль.
Ну и, в процессе этой игры, держим руку на питании самой сервы. Что-бы "не насиловать ее". Предположим что у нее тайминг 2700 для 180-ти градусов. А мы дали 2800. То есть она будет пытатся занять угол больше 180-ти. А ее туда не пустит физический ограничитель. Ну вот что-бы они не бодались лбами, мы и "выключаем" сразу как только убедились что "дошла до упора". Не заставляем ее грется пока мы перезальем скетч с уменьшиными таймингами.
Да и еще. Если для ноля возмем слишком малое. То кроме "уперлось в ограничитель нуля" - может еще быть ситуация "вообще не включается". То есть ниже какого-то порога она будет воспринимать "а вообще управляющего сигнала нет, значит вообще выключаемся".
Ну или как вариант. При подборе. Можно просто по циклу пробовать разные тайминги. Типа стартанули от 2400. И в цикле делаем Serial.print("тайминг который собираемся установить"). Делаем аттача. Деалем поворот в 180 градусов. Делаем небольшую задержку (что-бы было время повернутся). detach. Чуть увеличили тайминг и опять сначала.
Ну и сидим, при этом, одним глазом смотрит на серву, ловим момент когда она докрутится до 180-ти. А другим в Serial на каком тайминге это произойдет.
Вообщем я бы делал как-то так:
Я бы delay(2000); поменял бы на while(!Serial.available() || Serial.read()!='\n');
Типа "Подождем Ентера"
Вообщем я бы делал как-то так:
"вывели в Serial какой тайминг будем использовать" это как и подключать и куда смотреть?
"вывели в Serial какой тайминг будем использовать" это как и подключать и куда смотреть?
Плата уже подключена к компу (для заивки скетча, смотреть в "Serial monitor"
"вывели в Serial какой тайминг будем использовать" это как и подключать и куда смотреть?
http://arduino.ru/Reference/Serial
"вывели в Serial какой тайминг будем использовать" это как и подключать и куда смотреть?
http://arduino.ru/Reference/Serial
Нужна помощь в написании программы за зузу. Есть желание?
>>Нужна помощь в написании программы за зузу<<
Это еще что такое ?
Это еще что такое ?
Это значит есть задача которую нужно решить, которую я решить не могу, хочу поделиться деньгами взамен за помощь.
Что за задача ?
не в конфе