Зависает Arduino при работе с моторчиком через драйвер

morningstar
Offline
Зарегистрирован: 29.03.2021

Здравствуйте. У меня появились проблемы при разработке приемника для радиоуправляемой машинки. Я сделал приемник на китайском МК LGT8F328P и на RA-02. Питание на приемник подается напрямую от общего аккумулятора (две литий банки). Так как питание там слишком большое для ардуино, чтобы не нагружать стабилизатор на плате я понижаю напряжение через MINI360 до 5В. Это питание для МК. Приемник RA-02 питается от 3.3В через AMS-1117.3.3, которая подключена к выходу MINI360. На плате приемника реализовано несколько выходов, в том числе выходы шим для периферии. 

Моторчиком я управляю с помощью ШИМ через драйвер на MX1508. Питание драйвера от того же аккумулятора на две банки. Иногда при работе мотора МК зависает и мотор крутится постоянно, помогает ресет МК. На моторчике стоит керамический конденсатор, но это не помогает. Думаю, надо разделить питание платы приемника от питания моторчика. Но не можно ли обойтись без этого, так как плата уже спроэктирована? Если нельзя, то я думаю разделить питание с помощью модуля гальванической развязки B0505S-1W. Тогда вопрос, нужно ли развязать выходы МК, которые управляют драйвером моторчика, например, с помощью оптопар? Уф.... Извините, если не так загрузил изображения

morningstar
Offline
Зарегистрирован: 29.03.2021

Еще тут подумал, если разделить питание с помощью B0505S-1W, то наличие оптопар обязательно, потому что нужно чтобы земля драйвера и мк была общая, иначе им не будет возможности управлять. Так же?

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021

Попробуйте для начала С1 поставьте хотя-бы 470мкф , желательно low esr

morningstar
Offline
Зарегистрирован: 29.03.2021

Боюсь, такой керамики не найти. Электролит нельзя, там моторчик в реверс может. Возможно пикофарад?

morningstar
Offline
Зарегистрирован: 29.03.2021

Я ещё видел, что используют три конденсатора. Один между двумя контактами, ещё два между каждым из контактов и корпусом моторчика. Есть ли от этого выигрыш?

morningstar
Offline
Зарегистрирован: 29.03.2021

А, вы про схему... Затупил...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

morningstar пишет:
Боюсь, такой керамики не найти. Электролит нельзя, там моторчик в реверс может. Возможно пикофарад?

Конденсатор нужен на входе питания драйвера и на входе аккумуляторной батареи

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021

morningstar пишет:
А, вы про схему...

Имел ввиду С1 (электролит) после DC/DC. ИМХО 10мкф маловато.

Ещё АКБ проверить, может проседает под мотором - добавить параллельно

А так ,если не поможет, придётся переделывать, разделять по питанию

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Однако конденсатор надыть. 0,47 мкф

morningstar
Offline
Зарегистрирован: 29.03.2021

А если развязать питание? Тут GND и 5V это питание с аккумулятора, DGND и 5VIS - 5 вольт после B0505S-1W. Выходы шим тоже развязаны оптопарами, надеюсь, правильно. Как такой вариант? В теории неубиваемый, если B0505S-1W действительно развязывает питание 

morningstar
Offline
Зарегистрирован: 29.03.2021

Собрал такой вариант, почему то не заработал он. Появились сомнения, будет ли на выходах PWM1, PWM2, PWM3 шим сигнал?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Я бы с опторазвязкой не парился, а попробовал бы для начала следующее:

- Провода к моторчикам пропустить через ферритовые кольца. Лучше несколько витков сделать.

- Паралельно С2 обязательно керамику. 

- С C2 3.3V на модуль  подать через бусину.

- Все не используемые пины  контроллера запрограмировать как выходы и подать 1.

 

SLKH
Offline
Зарегистрирован: 17.08.2015

asam пишет:

- Все не используемые пины  контроллера запрограмировать как выходы и подать 1.

Почему именно 1?