цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Как управлять двигателем постоянного тока с помощью микроконтроллера AVR ATmega



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

Автор: Mike(admin) от 30-04-2019, 19:55

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


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

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


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


В этом проекте работа двигателя постоянного тока будет продемонстрирована с помощью микроконтроллера Atmega16. Драйвер двигателя L293D будет использоваться для изменения направления тока и направления движения. Драйвер двигателя L293D использует конфигурацию цепи H-мост, которая выводит необходимый ток на двигатель. Две кнопки используются для выбора направления двигателя. Одна кнопка используется для выбора вращения по часовой стрелке, а другая – для выбора режима против часовой стрелки.


Драйвер двигателя L293D

Схема подключения микроконтроллера ATmega, драйвера L293D и двигателя постоянного тока следующая.


Схема подключения микроконтроллера ATmega, драйвера L293D и двигателя постоянного тока

Теперь перейдем к программированию микроконтроллера. В данном случае Atmega16 программировался с использованием USBASP и Atmel Studio7.0.


Двигатель постоянного тока подключается через драйвер двигателя L293D. Двигатель постоянного тока будет вращаться в двух направлениях при нажатии соответствующей кнопки. Одна кнопка будет использоваться для вращения двигателя постоянного тока в направлении по часовой стрелке, а другая кнопка будет использоваться для вращения двигателя постоянного тока в направлении против часовой стрелки. В данном случае у нас используются две библиотеки io.h и delay.h.


Полный код программы приводится далее, просто загрузите программу в Atmega16 и используйте две кнопки для вращения двигателя постоянного тока по часовой стрелке и против часовой стрелки.



#define F_CPU 16000000UL       // определим частоту процессора
#include<avr/io.h>
#include<util/delay.h>
 
int i;        // определим переменную для сравнения
int main(void)
{   
//DDR Data Direction Register
DDRA = 03;                        // сделать вывод PORTA0,1 в качестве выхода и Rest в качестве ввода
PORTA &= ~(1<<1);                // сначала установим низкий уровень PORTA1, чтобы избежать движения перед выбором кнопки
PORTA &= ~(1<<0); // сначала установим низкий уровень PORTA0, чтобы избежать движения перед выбором кнопки
 
while(1)
{
if(!bit_is_clear(PINA,4)) // проверить, нажата ли кнопка PORTA4
{
i = 1;               // сохранить статус как 1
PORTA &= ~(1<<1);
_delay_ms(1000);  
}
else if (!bit_is_clear(PINA,5))   // проверить, нажата ли кнопка PORTA5
{
  i = 2;                  // сохранить статус как 2
  PORTA &= ~(1<<0);
  _delay_ms(1000);
}
 
if (i == 1)              // если 1-я кнопка нажата
{
PORTA |= (1<<0); // вращаться по часовой стрелке
PORTA &= ~(1<<1);
}
else if (i == 2)         // если 2-я кнопка нажата
{
PORTA |= (1<<1); // вращать против часовой стрелки
PORTA &= ~(1<<0);
}
 
}
}

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

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




© digitrode.ru


Теги: AVR, ATmega, Двигатель постоянного тока




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий