Широтно-импульсная модуляция . Управление драйвером. Современные драйверы двигателей постоянного тока
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ. Основной причиной применения ШИМ является стремление к повышению КПД при построении вторичных источников питания электронной аппаратуры и в других узлах, например, ШИМ используется для регулировки яркости подсветки LCD-мониторов и дисплеев в телефонах, КПК и т.п..

HPWM

Синтаксис:

HPWM Channel , Dutycycle , Frequency

Команда HPWM предназначена для работы с аппаратными модулями CCP, которые входят в состав некоторых типов микроконтроллеров. Модули ССР могут использоваться для генерации импульсной последовательности заданного периода с управляемой скважностью выходных импульсов, так называемой широтно-импульсной модуляции PWM (ШИМ). В отличии от команды PWM, команда HPWM может выполняться резидентно (в фоновом режиме), непрерывно работая на заднем плане основной программы, не прерываясь, пока выполняются другие команды основной программы.

Параметр Frequency может быть переменной, константой (которые могут принимать значения в диапазоне от 0 до 32767 Гц.), или выражением, которое определяет заданный период широтно-импульсного сигнала. Параметр Channel - это постоянное значение в диаппазоне от 1 до 3, определяющее какой канал модуля CCP будет использоваться. Некоторые PIC-микроконтроллеры имеют 1, 2 или 3 PWM (ШИМ) канала. В микроконтроллерах с 2 каналами, частота генерации последовательности импульсов должна быть одинаковой в обоих каналах. Необходимо отметить, что это не ограничение компилятора, а ограничение самого микроконтроллера. В даташитах каждого конкретного микроконтроллера указаны номера выводов для каждого канала, которые могут использоваться с этой командой. Например, для PIC16F877, канал 1 (модуля CCP1) это вывод PORTC.2. Канал 2 (CCP2) это вывод PORTC.1. Параметр Dutycycle - переменная, константа которые могут принимать значения в дипазоне чисел от 0 до 255), или выражение, которое определяет отношение продолжительности нахождения сигнала в

состоянии 1 к продолжительности нахождения сигнала в состоянии 0 (см. рис. 1). При Dutycycle = 0 уровень выходного сигнала все время будет находится в низком состоянии (уровень логического 0), а при Dutycycle = 255 - выходной сигнал все время находится в высоком состоянии (уровень логической 1).

 

 

Значению Dutycycle = 127 соответствует 50%-ый цикл режима работы. В этом случае выходной сигнал PWM (ШИМ) на выходе ССР модуля u1080 имеет равные длительности высокого и низкого уровня (1 и 0), так называемый меандр.

Значение Dutycycle = 127.

 

 

 

Device = 16 F 873

Xtal = 12    

ADCON1 = %00000110 ' Сделать PORTA обычным цифровым портом ввода/вывода

TRISA = %00000001 ' Сделать PORTA.0 входом

Dim pwm_out As Word

Dim x As Byte

TRISB = %00011111

TRISC.2=0

TRISC.1=0                

pwm_out=0

 

main:              

If PORTB.3=0 Then ' проверка кнопки реверс

CCP1_Pin = PORTC.2

CCP2CON=%00000000

x=1

Else

x=2

CCP2_Pin = PORTC.1

CCP1CON=%00000000

EndIf

If PORTB.2=0 Then ' проверка кнопки стоп

pwm_out=0

CCP1CON=%00000000

CCP2CON=%00000000

PORTC.1=0

PORTC.2=0

GoTo main

EndIf

If PORTB.0=0 And PORTB.1=1 Then ' проверка кнопки больше и меньше

pwm_out = pwm_out + 1

If pwm_out>254 Then

pwm_out=254    

EndIf

EndIf

If PORTB.1=0 And PORTB.0=1 And pwm_out>1 Then ' проверка кнопки больше и меньше

pwm_out=pwm_out-1

If pwm_out<2 Then

pwm_out=1

EndIf

EndIf

                                   ' установка скорости привода

HPWM x,pwm_out,1000

DelayMS 20

GoTo main

 

 

19.10.2018

 

Дата: 2019-02-02, просмотров: 203.