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

 
» » » Как управлять двигателем постоянного тока с помощью микроконтроллера 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, Двигатель постоянного тока



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

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

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