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

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

4.4. Назначение защитных диодов

Одна из проблем электродвигателей постоянного тока - наличие противо-ЭДС.

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

- 87 -

4.5. Назначение отдельного источника питания

В схеме, изображенной на рис. 4.1, двигатель подключен к отдельному источнику напряжением 9 В, а не к контакту 5 В разъема USB. Для данного примера подойдет также внешний источник с напряжением 5 В. Внешний источник питания необходим по двум причинам:

• уменьшается вероятность повреждения платы Arduino при неправильном подключении электродвигателя;

• ток и напряжение могут быть больше, чем обеспечивает встроенный в Arduino источник питания.

Некоторые двигатели постоянного тока потребляют ток, больший, чем может выдать плата Arduino. Кроме того, рабочее напряжение многих двигателей превышает 5 В. Хотя они и будут вращаться при напряжении 5-вольтовом питании, но достичь заданной скорости вращения могут только при питании 9 или 12 В (в зависимости от технических характеристик двигателя).

ВНИМАНИЕ!

Обратите внимание, что необходимо соединить землю отдельного источника питания с землей Arduino. Это обеспечит общую точку между уровнями напряжения в двух частях схемы.

4.6. Подключение двигателя

Теперь, когда мы рассмотрели все тонкости управления щеточным двигателем постоянного тока, установим его макетную плату и подключим. Соберите схему, изображенную на рис. 4.1, а затем проверьте правильность монтажа по рис. 4.3. Важно научиться хорошо читать электрические схемы без использования графического макета.

Перед включением питания проверьте следующее:

• убедитесь, что земля от батареи 9 В соединена с землей платы Arduino, для этого можно общую шину земли на макетной плате, как показано на рис. 4.3;

• убедитесь, что провод питания +9 В не подключен к проводу питания +5 В;

• убедитесь, что транзистор подключен правильно;

• убедитесь, что диод включен правильно; конденсатор керамический, для него полярность не имеет значения.

Пришло время заставить двигатель вращаться. На вал двигателя можно прикрепить кусочек клейкой ленты, чтобы оценить скорость вращения. Перед написанием программы необходимо проверить работу схемы. Подсоединим батарею, подадим питание на плату Arduino через USB-кабель, подключим базу транзистора к выводу +5 В, это имитирует высокий логический уровень на выходном контакте Arduino.

Вал двигателя должен начать вращаться. При подключении базы транзистора

- 88 -

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


Рис. 4.3. Подключение двигателя постоянного тока

4.7. Управление скоростью вращения двигателя с помощью шимпрограмма для управления скоростью вращения двигателя (листинг 4.1) будет похожа на программу регулировки яркости светодиодов ночника из главы 3. Появление на выходе платы Arduino ШИМ-сигнала вызывает быстрый запуск и остановку двигателя с разным периодом, что эквивалентно изменению скорости вращения.

- 89 -

Листинг 4.1. Автоматическое управление скорость двигателя - motor.ino

// Пример управления скоростью вращения двигателя


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


void setup()

{

pinMode (MOTOR, OUTPUT);

}

void loop()

{

for (int i=0; i<256; i++)

{

analogWrite(MOTOR, i);

delay(10);

}

delay(2000);

for (int i=255; i>=0; i--)

{

analogWrite(MOTOR, i);

delay (10);

}

delay(2000);

}

Если все собрано правильно, то после запуска программы скорость вращения двигателя сначала плавно увеличится, а затем уменьшится. На основе описанного проекта можно сконструировать, например, макет движущегося робота.

Воспользуемся нашими знаниями аналоговых датчиков и попробуем вручную управлять скоростью вращения вала двигателя с помощью потенциометра. Подсоединим потенциометр к аналоговому входу A0, как показано на рис. 4.4. Обратите внимание, что контакт Arduino 5 В необходимо соединить с шиной питания на макетной плате.

Теперь изменим программу так, чтобы управлять скоростью вращения двигателя, регулируя положение ручки потенциометра. При полностью выведенном движке потенциометра двигатель остановлен, при полностью введенном - вал двигателя вращается с максимальной скоростью. Не забывайте, что контроллер Arduino работает очень быстро, цикл повторяется несколько тысяч раз в секунду! Поэтому малейшее изменение положения движка потенциометра сразу же сказывается на частоте вращения двигателя. Описанный алгоритм реализует программный код, приведенный в листинге 4.2. Загрузите программу в плату Arduino и регулируйте скорость вращения двигателя с помощью потенциометра.

- 90 -



Рис. 4.4 Схема подключения потенциометра для регулировки скорости вращения