Лабораторная работа по дисциплине «Основы микропроцессорной техники» направление 130302 на тему: «Применение микроконтроллера ATmega328 для схемы реверса электродвигателя»
Секция: Технические науки
VII Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»
Лабораторная работа по дисциплине «Основы микропроцессорной техники» направление 130302 на тему: «Применение микроконтроллера ATmega328 для схемы реверса электродвигателя»
Laboratory work on the discipline "Fundamentals of microprocessor technology" direction 130302 on the topic: "Application of the microcontroller ATmega328 for the motor reverser circuit"
Sadkov Kirill Olegovich
student, Armavir Mechanical and Technological Institute, (branch) of the Kuban State Technological University, Russia, Armavir
Monogarov Sergey Ivanovich
scientific adviser, candidate of engineering sciences, associate professor in Armavir Mechanical and Technological Institute, (branch) of Kuban State Technological University, Russia, Armavir
Аннотация. В настоящее время применение различных микроконтроллеров в схемах автоматизации производства приобретает повсеместный характер. Однако сложность языков программирования и большая цена блоков управления ограничивает студентов в их изучении. В данной статье рассмотрен пример изучения схемы автоматизации с применением микроконтроллера ATmega328, который во многом по своим характеристикам подобен своим промышленным аналогам, но значительно меньше по себестоимости.
Abstract. Currently, the use of various microcontrollers in the schemes of automation of production is becoming ubiquitous. However, the complexity of programming languages and the large price of control units restricts students in their study. In this article, an example of studying the automation scheme using the ATmega328 microcontroller is considered, which in many respects is similar in its characteristics to its industrial counterparts, but much less at cost.
Ключевые слова: автоматизация; микроконтроллер; ATmega328; реверсивный пускатель; реле; электродвигатель.
Keywords: automation; microcontroller; ATmega328; reversing starter; relay; electric motor.
Обучение студентов энергетиков направления 13.03.02 программированию микропроцессорной техники проще всего начать со схемы уже известной им, а именно со схемы релейно-контакторной логики реверсивного пускателя. Это обеспечит преемственность в изучении предметов и приведет аналог реализации принципа работы электромеханического аппарата при помощи современной цифровой электроники.
Рисунок 1. Схема реверсивного пускателя
Цель работы: изучение микроконтроллера ATmega 328, на примере его использования для схемы реверсивного пускателя.
В схеме применяются следующие компоненты:
· плата Arduino Uno
· плата для сборки Breadboard
· провода (типа “папа-папа” и “папа-мама”)
· тактовая кнопка 3 шт.
· резистор (10кОм) 3шт.
· сборная плата реле
· аккумуляторная батарея 7,5 В
· автоматический выключатель на 3 фазы
· двигатель трехфазный
В лабораторной роботе используется плата Arduino Uno. Данная плата построена на основе микроконтроллера ATmega328. У платформы имеет 14 цифровых выводов, которые могут использоваться как для передачи, так и для приема сигнала (так же из 6 них могут использоваться как ШИМ выходы), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопка перезагрузки. Для работы платформу необходимо подключить к внешнему источнику питания посредством кабеля USB, либо использовать AC/DC адаптер или аккумуляторную батарею.
Таблица 1.
Характеристики платы Arduino Uno
Микроконтроллер |
ATmega328 |
Рабочее напряжение |
5 В |
Рекомендуемое входное напряжение |
7-12 В |
Предельное выходное напряжение |
6-20 В |
Цифровые Входы/Выходы |
14 (6 из которых могут использоваться как выходы ШИМ) |
Аналоговые выходы |
6 |
Постоянный ток через вход/выход |
40 мА |
Постоянный ток для вывода 3.3 В |
50 мА |
Внутренняя память |
32 Кб из которых 0.5 Кб используются для загрузчика |
ОЗУ |
2 Кб |
EEPROM |
1 Кб |
Тактовая частота |
16 МГц |
Рисунок 2. Схема реверсивного пускателя, управляемая платой Arduino Uno
Для создания силовой части схемы реверса используется блок реле. Он собран на отдельной плате и состоит из восьми магнитных реле (имеющих нормально-замкнутые и нормально-разомкнутые контакты), выводов для их управления и двух силовых выводов (12 В и ноль), предназначенных для питания катушек реле. Двигатель подключён по схеме «звезда».
В установке задействовано пять. Реле №1 применяется для подключения фазы А, реле по номерами 2-3 и 4-5 используются попарно для переключения двух оставшихся обмоток двигателя между фазами В и С. При включении реле под номерами 1,2,3 порядок фаз будет соответственно А,В,С и двигатель будет вращаться по часовой стрелке. При задействовании реле под номерами 1,3,5 порядок фаз: А,С,В. Как результат вращение против часовой стрелки.
Рисунок 3. Монтажная схема установки
Нетрудно заметить, что при случайном подключении всех реле произойдет короткое замыкание. В «классической схеме» реверса используются нормально-замкнутые контакт магнитных пускателей для реализации механической защиты от одновременного включения. В рассматриваемой нами схеме защита была реализована в программном коде путем введения дополнительной переменной. Этой переменной, при включении одного из режимов, присваиваться значение отличное от нуля что не позволяет включить другой режим. При отключении, путем нажатия копки «Стоп», переменная обнуляется.
Рисунок 4. Схема подключения двигателя
Код программы управления:
int in1 = 8; «вывод реле 1 на вывод 8»
int in2 = 9; «вывод реле 2 на вывод 9»
int in3 = 10; «вывод реле 3 на вывод 10»
int in4 = 11; «вывод реле 4 на вывод 11»
int in5 = 12; «вывод реле 5 на вывод 12»
int but1 = 5; «кнопка “По часовой” на вывод 5»
int but2 = 6; «кнопка “Против часовой” на вывод 6»
int but3 = 4; «кнопка “Стоп” на вывод 4»
int flag = 0; «дополнительная переменная»
void setup() «команда инициализирующая порты, переменные и т.д.»
{
pinMode(in1, OUTPUT); «при OUTPUT, контакт устанавливается как выход»
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(in5, OUTPUT);
pinMode(but1, INPUT); «при INPUT, контакт устанавливается как вход»
pinMode(but2, INPUT);
pinMode(but3, INPUT);
digitalWrite(in1, HIGH); «при HIGH, на контакты податься напряжение»
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
digitalWrite(but1, LOW); «при LOW, на контактах напряжение отсутствует»
digitalWrite(but2, LOW);
digitalWrite(but3, LOW);
}
void loop() «бесконечный цикл»
{
if (digitalRead(but1) == HIGH && flag == 0) «если нажата кнопка “По часовой” и дополнительная переменная равна нулю»
{
digitalWrite(in1, LOW); «включается реле1»
digitalWrite(in2, LOW); «включается реле2»
digitalWrite(in3, LOW); «включается реле3»
flag=1; «дополнительная переменная приравнивается к единице»
}
if (digitalRead(but3) == HIGH) «если нажата кнопка «Стоп»
{
digitalWrite(in1, HIGH); «выключается реле 1»
digitalWrite(in2, HIGH); «выключается реле 2»
digitalWrite(in3, HIGH); «выключается реле 3»
digitalWrite(in4, HIGH); «выключается реле 4»
digitalWrite(in5, HIGH); «выключается реле 5»
flag=0; «дополнительная переменная приравниваться к нулю»
}
if (digitalRead(but2) == HIGH && flag == 0 «если нажата кнопка «Против часовой» и дополнительная переменная равна нулю»
{
digitalWrite(in1, LOW); «включается реле 1»
digitalWrite(in4, LOW); «включается реле 4»
digitalWrite(in5, LOW); «включается реле 5»
flag=2; «дополнительная переменная приравниваться к двойке»
}
}
Реле, использованные в сборной плате, допускают коммутацию напряжения до 250В и токов до 10А в сети переменного тока. Это допускает применение данных реле для подключения нагрузки до 2 кВт. Преимуществом данной релейной сборки является низкое управляющее напряжение, 5В.