Изучаем Arduino: инструметы и методы технического волшебства - [21]

Шрифт
Интервал

Листинг 4.2. Регулирование скорости двигателя - motor_pot.ino

const int MOTOR=9;

const int POT=0;

int val = 0;

// Вывод 9 Arduino для подключения двигателя

// Вывод A0 Arduino для подключения потенциометра


void setup()

{

pinMode (MOTOR, OUTPUT);

}

void loop()

{

val = analogRead(POT);

val = map(val, 0, 1023, 0, 255);

analogWrite(MOTOR, val);

}

- 91 -

4.8. Управление направлением вращения двигателя постоянного тока с помощью Н-моста

Вы научились изменять скорость вращения двигателя постоянного тока. Это позволит управлять движением робота, но лишь в том случае, если он будет двигаться только вперед. Однако любой двигатель постоянного тока способен вращаться в двух направлениях. Для изменения направления вращения применим устройство, называемое H-мостом. Принцип работы H-моста поясняет схема, изображенная на рис. 4.5.


Рис. 4.5. Схема работы Н-моста


Почему схема называется H-мостом? Ответ прост. Обратите внимание, что изображение двигателя в сочетании с четырьмя переключателями похоже на прописную букву "И". Хотя на схеме изображены просто выключатели, на самом деле это транзисторы, подобные тем, которые были в предыдущем примере. В реальной схеме H-моста также есть некоторые дополнительные цепи, в том числе защитные диоды.

И-мост может находиться в четырех основных состояниях: "выключен", "торможение", "вперед" и "назад". В выключенном состоянии все выключатели разомкнуты и двигатель не вращается. В состоянии "вперед" два выключателя замкнуты, в результате через обмотку двигателя течет ток и вал вращается. В состоянии "назад"

ток течет в противоположном направлении, и направление вращения вала обратное.

Если H-мост находится в состоянии торможения, то обмотка замкнута, вращение замедляется и двигатель останавливается.

Необходимо помнить об опасности короткого замыкания цепей H-моста. Что произойдет, если все четыре выключателя будут замкнуты? Это вызовет короткое замыкание между шиной +9 В и землей. В результате батарея очень быстро нагреется, что может привести к ее разрыву. Кроме того, короткое замыкание может повредить H-мост или другие элементы схемы.

Для нашего эксперимента выберем микросхему SN754410- четырехканальный драйвер И-полумоста, которая имеет встроенную защиту от короткого замыкания.

- 92 -

4.9. Сборка схемы Н-моста

Настала пора собрать схему H-моста. Возьмем микросхему SN754410-четырехканальный драйвер Н-полумоста. Два драйвера Н-полумоста образуют полный драйвер H-моста, как на рис. 4.5. Для управления одним электродвигателем постоянного тока используются два из четырех драйверов Н-полумоста. Если вы хотите сделать, например, радиоуправляемый автомобиль, можно управлять двумя колесами с помощью одной микросхемы SN754410. На рис. 4.6 приведена цоколевка микросхемы SN754410.


Рис. 4.6. Цоколевка микросхемы SN754410

Нумерация контактов на микросхемах начинается с левого верхнего угла и идет против часовой стрелки. На корпусе всегда имеется метка у контакта 1 (полукруг, точка или что-то другое).

Соответствие состояний входов и выходов драйвера SN754410 иллюстрирует табл. 4.1 (условные обозначения в таблице: Н - высокий уровень; L - низкий уровень; Х -безразличное состояние; Z -высокоимпедансное состояние).

Таблица 4.1. Состояния входов и выходов драйвера SN754410

Рассмотрим назначение контактов микросхемы SN754410:

• GND (контакты 4, 5, 12, 13)-выводы для подключения к земляной шине монтажной платы;

• Vcc2 (контакт 8)-напряжение питания двигателя (подсоедините к 9 В);

• Vccl (контакт 16)-напряжение питания микросхемы (подсоедините к 5 В);

- 93 -

• 1У и 2У (контакты 3 и 6) - выходы для подключения первого двигателя;

• IA и 2А (контакты 2 и 7)- коммугация первого двигателя, эти выводы соединены с управляющими контактами Arduino;

1,2 EN (контакт 1)- включение и отключение левого драйвера. Данный вывод соединен с ШИМ-контактами на плате Arduino, что позволяет динамически регулировать скорость двигателей;

• ЗУ и 4У (контакты 11 и 14)- выходы для подключения второго двигателя;

• Батарея

• Н-мост

• Двигатель постоянного тока

Рис. 4.7. Схема подключения Н-моста

- 94 -

ЗА и 4A (контакты 10 и 15)- коммутация второго двигателя, эти выводы соединены с управляющими контактами Arduino;

• 3,4 EN (контакт 9) - вывод включения или отключения правого драйвера. Он соединен с ШИМ-контактами на Arduino, что позволяет динамически регулировать скорость двигателей.

Проверьте монтаж по рис. 4.7. Потенциометр подключим позже.

Прежде чем приступать к программированию, проверим работоспособность схемы.

Подключите один из входных контакто? (2 или 7) микросхемы H-моста к шине 5 В, другой к земле. Двигатель начнет вращаться. Поменяйте подключение контактов 2 и 7, двигатель будет вращаться в другую сторону.

ВНИМАНИЕ!

Во время переключения контактов отключите батарею, чтобы случайно не вызвать короткое замыкание моста.

4.10. Управление работой Н-моста

Напишем программу для управления скоростью и направлением вращения двигателя с помощью потенциометра и драйвера H-моста. Установка движка потенциометра в среднее положение приводит к остановке двигателя, при перемещении движка вправо скорость вращения вала двигателя увеличивается, перемещение движка влево от среднего положения приводит к увеличению скорости вращения вала двигателя в обратном направлении. В программе будут три вспомогательные функции: первая - для остановки двигателя, вторая - для вращения двигателя с заданной скоростью и третья - для вращения двигателя с заданной скоростью в обратном направлении.