На этом уроке мы вспомним как управляются биполярные транзисторы, рассмотрим особенности применения в верхнем плече транзисторов обратной проводимости, упростим схему H-моста, соберём макет и испытаем его.
Упростим H-мост до схемы...
Управлять будем следующим способом: точка «А» включает вращение в направлении FORWARD , в точку «D» поступает ШИМ последовательность первого канала ШИМ. Соответственно, точка «B» включает вращение в направлении BACKWARD, точка «D» - второй канал ШИМ.
Пишем программу. Добавляем новый файл "H-bridge.c" с процедурами управления двигателем:
void forward(void); // Движение вперёд void backward(void); // Движение назад
После инициализации...
void initPORTs(); // Инициализация портов void initTIMERs(); // Инициализация таймеров void initCCPs(); // Инициализация CCP-модулей void initADC(); // Инициализация АЦП
...в основном цикле проверяем статус кнопки заднего хода...
if (PORTCbits.RC4 == 1) backward(); else forward();
...опрашиваем ручку газа...
GO_DONE = 1; // Запуск преобразования АЦП
...загружаем значения мощности в регистры первого и второго канала ШИМ...
CCPR1L = ADRESH; // Загружаем значение скважности CCPR2L = ADRESH;
Особенности управления H-мостом с двухканальным ШИМ:
Переключение каналов производится включением и выключением модуле й CPP1 и CPP2:
CCP2M2 = 1; // Включить PWM_FORWARD CCP2M3 = 1; CCP1M2 = 1; // Включить PWM_BACKWARD CCP1M3 = 1;
Во избежание короткого замыкания при выключении канала ШИМ необходимо гарантированно обеспечить низкий уровень на линии ШИМ!
PORTCbits.RC2 = 0; // PWM_BACKWARD, press line to ground PORTCbits.RC1 = 0; // PWM_FORWARD, press line to ground
Проект с исходным кодом и симуляция в Proteus во вложении.
Прикрепленные файлы:
- microchip_X.rar (124 Кб)
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация