roboforum.ru

Технический форум по робототехнике.

Серво сдохла или .. ?

Re: Серво сдохла или .. ?

RootAdmin » 18 авг 2010, 21:05

Хорошая ссылка - закон Кирхгофа. В школе учат в 7? классе.
Без земли ток проходит через емкости: трансформатора БП, фильтра помех, сеть 220 и опять через емкости и емкость трансформатора. "Наводки" в общем. И длительность импульса на вход сервы - около 1/20 секунды.
Берем мультиметр на переменном напряжении - щупы к НЕСОЕДИНЕННЫМ землям. Не ноль, правильно?
Последний раз редактировалось RootAdmin 18 авг 2010, 22:03, всего редактировалось 1 раз.

Re: Серво сдохла или .. ?

Сергей » 18 авг 2010, 21:29

Как это постоянный ток проходит через емкости и трансформаторы? Обоснуйте :D

Re: Серво сдохла или .. ?

Shockk » 18 авг 2010, 22:33

Да, Сергей, всё работает. А теперь, если не сложно, кто-нибудь объясните почему так происходит ? Что происходит с ШИМ когда он попадает в серво ?

Re: Серво сдохла или .. ?

Сергей » 18 авг 2010, 23:37

Если в электронике не разбираетесь - советую почитать соответствующую литературу. Про соединение земель я уже сказал "как ток обратно протекать будет?".

Re: Серво сдохла или .. ?

RootAdmin » 19 авг 2010, 23:43

Сергей писал(а):Как это постоянный ток проходит через емкости и трансформаторы? Обоснуйте :D

Переменный! От сети питания - из-за наводок на землях разных источников питания будет некоторое переменное напряжение относительно друг друга.

Re: Серво сдохла или .. ?

Skyline » 20 авг 2010, 19:16

Решил не открывать новую тему, а спросить здесь, поскольку вопрос несколько схожий. Пытаюсь запустить серву. По программе серва должна поворачиваться то влево, то вправо, но после подачи питания она просто начинает дрожать, как-бы вибрировать на месте. Через некоторое время может градусов на 30 повернуться и снова начинает дрожать. Пробовал сделать просто поворот на определенный градус, результат тот же. МК используется Atmega8, частота 8МГц, серва HexTronik HX5010, питается через стабилизатор, 5В. Собственно, в чем может быть загвоздка?

Re: Серво сдохла или .. ?

RootAdmin » 21 авг 2010, 03:15

Ну, попробуем удаленную отладку. Для начала вопрос - есть пара свободных ног на атмеге? Вешаем на одну светодиод (не забываем про резистор), на вторую - кнопку...
В программу (предполагаю что умеет генерировать Шим разной скважности) дописываем зажигание светодиода при генерации ШИМ первой длительности и выключение при второй.
И смену режима по нажатию кнопки.
Возможно просто что "положения" меняются слишком часто и серва не успевает отработать.

Re: Серво сдохла или .. ?

Skyline » 21 авг 2010, 09:00

RootAdmin писал(а):Для начала вопрос - есть пара свободных ног на атмеге?

Есть и даже не пара!
В программу (предполагаю что умеет генерировать Шим разной скважности) дописываем зажигание светодиода при генерации ШИМ первой длительности и выключение при второй.И смену режима по нажатию кнопки.

А вот тут проблема, работал только с аппаратным ШИМом. К тому же програмлю на Баскоме!
Возможно просто что "положения" меняются слишком часто и серва не успевает отработать.

Если так, то как с этим бороться?

Re: Серво сдохла или .. ?

RootAdmin » 21 авг 2010, 19:37

Попробовать на порядок увеличить время нахождения сервы в каждом положении для начала. Или сначала зашить программу для одного положения (1,1 мс например) - и посмотреть станет ли в него серва. И как себя будет вести.
Да, а паузы МЕЖДУ импульсами достаточны? Пусть будут больше чем положено, лишь бы не меньше.

Re: Серво сдохла или .. ?

galex1981 » 21 авг 2010, 22:40

Приведите код - может легче найти проблему будет

Re: Серво сдохла или .. ?

Skyline » 21 авг 2010, 22:48

Вот код:
Код: Выделить всёРазвернуть
$regfile = "m8def.dat"

$crystal = 8000000

Config Portd.2 = Output

Config Servos = 1 , Servo1 = Portd.2 , Reload = 11

Dim I As Integer , P As Integer

P = 12

Enable Interrupts

Servo(1) = 101

Wait 1

Do

For I = 101 To 150
Servo(1) = I : Waitms P
Next

For I = 150 To 200
Servo(1) = I : Waitms P
Next

For I = 200 To 150 Step -1
Servo(1) = I : Waitms P
Next

For I = 150 To 0 Step -1
Servo(1) = I : Waitms P
Next

For I = 0 To 101
Servo(1) = I : Waitms P
Next

Loop

End

Re: Серво сдохла или .. ?

Skyline » 22 авг 2010, 09:37

Попробовал просто подать питание на серву. Сначала подал с аккумов(7,5В 2200 мАч), через стаб на 5В, серва дернулась и градусов на 30 повернулась, затем подал с БП(12В) тоже через стаб на 5В, серва крутанулась от одного края до другого. Не знаю она вообще должна вращаться без сигнала, просто подав на неё питание?

Re: Серво сдохла или .. ?

Сергей » 22 авг 2010, 10:37

Может, конденсатор, который ты заряжаешь импульсами, может быть заряжен и соотв. получится рандомный импульс. Чтобы такого не было, необходимо линию сигнала подцепить на землю, во время тестирования.

Re: Серво сдохла или .. ?

Skyline » 23 авг 2010, 16:56

Есть еще пару вопросов: при каком значении серва HX5010 находится в среднем положении и какая нужна длина импульса для этой модели сервы?

Re: Серво сдохла или .. ?

Skyline » 27 авг 2010, 10:49

Вроде получилось заставить серву болтать из стороны в сторону. Попробовал на другом МК Atmega16 + не много другой код.Если кому надо будет вот он:
Код: Выделить всёРазвернуть
$regfile = "m16def.dat"                                    
$crystal = 8000000                                           
Config Portd.4 = Output                                     
Config Servos = 1 , Servo1 = Portd.4 , Reload = 11
Dim I As Integer , P As Integer

P = 10                                                     

Enable Interrupts
Servo(1) = 101                                             
Wait 1

Do
For I = 45 To 90 Step 1                                     
  Servo(1) = I
  Waitms P
Next

For I = 90 To 135 Step 1                                   
  Servo(1) = I
  Waitms P
Next

For I = 135 To 90 Step -1                                 
  Servo(1) = I
  Waitms P
Next

For I = 90 To 45 Step -1                                   
  Servo(1) = I
  Waitms P
Next
Loop
End

Теперь другая проблемка, когда идет прием команд с пульта(серва вне работы, просто включена в разъем) во время каждой команды серва поворачивается градусов на 25-30, упирается в край и начинает грузить питание. Что сделать, чтобы избавиться от этого? Не отключать же каждый раз серву!


cron
Rambler\'s Top100 Mail.ru counter