Статья о четырехканальном драйвере моторов RKP-MDS-L293D на двух микросхемах L293D. Электрическая схема, функциональная диаграмма, подключение к Ардуино, подключение DC-моторов, примеры программного кода.
Подключение драйвера RKP-MDS-L293D Motor Shield L293D к Arduino UNO
Модуль управления моторами RKP-MDS-L293D на микросхемах L293D предназначен для управления различными типами двигателей - постоянного тока (до 4-х шт.), сервомоторов (до 2-х шт.) и шаговых двигателей (до 2-х шт.) совместно с Arduino.
Электрическая схема драйвера.

На электрической схеме драйвера RKP-MDS-L293D Motor Driver L293D видно, что режимы управление двигателями постоянного тока и шаговыми двигателями осуществляется через микросхему 74HCT595N (см. рис. 1).
Функциональная диаграмма микросхемы 74HCT595N

Это регистр последовательного сдвига с защелкой.
Скачать библиотеку AFMotor Motor shield =>>
В библиотеке AFMotor Motor shield определены pin для драйвера RKP-MDS-L293D по которым осуществляется установка режимов управление моторами:
// Arduino pin names for interface to 74HCT595 latch #define MOTORLATCH 12 = DIR_LATCH // pin 12 Arduino #define MOTORCLK 4 = DIR_CLK // pin 4 Arduino #define MOTORENABLE 7 = DIR_EN // pin 7 Arduino #define MOTORDATA 8 = DIR_SER // pin 8 Arduino
За изменение скорости вращения двигателей отвечаю цепи PWM0A, PWM0B, PWM1A, PWM1B, PWM2A и PWM2B микросхем драйверов двигателей L293D (см. рис. 2).

Соответствие pin драйвера моторов L293D и pin Arduino Uno приведены в таблице 1.

А назначение управляющих битов регистра 74HCT595N для моторов 1- 4 в таблице 2.
Из таблицы 2 видно, чтобы заставить Мотор 1 работать на max скорости нужно в регистр передать byte у которого bit 2 = 1 и bit 3 = 0, а чтобы поменять вращение на противоположное – bit 2 = 0 и bit 3 = 1.
!!Еще одна важная особенность!!!
Питание сервомоторов осуществляется от платы Arduino 5 Вольт. Если сервомоторы потребляют больший ток чем может выдать источник питания Arduino, то всё устройство начинает «глючить».
Это может случиться даже с небольшими серводвигателями, если их где-то заклинит. Тогда ток потребления может возрасти до 0,8-1А. Поэтому питать серводвигатели лучше от дополнительного источника питания.
Подключение питания
Питание моторов подключенных к драйверу RKP-MDS-L293D может осуществляется не сколькими способами:
1. От одного источника питания.
В этом случае питание подается на разъем Arduino 6-12В и с выхода линейного стабилизатора происходит питание цифровых схем Arduino и сервомоторов. Далее питание 6-12В через контакт Vin и установленный джампер, подается на драйвер RKP-MDS-L293D для питания остальных типов моторов.
2. От двух источников питания.
Для этого необходимо снять джампер источника питания. В этом случае источник питания подключенный к разъем у Arduino 6-12В обеспечивает ее работу, цифровых схем драйвера RKP-MDS-L293D и питание серво двигателей. А второй источник питания 4.5-25В - питание двигателей постоянного тока и шаговых двигателей (см. рис. 3).

Схема подключения двигателей к драйверу RKP-MDS-L293D Motor Driver L293D
Подключение моторов постоянного тока (4 DC Motors)
Драйвер RKP-MDS-L293D позволяет одновременно подключить до 4-х двигателей постоянного тока (см. рис. 4).

Подключение шаговых двигателей к драйверу RKP-MDS-L293D Motor Driver L293D
Драйвер Motor Shield L293D позволяет одновременно подключить до 2-х шаговых двигателей (см. рис. 5).
