|
|
Опции темы | Опции просмотра |
05.08.2017, 16:41 | #1 |
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
Преодоление рывка аналогового сервомотора при прямом подключении к Ардуино
Доброго времени суток!
Я сейчас пытаюсь решить проблему дёргания сервомотора во время включения электропитания ардуины - - как я понял, именно об этом Вы написали, что это ерунда. Если не секрет, как Вы решили эту проблему? Я экспериментирую с Arduino MEGA и аналоговым сервомотором. Так вот: при включении электропитания ардуины, от которой сервомотор запитан напрямую от 5+, сервомотор внезапно дерёт ~на 30° в сторону, а затем встаёт в позицию, указанную в скетче. Потом, при выполнении скетча таких сумасшедших рывков нет. Мотор не жужжит и не дёргается благодаря использованию attach() и detach(). Означенный 30°ный рывок опасен для механики, подключённой к сервомотору. Так вот в чём вопрос: Как излечить рывок сервомотора, который он делает при подаче электропитания на ардуину? |
|
05.08.2017, 17:25 | #2 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
|
|
2 пользователя(ей) сказали cпасибо: |
05.08.2017, 20:36 | #3 |
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
Как я понял, Вы предлагаете сначала включить электропитание ардуины, а потом
к 5+ подключить сервомотор. Результат к сожалению отрицательный: произвольный рывок сохраняется. Кроме того, при таких условиях эксперимента для данного мотора/данных моторов пропускается фаза выполнения void setup, что может быть при каких-либо обстоятельствах неудобно |
|
05.08.2017, 21:40 | #4 |
Пользователь
Регистрация: 01.02.2013
Адрес: Санкт-Петербург
Сообщений: 990
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 30 раз(а) в 19 сообщениях
Сказал(а) спасибо: 324
Поблагодарили 1,353 раз(а) в 318 сообщениях
:
0 за это сообщение 0 Всего Репутация: этим человеком можно гордиться (1353)
|
Разрешите я тут встряну со своей безграмотностью, есть ли вариант управлять сервой используя локомотивный декодер..... я не силен в сервах, знаю только что она управляется шим сигналом..... но для этого нужен отдельный декодер, а место в нашем деле на вес золота, отсюда и вопрос, как ограничиться только локомотивным декодером!? Подозреваю - ответ ни как! Но все же?
|
|
05.08.2017, 21:55 | #5 |
Местный
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,510
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 710
Поблагодарили 4,621 раз(а) в 2,052 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (4632)
|
есть, но нужен декодер с такой возможностью. Например Zimo. В зависимости от модели декодера 5-вольтовое питание для сервы делается либо с помощью дополнительной схемы на LM7805 или берется с декодера (у некоторых декодеров есть выход 5 вольт).
|
|
Пользователь сказал cпасибо: |
05.08.2017, 23:29 | #6 | |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
Цитата:
Насколько сильный рывок? У меня сервы при включении могут вообще до крайнего положения скакнуть (и скачут). Не понимаю, почему пропускается setup и причем здесь данные моторы? При инициализации выставить нужный PWM, который был при выключении питания сервы. |
|
|
06.08.2017, 00:55 | #7 | ||
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
Не понимаю (возможно, я не на столько продвинут, как Вы думаете ),
о каком analogWrite идёт речь, так как обращение к сервомотору произвожу при помощи servo.write(). Потому что под я имел в виду ручное подключение контакта к пину 5+V, которое по времени произойдёт наверняка позже (с учётом естественного быстродействия контроллера) выполнения ардуиной void setup(). Цитата:
находится в положении, совпадающем с первым положением в скетче (например, если мотор находился в момент перезагрузки кнопкой или заливки скетча в положении 180°, а в скетче в void setup указана начальная позиция 180°, то рывка не будет. Если же сервомотор не находится в таком положении, то рывок гарантирован на изрядные градусы - наблюдаю в среднем 30°, но было и больше. Ну и рывок будет в любом случае, если от ардуины отключить питание - вынуть USB-кабель Upd[ и вставить его снова]. Тоже примерно 30° как правило. Цитата:
или программно через скетч? Здесь Вы вероятно имеете в виду записать в прежние/полученные перед отключением электропитания ардуины значения servo.write()/servo.read() в EEPROM? Последний раз редактировалось Dampflok; 06.08.2017 в 14:43. |
||
|
06.08.2017, 14:29 | #8 | ||||
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,865
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,665
Поблагодарили 3,280 раз(а) в 1,176 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3291)
|
Цитата:
Цитата:
Цитата:
Цитата:
Пробовал управлять подачей питания на сервы с ардуины, через MOSFET транзистор. Вроде все намана было, если память не изменяет. Нюанс- не использую серву на удержание. Когда надо повернуть серву, сначала идет attach(), после завершения движения - detach(). Еще нюанс - если серв много (несколько десятков), то без такого управления питания сервами наблюдаю перегрузку при включении питания, т.к. сервы при включении дружно дергаются и делают полный оборот на 180 и обратно или только туда (точно уже не помню). P.s. Кажись надо переносить последние посты про Ардуину в соотв. ветку форума, а то тема про другое |
||||
|
06.08.2017, 15:20 | #9 | |||||
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
Цитата:
Цитата:
USB-кабель подключается к ардуине->рывок 30°->attach()->detach()->нормальная работа мотора по скетчу...->attach()->detach()->отключение кабеля->включение кабеля->рывок ~30° ... В предыдущем посте выразился неточно и дописал в той строке Upd: то есть рывок не после отключения кабеля USB от ардуины, а после его включения заново. Цитата:
Собственно, я бы и после каждого переключения сервомотора такую запись делал бы отдельной стандартной функцией, но будучи напуган рассуждениями об ограниченности и исчерпании рабочего ресурса EEPROM'а пока воздерживаюсь от этого. Может кто просветит меня в том плане, что боятся этого не следует? Цитата:
Цитата:
Здесь на форуме очень много писали про сервомоторы и их использование для переключения разных устройств с ардуино, но как-то совершенно не оглашали темы рывка сервомотора после включения питания ардуины, тогда как эта тема должна затронуть каждого, кто использует сервомоторы с ардуиной. Меня в связи с этим немало удивляет тот факт, что в данной теме сейчас переписываются только два человека - shalex и Dampflok Последний раз редактировалось Dampflok; 07.08.2017 в 11:56. |
|||||
|
06.08.2017, 18:03 | #10 |
Московский модуль
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 942
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,990
Поблагодарили 3,315 раз(а) в 638 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (3330)
|
|
|
Пользователь сказал cпасибо: |
06.08.2017, 18:47 | #11 |
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
|
|
06.08.2017, 19:03 | #12 |
Московский модуль
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 942
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,990
Поблагодарили 3,315 раз(а) в 638 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (3330)
|
|
|
06.08.2017, 19:36 | #13 |
Заглянувший
Регистрация: 17.06.2013
Адрес: Санкт-Петербург
Сообщений: 227
Сказал(а) 'не согласен(а)'!: 8
Сказали 'не согласен'! 4 раз(а) в 2 сообщениях
Сказал(а) спасибо: 206
Поблагодарили 329 раз(а) в 99 сообщениях
:
0 за это сообщение 0 Всего Репутация: как роза среди колючек (329)
|
Интересно!
А не покажете ли нам, как у Вас это реализовано? Какую толщину проволоки Вы выбрали? Я стальную проволоку толщиной 0,4 мм простым V-образным изгибом загибал, но её жёсткость была всё же слишком высока - - как пружина она практически не срабатывала. |
|
06.08.2017, 20:26 | #14 |
Заглянувший
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
:
0 за это сообщение 0 Всего Репутация: - луч света в тёмном царстве (454)
|
|
#include <Servo.h>
Servo myservo;
int pos = 30; //положение сервы
int servo_pin = 14; // серво
int servo_contr = 15;//транзистор
int btn = 2; //кнопка
void setup()
{
pinMode(servo_contr, OUTPUT);
pinMode(btn, INPUT);
myservo.attach(servo_pin);
}
void loop()
{
if(digitalRead(btn))
{
digitalWrite(servo_contr, HIGH);
for(pos = 30; pos <= 80; pos += 1)
{
myservo.write(pos);
delay(15);
}
for(pos = 80; pos>=30; pos-=1)
{
myservo.write(pos);
delay(15);
}
digitalWrite(servo_contr, LOW);
}
}
6 пользователя(ей) сказали cпасибо: |
30.11.2018, 11:42 | #15 | |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
Цитата:
Один из простых вариантов это соединить управляющий вход сервопривода с + питания, через резистор 4К7. Но это не со всеми сервами работает. Я у себя попробовал, в принципе стало лучше реально, с обычными китайскими сервами.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
|
3 пользователя(ей) сказали cпасибо: |
02.12.2020, 16:04 | #16 |
Заглянувший
Регистрация: 02.08.2014
Адрес: краснодарский край ст. Полтавская
Сообщений: 244
Сказал(а) 'не согласен(а)'!: 1
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 110
Поблагодарили 93 раз(а) в 59 сообщениях
:
0 за это сообщение 1 Всего Репутация: скоро придёт к известности (103)
|
Всем привет, была проблема на шлагбаумах , срывало привода так как ход очень маленький, я полечил для себя простым для других незнаю, в серве один провод с моторчика отпаял от платы и от моторчика, вывел два проводка, естественно один от платы другой от моторчика через таймер на ne555 , после подачи питания через 10 сек. они соединяются. Я доволен на 100 %. Всем удачи.
|
|
Пользователь сказал cпасибо: |
22.09.2023, 16:45 | #17 |
увлечённый дедушка
Регистрация: 19.10.2020
Адрес: Зеленоград
Сообщений: 89
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 177
Поблагодарили 83 раз(а) в 29 сообщениях
:
0 за это сообщение 0 Всего Репутация: скоро придёт к известности (83)
|
Давненько не писали в этой теме…
Скорее всего, уже все нашли для себя оптимальный способ устранения рывка или используют серводекодеры, где эта проблема решена. Но попробую и я влезть со своими пятью копейками. У себя использую ардуино нано с шилдом для удобства подключения сервоприводов: PCA 9685 не осилил, да и смысла в ней для моих 10 стрелок нет… Стрелки переключаю либо тумблером - в режиме покатушек, либо программно – через свободные пины DCC++ Рывков сервоприводов у себя при включении питания на макете не наблюдаю. Что делаю: Перед выключением макета всегда перевожу тумблеры переключения стрелок в исходное положение, соответствующее стартовому положению серв в скетче. Это, впрочем, не обязательно, но если не сделать, то одновременное изменение положения нескольких серв при включении действует на нервы. Замечу, что это не бесконтрольный рывок, а просто установка серв в положение, заданное тумблером. Кроме того, перевод тумблеров в исходное состояние (отрыв соответствующего пина ардуины от земли) является необходимым условием для переключения стрелок Рокрейлом или скетчем, залитым в DCC++, поэтому уже вошло в привычку. Питание ардуины и серв осуществляю от одного источника питания +5В. Конечно, можно ардуину запитать и от 12В, но тогда надо тянуть отдельный провод, а шина +5В у меня уже идёт по всему макету для питания реле, светофоров и серв. Ну, ещё input_pullup, attach/detach и обязательно схему подавления помех, рекомендованную коллегой RTF82: Сервы - самые дешёвые, с углом поворота 180 градусов: В питании дело, или в скетче - не знаю, особенных исследований в этой области не производил. Просто добился на коленке плавного движения серв и забабахал сразу на макет. Скетч: Arduino код:
но всё исправно работает, без рывков, а ведь это главное Последний раз редактировалось George; 22.09.2023 в 21:13. |
|
5 пользователя(ей) сказали cпасибо: |
22.09.2023, 18:15 | #18 | |
Местный
Регистрация: 22.11.2010
Адрес: Москва
Сообщений: 3,072
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 29 раз(а) в 19 сообщениях
Сказал(а) спасибо: 1,733
Поблагодарили 1,664 раз(а) в 841 сообщениях
:
0 за это сообщение 2 Всего Репутация: обеспечил(а) себе прекрасное будущее (1699)
|
Цитата:
не проще было положения сервы или тумблера в память писать? ну и при включении переводить если что не так
__________________
🎉 мой канал в телеграм @aleksandr_ru_blog |
|
|
Пользователь сказал cпасибо: |
22.09.2023, 19:24 | #19 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,838
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 974
Поблагодарили 2,653 раз(а) в 1,570 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2679)
|
|
|
Пользователь сказал cпасибо: |
22.09.2023, 20:02 | #20 |
увлечённый дедушка
Регистрация: 19.10.2020
Адрес: Зеленоград
Сообщений: 89
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 177
Поблагодарили 83 раз(а) в 29 сообщениях
:
0 за это сообщение 0 Всего Репутация: скоро придёт к известности (83)
|
если вернувшись из отпуска не помнишь что там было в скетче?
Каждый тумблер имеет свою метку исходного положения 😊 |
|
22.09.2023, 20:32 | #21 |
Московский модуль
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 942
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,990
Поблагодарили 3,315 раз(а) в 638 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (3330)
|
Не проще ли в сетапе сделать опрос тумблеров , с задержкой, и установку стрелок согласно положению тумблеров ?
|
|
Пользователь сказал cпасибо: |
23.09.2023, 00:29 | #22 |
увлечённый дедушка
Регистрация: 19.10.2020
Адрес: Зеленоград
Сообщений: 89
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 177
Поблагодарили 83 раз(а) в 29 сообщениях
:
0 за это сообщение 0 Всего Репутация: скоро придёт к известности (83)
|
Да, действительно, очень хороший вариант для переключения стрелок тумблерами.
Но что Вы хотите от чайника? Я рад уже, что у меня получился хоть какой-то рабочий вариант 😊 И потом, я же не только тумблером стрелки переключаю, Рокрейл тоже должен, а если я выходной пин станционной DCC ++ меги тумблером посажу на землю, стрелка зависнет в одном положении. Вот и приходится входной пин стрелочной нано, вместе с выходным пином станционной меги подтягивать к плюсу питания, т.е. тумблер при работе с Рокрейл д/б строго в конкретном положении... Последний раз редактировалось George; 23.09.2023 в 13:24. |
|
26.09.2023, 15:18 | #23 |
Заглянувший
Регистрация: 02.08.2014
Адрес: краснодарский край ст. Полтавская
Сообщений: 244
Сказал(а) 'не согласен(а)'!: 1
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 110
Поблагодарили 93 раз(а) в 59 сообщениях
:
0 за это сообщение 1 Всего Репутация: скоро придёт к известности (103)
|
Всём привет, я решил проблему с дерганьем просто, открыл серву, провод который идёт от платы к мотору любой разрываеш и выводиш два наружу, используя проще говоря плату с реле времени которая с небольшой задержкой соединяет их, и всё работает чётко, так у меня работали привода на шлагбаумах переезда, без этой конструкции сломал несколько. Всём удачи.
|
|
Пользователь сказал cпасибо: |
26.09.2023, 16:40 | #24 |
Местный
Регистрация: 16.05.2013
Адрес: Казахстан, Атырау (Гурьев)
Сообщений: 4,948
Сказал(а) 'не согласен(а)'!: 1
Сказали 'не согласен'! 7 раз(а) в 6 сообщениях
Сказал(а) спасибо: 4,603
Поблагодарили 12,084 раз(а) в 3,032 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (12092)
|
Какое именно реле времени?
|
|
27.09.2023, 16:26 | #25 |
Заглянувший
Регистрация: 02.08.2014
Адрес: краснодарский край ст. Полтавская
Сообщений: 244
Сказал(а) 'не согласен(а)'!: 1
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 110
Поблагодарили 93 раз(а) в 59 сообщениях
:
0 за это сообщение 1 Всего Репутация: скоро придёт к известности (103)
|
на таймере ne 555, но именно разрывать любой провод от платки до мотора.
|
|
Пользователь сказал cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Командная станция DCC++ на Ардуино | BR95009 | Arduino | 567 | 18.12.2023 21:44 |
Конструктор электроники для макета на базе Ардуино | Alexmit | Arduino | 86 | 03.05.2023 18:05 |
Декодер DCC на ардуино для немецкого выходного сигнала | BR95009 | Arduino | 61 | 26.02.2019 18:20 |
Декодер для стрелки LGB на Ардуино | BR95009 | Arduino | 42 | 25.10.2016 16:13 |
ЭЧшники жгут! В прямом смысле. | MSV | ЖД техника | 13 | 02.08.2011 09:24 |