Spirit писал(а):Ale, подскажи пожалуйста как в прошивке инвертировать сигнал ШИМа, если это возможно и не сложно. Не хочеться курочить мост, если можно программно решить вопрос. Я тоже смогу потестировать прошивку, правда пока на макете, с моторами я так и не определился пока.
Spirit, я думаю, что сбил тебя с толку. Да, оптоизоляторы инвертируют сигнал. Но давай посмотрим, как это влияет на работу моста и стоит ли искусственно инвертировать входные сигналы.
Давай нарисуем "таблицу истинности" для твоего моста. Оценим сигналы на входных и выходных (на моторе) контактах моста.
Только одно предварительное замечание - в твоем мосте пины INH драйверов BTN7970 заведены на шину питания VIN. Это означает, что мы не можем перевести драйверы в "sleep" режим, когда все силовые ключи отключены и выходные контакты драйверов "висят в воздухе". При подаче питания на твой мост контакты OUT обоих драйверов ОБЯЗАТЕЛЬНО будут через внутренние ключи подключены либо к земле, либо к питанию.
Теперь рисуем таблицу для того, что бы увидеть, какое напряжение будет на контактах, к которым подключается мотор (Motor-H - выход верхнего по схеме драйвера, Motor-L - выход нижнего драйвера). VO1 и VO2 - это выходные пины опторазвязки с учетом инверсии.
PWM(P3.3) .. DIRA(P3.2) .. DIRB(P3.1) ..... VO1 ......... VO2 ......... Motor-H ........ Motor-L
.... L ............. L ............. L ............. H ............. H ............. VIN ............. VIN ----- тормоз на VIN
.... H ............. L ............. L ............. L ............. L ............. GND ............ GND ---- тормоз на GND
.... L ............. H ............. L ............. H ............. H ............. VIN ............. VIN ----- тормоз на VIN
.... L ............. L ............. H ............. H ............. H ............. VIN ............. VIN ----- тормоз на VIN
.... H ............. H ............. L ............. H ............. L ............. VIN ............. GND ---- вращение ВВЕРХ
.... H ............. L ............. H ............. L ............. H ............. GND ............. VIN ---- вращение ВНИЗ
как видно из таблицы мост будет выполнять свои функции без инвертирования входных сигналов.
Если на пине PWM будет высокий уровень а на одном из пинов направления - низкий, то мотор будет вращаться. Скорость вращения будет определяться скважностью ШИМ на пине PWM.
Ну а в прошивке, тем не менее, имеется возможность инвертировать управляющие сигналы, остаточно подправить вот эти строчки
- Код: Выделить всё
//====================================================================================
//======= определяем УРОВНИ для сигналов (тут можно инвертировать при необходимости ==
#define PWM_LOW LOW
#define PWM_HIGH HIGH
#define DIR_LOW LOW
#define DIR_HIGH HIGH
Вообще в тексте прошивке все написано. Читайте и изучайте.
PS: Возможно не совсем понятны строки таблицы 4 и 5. Вроде как на пинах отдельных DIR есть высокий уровень, а мотор все равно не будет крутиться. Тут как раз стоит вспомнить о том, что входные пины - это фактически выводы светодиода опторазвязки. И комбинация уровней, когда на катоде (-) светодиода напряжение выше, чем на аноде (+) приводит к тому, что ток через светодиод все равно не течет, и он остается "погашенным"...
PSS: Еще раз обращаю внимание - прошивка сырая, а мосты с моторами - вещь хрупкая.
Я один раз уже насоветовал человеку, он мост сходу и сжег. Да и у меня вот выгорел, так и не понял - почему.
Процесс включения системы должен идти ОЧЕНЬ постепенно. Желательно с осциллографом. Сначала прошиваем ардуину, подключаем потенциометры и убеждаемся, что есть связь с программой на компьютере, и данные с АЦП передаются. Потом включаем мост без мотора, и на светодиодах с резисторами, подключенных к выходу вместо мотора убеждаемся в адекватности работы моста и прошивки. Потом подключаем мотор (без закрепленного на оси резистора) и просто крутим его в разные стороны поворачивая ручку резистора. Тут, кстати, и нужно убедиться, что мотор и резистор (после его закрепления) будут "в фазе" . Потому что есть вероятность 50 на 50, что надо перебросить либо концы мотора либо концы резистора, что бы система слежения прошивки не пускалась в разнос...