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

Shockk » 18 авг 2010, 22:33
Да, Сергей, всё работает. А теперь, если не сложно, кто-нибудь объясните почему так происходит ? Что происходит с ШИМ когда он попадает в серво ?
Сергей » 18 авг 2010, 23:37
Если в электронике не разбираетесь - советую почитать соответствующую литературу. Про соединение земель я уже сказал "как ток обратно протекать будет?".
RootAdmin » 19 авг 2010, 23:43
Сергей писал(а):Как это постоянный ток проходит через емкости и трансформаторы? Обоснуйте

Переменный! От сети питания - из-за наводок на землях разных источников питания будет некоторое переменное напряжение относительно друг друга.
Skyline » 20 авг 2010, 19:16
Решил не открывать новую тему, а спросить здесь, поскольку вопрос несколько схожий. Пытаюсь запустить серву. По программе серва должна поворачиваться то влево, то вправо, но после подачи питания она просто начинает дрожать, как-бы вибрировать на месте. Через некоторое время может градусов на 30 повернуться и снова начинает дрожать. Пробовал сделать просто поворот на определенный градус, результат тот же. МК используется Atmega8, частота 8МГц, серва HexTronik HX5010, питается через стабилизатор, 5В. Собственно, в чем может быть загвоздка?
RootAdmin » 21 авг 2010, 03:15
Ну, попробуем удаленную отладку. Для начала вопрос - есть пара свободных ног на атмеге? Вешаем на одну светодиод (не забываем про резистор), на вторую - кнопку...
В программу (предполагаю что умеет генерировать Шим разной скважности) дописываем зажигание светодиода при генерации ШИМ первой длительности и выключение при второй.
И смену режима по нажатию кнопки.
Возможно просто что "положения" меняются слишком часто и серва не успевает отработать.
Skyline » 21 авг 2010, 09:00
RootAdmin писал(а):Для начала вопрос - есть пара свободных ног на атмеге?
Есть и даже не пара!
В программу (предполагаю что умеет генерировать Шим разной скважности) дописываем зажигание светодиода при генерации ШИМ первой длительности и выключение при второй.И смену режима по нажатию кнопки.
А вот тут проблема, работал только с аппаратным ШИМом. К тому же програмлю на Баскоме!
Возможно просто что "положения" меняются слишком часто и серва не успевает отработать.
Если так, то как с этим бороться?
RootAdmin » 21 авг 2010, 19:37
Попробовать на порядок увеличить время нахождения сервы в каждом положении для начала. Или сначала зашить программу для одного положения (1,1 мс например) - и посмотреть станет ли в него серва. И как себя будет вести.
Да, а паузы МЕЖДУ импульсами достаточны? Пусть будут больше чем положено, лишь бы не меньше.
galex1981 » 21 авг 2010, 22:40
Приведите код - может легче найти проблему будет
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
Skyline » 22 авг 2010, 09:37
Попробовал просто подать питание на серву. Сначала подал с аккумов(7,5В 2200 мАч), через стаб на 5В, серва дернулась и градусов на 30 повернулась, затем подал с БП(12В) тоже через стаб на 5В, серва крутанулась от одного края до другого. Не знаю она вообще должна вращаться без сигнала, просто подав на неё питание?
Сергей » 22 авг 2010, 10:37
Может, конденсатор, который ты заряжаешь импульсами, может быть заряжен и соотв. получится рандомный импульс. Чтобы такого не было, необходимо линию сигнала подцепить на землю, во время тестирования.
Skyline » 23 авг 2010, 16:56
Есть еще пару вопросов: при каком значении серва HX5010 находится в среднем положении и какая нужна длина импульса для этой модели сервы?
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, упирается в край и начинает грузить питание. Что сделать, чтобы избавиться от этого? Не отключать же каждый раз серву!