Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Радиоуправление на Ардуино - глюки

Пт мар 03, 2017 22:47:00

Всем добрый день! Решил сделать радиоуправление (для машинки) на Arduino Pro Mini (Mega168). Принцип такой: передатчик (Pro Mini Mega168) передает 1 байт в котором первые 4 бита - напрвление движения и управление поворотами. В подробности не буду вдаваться - прикреплю скетчи передатчика и приемника - там все расписано. Схема управления в машинке простая:

2 аккумулятора 18650 - от них понижалка LM2596 на 5 вольт - все это питает Ардуинку + серву(повороты) + H-мост моторчика. От LM2596 идет еще понижалка 1117 на 3.3 вольта для питания радиомодуля nrf24l01+.

Схема работает отлично без каких-либо проблем. НО! Надо сделать радиоуправляемой другую машинку. И тут пришлось "изголяться". Машинка типа "Баги", внутреннего пространства почти нет, по этому пришлось вместо 2-х аккумуляторов 18650 ставить один аккумулятор cga103450 (плоский и меньше чем 18650) + повышалку MT3608 на 5 вольт для работы схемы. Еще дно изменение: вместо радиомодуля nrf24l01+ поставил китайскую копию SE8R01. Схема (щелкните для увеличения):
Изображение
Фото схемы внутри машинки (ногами не пинайте, это пока тестовая сборка) :
Изображение Изображение

На первом фото виднеется слева повышалка, потом идет серва, ардуина и радиомодуль. На втором фото в отсеке для батареек расположился H-мост и аккумулятор.

Суть проблемы в чем: при включении (если есть связь с передатчиком) ардуина в машинке мигает светодиодом (пин 13) в качестве индикатора что связь с передатчиком (управлением) есть и принимаются данные - это нормальный рабочий режим. При управлении Вправо-Влево управление идет без проблем, сервопривод поворачивает колеса, но если нажать Вперед или Назад то начинается что-то непонятное: ардуина в машинке перестает моргать светодиодом (он гаснет) и секунду-две никак не отвечает на управление, ни на Повороты ни Вперед-Назад. Через секунду - две ардуина развисает. Если при этом ничего на пульте не нажато то машинка может проехать сантиметров 10-15, остановиться, и опять моргать светодиодом и реагировать на повороты. Если же во время "развисания" ардуины передается команда Вперед-Назад то машинка 1 раз дернется и опять зависнет на 1-2 секунды.

Если отключить моторчик от H-моста то подобных зависаний нет, но если вместо моторчика поставить хоть какую-то нагрузку (светодиод) то история опять повторяется. Получается что работа H-моста как-то влияет на работу приемника в целом. Но почему - не понятно. Платку моста снял с машинки. Платка раньше работала без проблем. В чем может быть причина? Из-за чего такой глюк может быть?
Вложения
SE8R01.rar
Скетчи передатчика и приемника
(11.72 KiB) Скачиваний: 274

Re: Радиоуправление на Ардуино - глюки

Пт мар 03, 2017 23:25:35

forfrends писал(а):вместо 2-х аккумуляторов 18650 ставить один аккумулятор cga103450 (плоский и меньше чем 18650)
Опять программисты "жгут" :))
Поставьте аккумуляторы с достаточной емкостью и разрядным током и не парьте нам мозги.

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 02:12:35

Схема на картинке точно соответствует реальности?
Проблема с мостом может быть в Q2, Q3 - после запирания Q5, Q6 у них базы висят в воздухе, т.е. они могут быть в неопределенном состоянии.

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 09:11:37

+ повышалку MT3608 на 5 вольт для работы схемы.

Через повышалку сразу мотор и контроллер?
MT3608 более слабая по выходу чем 2596. При старте мотора по питанию имеем большую нагрузку, почти КЗ.
Как минимум одну повышайку на мотор, другую на цифру.

Сделать нормальный мост.
Прочитать зачем нужен dead-time.

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 12:16:25

