
Лаба 1 / Лабораторная работа №1_Токарев_0421
.docx
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РАПС
отчет
по лабораторной работе № 1
по дисциплине «Микропроцессорные системы управления»
Тема: «Разработка прототипа микропроцессорной системы управления электроприводом малой мощности»
Студент гр. 0421 |
|
Токарев А.А. |
Преподаватель |
|
Татаринцев Н.И. |
Санкт-Петербург
2023
Цель работы
Закрепление теоретических знаний по современной цифровой и микропроцессорной технике; приобретение практических навыков по работе с микроконтроллерами; формирование умений проводить анализ использования микропроцессорных устройств, применительно к системам управления объектами электротехники и электроэнергетики, в частности электроприводам.
Состав используемого оборудования и его краткие характеристики
В качестве отладочного модуля в данной лабораторной работе используется Arduino Uno R3. Внешний вид отладочного модуля представлен на рисунке 1.
Рисунок 1 – Внешний вид Arduino Uno R3
Основные характеристики отладочного модуля:
-Микроконтроллер: ATmega328
-Напряжение питания: 5 В
-Входное напряжение (рекомендуемое): 7-12 В
-Входное напряжение (предельное): 6-20 В
-Цифровые выводы I/O: 14 линий (6 из них - ШИМ)
-Аналоговые входы: 6 (АЦП)
-Максимальный ток на выводе I/0: 20 мА (для каждого вывода)
-Максимальный ток на выводе 3,3V: 50 мА
-Тактовая частота: 16 МГц
Для управления электродвигателем в данной лабораторной работе используется преобразователь на базе микросхемы VNH2SP30. Внешний вид модуля представлен на рисунке 2.
Рисунок 2 – Внешний вид преобразователя VNH2SP30
Основные характеристики преобразователя:
-Диапазон напряжения питания: 5,5V … 16V.
-Номинальный\максимальный ток: 14A\30A
-Управление логическим уровнем 3,3 вольт
-Максимальная частота ШИМ: 20 кГц
Преобразователь имеет защиту от перегрева, защиту от перенапряжения и защиту по току.
Ход выполнения лабораторной работы
Соберем схему, соединив между собой отладочную плату и плату преобразователя,
подключив соответствующие контакты друг к другу. Подключим к силовым разъемам преобразователя электродвигатель постоянного тока. Модуль управления, используемый в данной работе, является сдвоенным, мы будем использовать только одну пару выходов для управления.
Напишем управляющую программу в среде разработки Arduino IDE.
Описание всех команд, присутствующих в коде:
void setup() – обязательная часть программы для Arduino. Выполняется один раз.
void loop() – обязательная часть программы Arduino. Выполняется в цикле.
#define – директива, которая позволяет задать значение переменной, при этом не занимая места в памяти микроконтроллера.
pinMode() - позволяет сконфигурировать направление цифровых контактов Arduino на вход или выход. Имеет два аргумента: первый аргумент – номер контакта, второй аргумент – input (вход) или output(выход).
digitalWrite() – устанавливает состояние выходного цифрового контакта (5 В или 0 В). Имеет два аргумента: первый аргумент – номер контакта, второй аргумент – значение, которое нужно задать контакту (HIGH – 5 В или LOW – 0 В.
analogWrite() – позволяет сформировать сигнал на некоторых контактах Arduino с помощью широтно-импульсной модуляции(ШИМ). На плате Arduino Uno, которая используется в данной лабораторной работе, ШИМ-сигнал поддерживают контакты 3, 5, 6, 9, 10, 11. Функция имеет два аргумента: первый аргумент – номер контакта, второй аргумент – 8-разрядное значение в диапазоне от 0 до 255, устанавливаемое на этом контакте.
delay() – позволяет установить задержку выполнения программы. Имеет один аргумент – время, в миллисекундах.
Листинг программы представлен в соответствующем разделе.
Загрузим программу в отладочную плату. Для этого подключим плату к компьютеру
помощью usb-кабеля, затем в среде Arduino IDE нажмем на кнопку «Загрузка», предварительно проверив во вкладке «Инструменты», что плата определилась как Arduino Uno.
Наблюдаем вращение двигателя в одну сторону, задержку в 2 секунды, а затем вращение
двигателя уже в другую сторону в бесконечном цикле.
Листинг управляющей программы контроллера
/*Токарев А.А.
группа 0421*/
// Назначение входов/выходов
#define INA1 7 // вращение по часовой стрелке
#define INB1 8 // вращение против часовой стрелки
#define EN1 A0 // разрешение на работу
#define PWM1 5 // ШИМ 1-го моста
int motorSpeed = 120; // скорость мотора, значение от 0 до 255
void setup()
{
pinMode(INA1, OUTPUT); // конфигурируем 7 контакт на выход
pinMode(INB1, OUTPUT); // конфигурируем 8 контакт на выход
pinMode(EN1, OUTPUT); // конфигурируем контакт А0 на выход
digitalWrite(EN1, HIGH); // устанавливаем значение контакта А0 на 5 В
}
void loop()
{
//вращение мотора против часовой стрелки
digitalWrite(INA1, LOW); // устанавливаем значение контакта 7 на 0 В
digitalWrite(INB1, HIGH); // устанавливаем значение контакта 8 на 5 В
analogWrite(PWM1,motorSpeed); // устанавливаем значение ШИМ контакта 5 на скважность равную motorSpeed/256
delay(2000); // задержка в 2 секунды
// вращение мотора по часовой стрелке
digitalWrite(INA1, HIGH); // устанавливаем значение контакта 7 на 5 В
digitalWrite(INB1, LOW); // устанавливаем значение контакта 8 на 0 В
analogWrite(PWM1, motorSpeed); // устанавливаем значение ШИМ контакта 5 на скважность равную motorSpeed/256
delay(2000); // задержка в 2 секунды}
Выводы по работе
В данной лабораторной работе были изучены базовые функции среды разработки Arduino IDE.
Была написана программа и собрана простейшая схема управления электродвигателем постоянного тока с помощью ШИМ-контакта платы Arduino Uno и модуля преобразователя на базе микросхемы VNH2SP30.
Также был изучен на практике процесс загрузки программы в отладочную плату с помощью среды Arduino IDE.
Путь к месту хранения файлов лабораторной работы: