- •1 Общая часть проекта
- •Разработка технического задания
- •1.2 Разработка схемы электрической структурной устройства
- •1.3 Выбор элементной базы
- •1.4 Разработка схемы электрической принципиальной устройства
- •1.5 Разработка схемы электрической принципиальной макета устройства
- •2 Специальная часть проекта
- •2.1 Разработка алгоритма работы устройства
- •2.2 Разработка и отладка программного обеспечения устройства
- •Список использованных источников
1.5 Разработка схемы электрической принципиальной макета устройства
Макет устройства предназначен для проверки работы и отладки программного обеспечения устройства, поэтому в нём применены следующие упрощения.
Свечение светодиодов HL1 «Вперед» и HL2 «Назад» сигнализирует о срабатывании контакторов КМ1 и КМ 2 соответственно.
Схема электрическая принципиальная макета представлена в приложении В. Работает устройство следующим образом. После подачи напряжения питания на плату Arduino устройство переходит в дежурный режим, горит светодиод HL3 «Стоп». Для вывода из дежурного режима нужно нажать на кнопку SB1 “Вперед” или SB2 “Назад”.
При нажатии кнопки SB1 “Вперед” на вывод D9 платы А2 подается напряжение 5В, плата обрабатывает сигнал, и она формирует на выводе D6 питание для включения светодиода HL1 «Вперед». Это сигнализирует о том, что ДПТ подключается к сети и начинается его разгон в одну сторону. На выводах D5, D6 снимается питание для отключения светодиодов HL2 “Назад” и HL3 “Стоп”. Далее плата среагирует только на кнопку SB3 «Стоп» или на срабатывание контакта датчика перегрузки.
Изменение направления вращения двигателя возможно только после его остановки, что предусмотрено кодом программирования платы. Остановка осуществляется нажатием кнопки SB3 «Стоп»: на вывод D7 платы А2 подается напряжение 5В, плата обрабатывает сигнал, и на выводах D6 и D5 формируется питание для выключения светодиодов HL1 «Вперед», HL2 «Назад». Это сигнализирует о том, что двигатель отключен от сети. Произойдет остановка двигателя, сформируется задержка в 2 секунды.
При нажатии кнопки SB2 “Назад” на вывод D8 платы А2 подается напряжение 5В, плата обрабатывает сигнал, и она формирует на выводе D5 питание для включения светодиода HL2 “Назад”. Это сигнализирует о том, что ДПТ подключается к сети и начинается его разгон в другую сторону. На выводах D6, D4 формируется питание для отключения светодиодов HL1 «Вперед», HL3 «Стоп» .
К выводу D10 микросхемы А2 подключен резистор R1 и контакт KA1.1. Как только датчик будет достигать определенных значений, плата А2 будет снимать на выводах D6 и D5 питание для отключения светодиодов HL2 “Назад” и HL1 “Вперед” и подаст питание для включения светодиода HL4 «Перегрузка». Это сигнализирует о том, что сработала защита.
Макет
устройства реверсирования ДПТ представлен
на рисунке 1.3.
Рисунок 1.3 – Макет устройства реверсирования ДПТ.
Для выбора типа блока питания А1, произведём ориентировочный расчёт потребляемого тока макетом устройства реверсирования ДПТ. Плата А2 и соответственно макет устройства потребляет ток:
.
мА.
2 Специальная часть проекта
2.1 Разработка алгоритма работы устройства
Рисунок 2.1 – Алгоритм работы устройства
2.2 Разработка и отладка программного обеспечения устройства
int up = 9; //Вывод 9 для подключения кнопки SB1 "Вперед"
int down = 8; //Вывод 8 для подключения кнопки SB2 "Назад"
int stop = 7; //Вывод 7 для подключения кнопки SB3 "Стоп"
int over = 10; //Вывод 10 для подключения кнопки SA1 "Датчик перегрева"
int uled = 6; //Вывод 6 для подключения светодиода HL1 "Вперед"
int dled = 5; //Вывод 5 для подключения светодиода HL2 "Назад"
int sled = 4; //Вывод 4 для подключения светодиода HL3 "Стоп"
int oled = 11; //Вывод 11 для подключения светодиода HL4 "Перегрузка"
byte a = 0; //Вспомогательная переменная определяющая направление
byte b = 0; //Вспомогательная переменная определяющая перегрузка
byte c = 0; //Вспомогательная переменная обозначивает стопор
void setup() {
/* Сконфигурировать выводы платы, к которым подключены кнопки как входы */
pinMode(up, INPUT_PULLUP);
pinMode(down, INPUT_PULLUP);
pinMode(stop, INPUT_PULLUP);
pinMode(over, INPUT_PULLUP);
/*Сконфигурировать выводы платы, к которым подключены светодиоды как выходы */
pinMode(uled, OUTPUT);
pinMode(dled, OUTPUT);
pinMode(sled, OUTPUT);
pinMode(oled, OUTPUT);
}
void loop() {
if (a == 0 && b == 0)
{
digitalWrite(sled, HIGH);
c = 1;
}
if (digitalRead(up) == LOW && a == 0 && b == 0 && c == 1) /* если произошло нажатие кнопки SB1 "Вперед" */
{
digitalWrite(uled, HIGH); //Загорается HL1
digitalWrite(dled, LOW); //Гаснет HL2
digitalWrite(sled, LOW); //Гаснет HL3
a = 1;
c = 0;
delay(2000);
}
if (digitalRead(down) == LOW && a == 0 && b == 0) /* если произошло нажатие кнопки SB2 "Назад" */
{
digitalWrite(dled, HIGH); //Загорается HL2
digitalWrite(uled, LOW); //Гаснет HL1
digitalWrite(sled, LOW); //Гаснет HL3
a = 1;
c = 0;
delay(2000);
}
if (digitalRead(stop) == LOW) /* если произошло нажатие кнопки SB3 "Стоп" */
{
digitalWrite(sled, HIGH); //Загорается HL3
digitalWrite(uled, LOW); //Гаснет HL1
digitalWrite(dled, LOW); //Гаснет HL2
digitalWrite(oled, LOW); //Гаснет HL4
a = 0;
b = 0;
c = 1;
delay(2000);
}
if (digitalRead(over) == LOW) // если произошло нажатие KA1.1
{
digitalWrite(oled, HIGH); //Загорается HL4
digitalWrite(uled, LOW); //Гаснет HL1
digitalWrite(dled, LOW); //Гаснет HL2
digitalWrite(sled, LOW); //гаснет HL3
b = 1;
c = 0;
delay(2000);
}
}
Заключение
В данном курсовом проекте была произведена модернизация устройства реверсирования двигателя постоянного тока, разработаны схемы структурная и принципиальная устройства, макетная схема устройства, а также был разработан алгоритм программы и программный код для микропроцессорной системы управления. По итогу курсового проекта удалось частично избавиться от электромеханических коммутационных устройств заменив их более современным устройством – электронным блоком управления на базе микроконтроллерной системы.
Разработанное устройство полностью отвечает требованиям технического задания.