Осцилл подключите к питанию и, как поётся в песне:”Ты всё поймешь, Ты всё увидишь сам!”
Питание ардуины просаживется, она перезапускается – это еще везёт, что AVR-ка современная – в первых поколениях при этом програмная память портилась :).

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 14:11:33

Осциллографа, увы, нет. Только обычный тестер. Попробую разделить питание через диод. Но прикол в том что "зависание" происходит даже если вместо мотора стоит обычный диод, который потребляет всего 15 мА и никакой просадки напряжения не вызывает. Вечером попробую. Может разделение питания на что-то повлияет.

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 14:33:16

forfrends писал(а):Но прикол в том что "зависание" происходит даже если вместо мотора стоит обычный диод, который потребляет всего 15 мА и никакой просадки напряжения не вызывает.

Ну так транзистор с оторванной базой имеет право себя вести как хочет :) - сквозной ток...

Re: Радиоуправление на Ардуино - глюки

Сб мар 04, 2017 21:37:48

В общем... о результатах:
Тест 1: на выходе повышалки поставил конденсатор 3300 мф 10 вольт. С этой точки питаются серва и мотор. Так же подключил диод (1N4007) и на него тоже конденсатор 3300х10. С этой точки питается ардуина и передатчик. Результат: на ардуине и передатчике ток вовсе не просаживается (при выключении машинки светодиод на ардуине горит еще 2-3 секунды). НО зависания и дергания остались.
Тест 2: все питания собрал в кучу и запитал от внешнего БП 5в 2А - Результат тот же: зависания и дергания. Вывод: дело не в повышалке, а в самой схеме, так как питания вполне достаточно.
Тест 3: питание моторчика поставил напрямую от аккумулятора (перед повышалкой). Все остальное запитал от повышалки. Результат: Нет никаких глюков, все работает четко. НО скорость машинки оставляет желать лучшего... Вывод: Питание для моторчика нужно повышать.

Н-мост я не переделывал так как: 1) выдран со старой р/у машинки где раньше нормально работал. 2) он уже был у меня в работе на другой машинке (проблем не было). 3) он соответствует схеме из 1-го поста, а схема взята здесь: http://www.radiokot.ru/forum/viewtopic.php?f=22&t=26398

Управление что я делаю сейчас отличается от тех что были раньше только радиомодулем (SE8R01 вместо nrf24l01+) и повышающим преобразователем вместо понижающего. Тесты показали что дело не в преобразователе. Похоже что проблема с SE8R01... скорее всего она как-то ловит наводки по питанию. Ставить отдельную повышалку для мотора... не рентабельно и.. НЕ СПОРТИВНО! :))

Можно ли как-то развязать питание? То есть от повышалки запитать все устройства, но "развязать" мотор и все остальное? Попробовал моторчик подключить через диод, но он работал как-то вяло а проблемы с зависаниями и дерганиями остались. Как правильно развязывать питание?

Re: Радиоуправление на Ардуино - глюки

Вс мар 05, 2017 14:34:42

Попробовал соединить все устройства и запитать от одного хорошего источника - сбоев не было вообще. Значит вся беда в повышалке - она не справляется с нагрузкой. Заменить ее нечем :( В общем, решений проблемы несколько:

1) поставить отдельную повышалку для мотора (мне этот вариант не подходит)
2) сделать развязку по питанию для мотора и електроники. Мне этот вариант подходит более всего, но Как ее сделать? Пробовал питать ардуину через L-C фильтр, но толку почти нет.
3) заменить/переделать повышалку, так как она не справляется с такими нагрузками... Опять же: как повысить ПКД повышалки? да и заменить сейчас нечем..

Re: Радиоуправление на Ардуино - глюки

Пн мар 06, 2017 14:56:38

если
forfrends писал(а):1) поставить отдельную повышалку для мотора (мне этот вариант не подходит)

тогда
forfrends писал(а):2) сделать развязку по питанию для мотора и електроники. Мне этот вариант подходит более всего, но Как ее сделать? Пробовал питать ардуину через L-C фильтр, но толку почти нет.

