Общие сведения:
Trema-модуль Драйвер мотора - модуль собранный на основе чипа L9110, что позволяет управлять коллекторными моторами с током потребления до 300 мА.
Видео:
Редактируется ...
Спецификация:
- Напряжение питания локиги модуля: 5 В;
- Напряжение питания мотора: 2,5 - 12 В;
- Ток потребляемый модулем без нагрузки: < 50 мкА;
- Номинальный ток нагрузки: 300 мА;
- Интерфейс:
- Логический уровень 5V;
- Вывод D (Direction) Направление - цифровой;
- Вывод S (Speed) Скорость - ШИМ.
- Рабочая температура: от 0 до +80 °С.
- Габариты: 30 х 30 мм.
- Вес: 6 г.
Все модули линейки "Trema" выполнены в одном формате
Назначение выводов:
На плате модуля имеется колодка для подключения к Arduino и винтовой клеммник для подключения мотора и его питания.
Колодка для подключения к Arduino:
Колодка имеет 4 вывода обозначенные буквами G, V, S, D.
- D (Direction) - Направление. Выбирается логическим уровнем (0/1).
- S (Speed) - Скорость. Устанавливается сигналом ШИМ.
- V (Vcc) - Питание логики модуля (+5В).
- G (GND) - Общий вывод питания.
Винтовой клеммник:
Клеммник позволяет подключить мотор и его питание.
- VIN - Два вывода для подключения питания мотора с указанной полярностью.
- MOT - Два вывода для подключения мотора.
Подключение:
Модуль удобно подключать 3 способами, в зависимости от ситуации:
Способ - 1: Используя провода и Piranha UNO
| Вывод Arduino | Вывод модуля |
|---|---|
| 2 (можно использовать любой вывод) | D |
| 3 (можно использовать только вывод с ШИМ: 3,5,6,9,10,11) | S |
| 5V | V |
| GND | G |

Способ - 2: Используя Trema Set Shield
Модуль можно установить в любую из трёх верхних ячеек, с номерами 1, 3 или 5.
В зависимости от выбранной ячейки, нужно изменить номера выводов в примерах.
| Номер ячейки Trema Set Shield | Вывод DIR_PIN | Вывод PWM_PIN |
|---|---|---|
| 1 | 10 | 6 |
| 3 | 9 | 3 |
| 5 | 13 | 11 |

Способ - 3: Используя провода и Shield
| Вывод Shield'а | Вывод модуля |
|---|---|
| 2 (можно использовать любой вывод) | D |
| 3 (можно использовать только вывод с ШИМ: 3,5,6,9,10,11) | S |
| Vcc | V |
| GND | G |

Подключение внешнего источника и нагрузки
При любом из вариантов выше, возможно два способа подключения нагрузки.
С питанием от отладочной платы Arduino
При таком подключении мотор будет питаться от 5 вольт, через провода подключения к отладочной плате.

С питанием от внешнего источника
При таком подключении мотор будет питаться от внешнего источника питания от 2,5 до 12 вольт.

Питание:
Входное напряжение питания 5В постоянного тока, подаётся на выводы V и G.
Подробнее о модуле:
Модуль позволяет управлять скоростью и направлением вращения коллекторных моторов с потреблением тока до 300 мА. Модуль собран на базе чипа L9110, в отличии от подобных модулей на данном чипе в нём реализована активная развязка управляющего сигнала, что позволит не нагружать выводы Arudino.
Примеры:
Изменение направления вращения
В данном примере мотор будет вращаться сначала в одну сторону с максимальной скоростью в течении двух секунд, затем остановится на одну секунду и начнёт вращаться в другую.
// Определяем выводы подключения 2 - направление, 3 - скорость
#define DIR_PIN 2
#define PWM_PIN 3
// Создаём переменную направления
bool dir = false;
void setup()
{
// Устанавливаем выводы в режиме выходов
pinMode(DIR_PIN, OUTPUT);
pinMode(PWM_PIN, OUTPUT);
}
void loop()
{
// Устанавливаем ШИМ
analogWrite(PWM_PIN, 255);
// Устанавливаем направление, заданное переменной dir
digitalWrite(DIR_PIN, dir);
// Ждём 2 секунды
delay(2000);
// Выключаем мотор
analogWrite(PWM_PIN, 0);
// Ждём секунду
delay(1000);
// Меняем направление
dir = !dir;
}
Плавный старт
В данном примере мотор будет плавно набирать скорость вращения, а затем так же плавно останавливаться.
// Определяем выводы
#define DIR_PIN 2
#define PWM_PIN 3
// Определяем максимальную ШИМ
#define MAX_SPEED 255
void setup()
{
// Устанавливаем выводы в режим выхода
pinMode(DIR_PIN, OUTPUT);
pinMode(PWM_PIN, OUTPUT);
// Устанавливаем направление вращения
digitalWrite(DIR_PIN, HIGH);
}
void loop()
{
// Медленно приращиваем скорость при помощи ШИМ
for (uint8_t speed = 0; speed < MAX_SPEED; speed++) {
analogWrite(PWM_PIN, speed);
delay(10);
}
// Выходим на максимальную скорость
analogWrite(PWM_PIN, MAX_SPEED);
delay(1000);
// Медленно сбавляем скорость
for (uint8_t speed = MAX_SPEED; speed > 0; speed--) {
analogWrite(PWM_PIN, speed);
delay(10);
}
// Выключаем мотор
analogWrite(PWM_PIN, 0);
delay(1000);
}

Обсуждение