Важная информация!
Я уже рассказывал вам о нашем любимом драйвере MX1508, там я сказал что это наш любимый драйвер, так как он дешевый, надежный и простой в использовании. Но, к сожалению, он не подходит, когда речь идет о роботах на грани - о роботах для соревнований! Почему? Все просто! MX1508 может переварить напряжение только до 10 вольт, а моторы хотят 12в. То есть на нашем роботе что мы делали для R:ED FEST 2023, моторы GA12-N20 на 12 вольт и 500 оборотов в минуту, с драйвером MX1508 могли выдать только 84% того что могут. Но это еще не самое страшное! Самое ужасное то, что у MX1508 нет тормоза, а это трагедия!
Что за тормоз и для чего он нужен?
Если вы раскрутили мотор, да еще и с колесом, то после того как вы его "отключите" колесо еще совершит N`е количество оборотов. Если вы делаете робота по линии, а тут это особо актуально, на драйвере MX1508 или на любом другом без активного тормоза - вас убивает инерция, она будет в любом случае, но без тормоза ее много, и робот очень много времени тратит на преодоление ее последствий. А вот если у вас драйвер с(!) тормозом то проблема инерции для вас больше не существует (ну почти ;Р), а нет инерции - значит резче повороты и проще ПИДы.
Драйвер TB6612FNG
К нему мы пришли не сразу, сначала мы начали использовать Wemos Motor Shield, который также основан на TB6612FNG. О нем я расскажу тут отдельно, но в целях эээээкономии мы быстренько перешли на "голый" TB6612FNG.
Работа с TB6612FNG чуть сложнее чем с MX1508. Для управления мотором, а их также можно подключить сразу два, в драйвере TB6612FNG используется сразу три пина (Ain1, Ain2 и PWM-A) для каждого мотора, и еще один (STBY) для всего драйвера. Комбинация этих 4-х пинов и задает все наши режимы работы мотора, а их тут есть... По- и против-часовой, свободный выбег и собственно сам СТОП, вот они все в таблице:
подключение
Моторы подключаются к:
- Ao1 и Ao2 - пины подключения мотора "А"
- Bo1 и Bo2 - пины подключение мотора "В"
Вход управляющего сигнала:
- Ain1 и Ain2 - так же как и на MX1508 отвечают за направление вращения мотора, но не регулируют скорость(!). Принимают только 0 или 1.
- PWMA - вот он-то и отвечает за скорость вращения, принимает ШИМ-сигнал от МК.
тоже самое с линией "B".
отдельно, особняком, стоит пин STBY - отвечает за работу самого чипа TB6612FNG, если на него подать 1 (HIGH) - чип активен (включен) и драйвер управляет моторами, или на него можно подать 0 (LOW) и это отключит драйвер.
линия питания:
GND - их тут сразу три! но нам нужно только два, 3-й сделали явно по остаточному принципу, есть дырка отверстие, нужно чтобы что-то там было. Итого, один пин GND мы подключаем к GND источника питания моторов, а второй к МК. Какой куда БЕЗ разницы, они все соединены.
VCC - это "+" от МК, 3,3в или 5в.
VM - это "+" от источника питания моторов! и тут внимание аж до 15 вольт! хотя в некоторых источниках пишут что до 13,5, но нам то всего 12 нужно ;)
Слабые стороны драйвера
1. цена, 450р! тот же MX1508 стоит 90р, а DRV8833 у которого также есть тормоз - 95р.
2. легко вывести из строя, вообще не терпит КЗ и переполюсовок. А с учетом первого пункта - это трагедия для кружка, дети кладут их пачками.
3. сразу заняты семь контактов МК! для некоторых проектов это терпимо, но а если вам нужно 4 мотора или еще больше?
По итогу, драйвер мы используем только для соревнований, а учимся на дешевых MX1508 и DRV8833, а вот если нам нужно экономить контакты то мы берем нашего сегодняшнего героя - TB6612FNG с подключением по i2c, о нем будет моя следующая статья!
Другие интересные статьи и уроки вы найдете тут.