все таки через диод и конденсатор как можно больше на стороне ардуины (возможно его хватит на питание мк и приемника в момент старта, потом двигатель раскрутится и ток через него упадет) + обязательно отдельными проводами непосредственно от повышалки

Re: Радиоуправление на Ардуино - глюки

Пн мар 06, 2017 18:50:08

Пока что все мои усилия не приносят успеха. Что я делал:
- поставил диод параллельно питанию Н-моста.
- Поставил L-C фильтр на питание ардуины (диод - конденсатор 1000х10 - индуктивтость - конденсатор 1000х10).
- Поставил L-C фильтр на питание мотора (конденсатор 1000х10 - индуктивтость - конденсатор 1000х10), диод не ставил так как не знаю какой поставить, 1N4007 сильно понижает напряжение, по крайней мере через него мотор едва крутится. Схема получилась примерно такая: Изображение
- везде где можно поставил керамические конденсаторы на питание.

В результате помехи ушли примерно на 80%... но все же полностью...

Re: Радиоуправление на Ардуино - глюки

Пн мар 06, 2017 20:55:42

Мотор через него и не надо, только ардуину чтобы в момент критического потребления мотор не отсасывал энергию из конденсаторов ардуино, снижая там напряжение. Большую емкость тоже можно ближе к ардуине сунуть - моторам хватит и 1000. Параллельно электролитам добавить ~0.1 uf керамику. Сам моторчик штатно запитан как было ? Обычно прям на нем детали. Если нет - можно (нужно) пару дросселей непосредственно к каждому полюсу и конденсатор ~0.1 - 0.3 uF между ними, тоже хорошо снижает помехи и ни в коем случае токи питания мотора не должны протекать по тем же проводам, что и для ардуины с приемником. А нельзя через повышалку только мотор запитать ? Сама ардуина от 3.3 обычно работает нормально, можно в обход стабилизатора подать или поменять его на 3.3

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 18:43:34

В общем... после 1000 и 1 теста... выявил причину проблем - аккумулятор.

Если вместо cga103450 поставить банку 18650 - все "глюки" исчезают. Почему система не дружит с cga103450 - не понятно. Даже если полностью зарядить результат тот же. В то же время если поставить 18650 (даже если она на половину разряжена) то проблем не возникает. От cga103450 при попытке езды вперед-назад (включение мотора) ардуина перезагружается. Если использовать 18650 то ардуина не сбрасывается. Тестировал cga103450 - подключал мотор напрямую - батарея нормально может отдавать 1.5 Ампера...

В общем я в ступоре. Почему это происходит - не понятно. Никто не знает что это за "прикол" такой, и можно его победить?

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 21:19:55

Внутреннее сопротивление?

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 21:24:31

Почесал я репу, плюнул, и решил разобрать один аккумулятор. Вот что было внутри:
Изображение Изображение
Что это? Контроллер (защита)? Предохранитель? Эта штука все и портила, не спасали никакие диоды - конденсаторы - LC-фильтры. Подключил аккумулятор напрямую, и все заработало как часы! А столько вечеров потратил что бы найти проблему!

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 21:35:21

Кажется термофьюз. Предохранитель в смысле.

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 21:46:19

forfrends писал(а):Подключил аккумулятор напрямую, и все заработало как часы! А столько вечеров потратил что бы найти проблему!

Ну вы даете. Во втором посте об этом написано - надо было проверить сразу :)) Похоже аккумулятор не рассчитан на такой ток, вы его угробите, хотя поиграться может и хватит.

Re: Радиоуправление на Ардуино - глюки

Пн мар 13, 2017 21:52:50

Век живи - век учись! Как-то "ушами прохлопал" проверить сам аккумулятор...
Аккумуляторы не жалко так как они полудохлые - емкости лишь половина - две трети, заряжаются не до 4.2 а до 3.8-4 вольт, и даже немного вздутые. В серьезную технику их применять нельзя. А для игрушки пойдут!
Ответить