Мостовая схема на транзисторных ключах из предыдущей статьи может применяться для коммутации (включения, отключения, реверса и т.д.) маломощного электродвигателя постоянного тока. Если в качестве ключей S1-S4 в схеме поставить оптопары то таким образом можно осуществить гальваническую развязку мостовой схемы и схемы управления если при этом мостовую схему и схему управления питать разными источниками. На рисунке 1 изображена схема управления электродвигателем микроконтроллером ATmega8 через оптопары и транзисторный мост:
Ниже приведен исходный код программы на языке C++ для микроконтроллера:
#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 8000000UL // 8 MHz
int main(void) // начало основой программы
{
DDRD = 0xff; /* все выводы порта D сконфигурировать как выходы */
DDRC &= ~(1<<4); //вывод 4 порта С сконфигурировать как вход
while (1) // Бесконечный цикл
{
DDRD |= 1<<1;
DDRD |= 1<<2;
_delay_ms(250); // Ждем 250*8 мсек.
DDRD &= ~(1<<1);
DDRD &= ~(1<<2);
_delay_ms(250); // Ждем 250*8 мсек.
DDRD |= 1<<0;
DDRD |= 1<<3;
_delay_ms(250); // Ждем 250*8 мсек.
DDRD &= ~(1<<0);
DDRD &= ~(1<<3);
_delay_ms(500); // Ждем 500*8 мсек.
}
} // закрывающая скобка основной программы
Исходный код компилировался в среде WinAVR, hex файл прошивался в микроконтроллер с помощью программы ponyprog2000. В схеме на рисунке 1 транзистор какой либо оптопары должен открываться при подаче нуля в соответствующий порт но несмотря на это микроконтроллер работал как надо после прошивки в него приведенной программы.
Рисунок 1 - Схема управления электродвигателем микроконтроллером ATmega8
Мост и система управления в схеме на рисунке 1 подключены к разным источникам с одинаковым напряжением 5В. Светодиоды VD1 -VD4 показывают какая пара транзисторов моста работает VT1 и VT4 или VT2 и VT3. В мостовой схеме из предыдущей статьи в цепях коллекторов транзисторов VT3 и VT4 были резисторы с сопротивлением 56 Ом, в этой схеме на рисунке 1 этих резисторов нет так как из за них уменьшается мощность передаваемая двигателю но резисторы в цепях коллекторов транзисторов VT1 и VT2 оставлены для ограничения тока. На видео ниже показана работа собранной схемы:
Ниже приведен исходный код программы на языке C++ для микроконтроллера:
#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 8000000UL // 8 MHz
int main(void) // начало основой программы
{
DDRD = 0xff; /* все выводы порта D сконфигурировать как выходы */
DDRC &= ~(1<<4); //вывод 4 порта С сконфигурировать как вход
while (1) // Бесконечный цикл
{
DDRD |= 1<<1;
DDRD |= 1<<2;
_delay_ms(250); // Ждем 250*8 мсек.
DDRD &= ~(1<<1);
DDRD &= ~(1<<2);
_delay_ms(250); // Ждем 250*8 мсек.
DDRD |= 1<<0;
DDRD |= 1<<3;
_delay_ms(250); // Ждем 250*8 мсек.
DDRD &= ~(1<<0);
DDRD &= ~(1<<3);
_delay_ms(500); // Ждем 500*8 мсек.
}
} // закрывающая скобка основной программы
Исходный код компилировался в среде WinAVR, hex файл прошивался в микроконтроллер с помощью программы ponyprog2000. В схеме на рисунке 1 транзистор какой либо оптопары должен открываться при подаче нуля в соответствующий порт но несмотря на это микроконтроллер работал как надо после прошивки в него приведенной программы.
Комментариев нет:
Отправить комментарий