Управление пневматическим и электрическим двигателем при помощи микроконтроллера
Напрямую от схемы микроконтроллера можно управлять только незначительной нагрузкой, такой, как например светодиоды. Для использования в схемах силовых элементов, характерных для мехатронных устройств, – электроприводов постоянного тока, сервоприводов с напряжением питания более 5В, приводами пневматических клапанов, необходимо использовать силовые ключи, построенные на транзисторах или модулях реле.
Реле подключаются к микроконтроллеру по трёхпроводной схеме: питание, земля, сигнал. Такая схема позволяет снизить нагрузку на управляющие выходы контроллера за счёт отдельной 5В-линии. На силовые линии такого реле подключается нагрузка таким образом, чтобы оно прерывало один из проводов питания. При подаче управляющего сигнала с контроллера, будет происходить замыкание линии питания электропривода или другого исполнительного устройства. В случае управления пневматическими клапанами с электрическими приводами, применение реле позволяет осуществлять программное управление мехатронными устройствами с пневматической силовой составляющей.
Также реле используются для согласования напряжения логических уровней в том случае, когда у управляющих, исполнительных и регистрирующих устройств они различаются.
Далее приведены задания, последовательное построение которых позволит реализовать простое мехатронное устройство управления электроприводом с помощью транзистора с возможностью регулирования его скорости вращения посредством потенциометра. Кнопка, выполняющая функции аварийного останова по прерыванию, и монитор позволяют расширить функционал устройства и предоставить пользователю информацию о его состоянии.
Соберите схемы второго занятия, напишите программы и проверьте их работоспособность. В качестве подсказок используйте Справочные материалы, находящиеся в конце этого пособия.
Управление скоростью мотора с помощью потенциометра
Рисунок 5 – Схема подключения микромотора
Текст программы управления скоростью мотора с помощью потенциометра
void setup()
{
pinMode(10, OUTPUT); //Контакт подключения микромотора
}
void loop()
{
int val = analogRead(A0) / 4; //Читаем значение потенциометра с А0 в
//переменную и согласуем её для АЦП-ЦАП
analogWrite(10, val); //Вращаем микромотор со скоростью из переменной
}
Управление двухстрочным шестнадцатисимвольным дисплеем LCD 1602
Рисунок 6 – Схема подключения дисплея с потенциометром уровня яркости
Текст программы секундного счётчика
#include <LiquidCrystal.h> //Подключение библиотеки мониторов
int time = 0; //Создание переменной счётчика, равного нулю
LiquidCrystal lcd(2,3,4,5,6,7); //Задание контактов подключения дисплея
void setup()
{
lcd.begin(16,2); //Определение двухстрочного 16-символьного дисплея
lcd.print(“Display test”); //Вывод текста на дисплей
}
void loop()
{
lcd.setCursor(0,1); //Установка курсора на первый символ второй строки
lcd.print(time); //Вывод значения переменной
delay(1000); //Задержка 1000 миллисекунд
time++; //Инкрементирование переменной
}
Пример обработчика прерываний
Соберите схему с кнопкой и светодиодом (для диода используйте сопротивление 100 Ом, для кнопки – 10 кОм).
volatile int state = LOW; //квалификатор перед переменной используется
//чтобы её можно было изменить из обработчика
//прерывания
void setup()
{
pinMode(13, OUTPUT);
attachInterrupt(0, blink, RISING); //настройка обработчика прерывания на
//нулевую линию (второй контакт); вызываемая прерыванием
// функция – blink; прерывание срабатывает при переходе сигнала
// на контакте с LOW на HIGH
}
void loop()
{
digitalWrite(13, state); //запись значения переменной state на светодиод
}
void blink() //функция, вызываемая прерыванием
{
state = !state; //инверсия значения переменной
}
Задания:
1) соберите схему с микромотором и потенциометром. Напишите программу для регулирования скорости вращения мотора в зависимости от угла поворота потенциометра;
2) дополните схему двухстрочным шестнадцатисимвольным LCD дисплеем, выводите на него значение, считанное с потенциометра. Для случая, когда мотор остановлен, на экран должно выводиться слово “STOP”;
3) дополните схему кнопкой. При нажатой кнопке мотор должен останавливаться. На экран монитора должно выводиться уведомление об этом;
4) перепишите программу таким образом, чтобы по нажатию кнопки происходило прерывание. Функция прерывания должна запускать мотор на вращение с заданной потенциометром скоростью, если он был остановлен и – останавливать, если он вращался. Информация о скорости вращения и срабатывании прерывания должна отображаться на дисплее.
Дата добавления: 2018-09-24; просмотров: 409;