Upload
doanmien
View
213
Download
0
Embed Size (px)
Citation preview
Instituto Centro de Ensino Tecnológico
10/04/2013 1 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
Aula 09
Microcontroladores:
Programação em C
Prof. Tecgº Flávio Murilo
PWM – Conceitos – Definição
10/04/2013 2 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• PWM é a sigla para Pulse Width Modulation (Modulação por Largura de Pulso).
É uma técnica utilizada para controle de intensidade de funcionamento de
cargas de corrente contínua. Exemplo: Controle de velocidade de um motor DC.
PWM – Conceitos – Vantagens
10/04/2013 3 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• O controle PWM permite que as cargas tenham a intensidade de funcionamento
variada através do aumento ou diminuição no tempo de ciclo ativo. No exemplo
do motor, pode-se observar as seguintes vantagens:
Variação na velocidade de giro do motor sem perca do torque, já que a
tensão aplicada continua a mesma, porém a ciclos variados. Se ao invés
do PWM fosse usado um potenciômetro para limitar a tensão do motor, a
velocidade diminuiria, mas com perda de torque.
Essa variação na velocidade permite partidas suaves quando os motores
tiverem que trabalhar com uma carga elevada.
Se o ciclo ativo for de 50%, há uma economia de 50% no consumo de
energia e a velocidade de giro do motor vai ser a metade. Exemplo: Motor
ligado o tempo todo = 1000rpm e motor 50% ligado e 50% desligado =
500rpm.
PWM – Circuito exemplo
10/04/2013 4 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Observe o circuito abaixo. Enquanto o botão não estiver o botão pressionado, o
motor estará obviamente desligado. Enquanto o botão estiver pressionado, o
motor estará girando.
PWM – Circuito exemplo
10/04/2013 5 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Suponha que você consiga pressionar o botão e soltar uma quantidade elevada
de vezes por segundo, passando metade do tempo ligado e metade desligado.
O sinal aplicado ao motor está descrito no gráfico abaixo:
PWM – Circuito exemplo
10/04/2013 6 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Embora seja praticamente impossível, se o tempo ligado for exatamente o
mesmo do tempo desligado, então teremos uma tensão média de 3V no caso
do motor, já que o tempo ligado é o mesmo desligado.
PWM – Circuito exemplo
10/04/2013 7 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Para diminuir a velocidade do motor, diminuímos a largura do pulso, fazendo
com que o motor passe menos tempo ligado. Da mesma forma, para aumentar
a velocidade do motor, aumentamos a largura do pulso.
PWM – Cálculo de rotação
10/04/2013 8 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Podemos generalizar da seguinte forma. Suponha um circuito com um motor
que quando ligado 100% do tempo tenha uma rotação de 3100rpm com uma
tensão de 12V, potência de 218W e 3,44Nm. Calcule a rotação (rpm), a tensão
(V), a tensão média (Vm), a potência (W) e o torque (Nm) nos casos a seguir.
50% do tempo ligado e 50% do tempo desligado.
75% do tempo ligado e 25% do tempo desligado.
25% do tempo ligado e 75% do tempo desligado.
rpm(pwm)=rpm.porcentagem(ligado)
P=U.I
I=P/U
PWM – Configuração no compilador
10/04/2013 9 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Crie um novo projeto pelo PIC Wizard.
PWM – Configuração no compilador
10/04/2013 10 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Crie um novo projeto pelo PIC Wizard.
PWM – Configuração no compilador
10/04/2013 11 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Em “Device” selecione o PIC utilizado. Desative o “Master Clear”, caso seja
necessário e configure o clock. Depois na aba “Other”, em CCPX Settings,
seleciona PWM.
PWM – Configuração no compilador
10/04/2013 12 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Ainda na aba “Other”, em “CCPX” (módulo CCP significa Capture, Compare e
PWM) selecione “CCP1”.
PWM – Configuração no compilador
10/04/2013 13 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Em “More Options”, configure a frequência do pulso de saída do PWM.
PWM – Configuração no compilador
10/04/2013 14 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Em “Options”, selecione a opção que mais se adequa a opção de frequência
que você escolheu.
PWM – Configuração no compilador
10/04/2013 15 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Em “Options”, selecione a opção que mais se adequa a opção de frequência
que você escolheu.
PWM – Configuração no compilador
10/04/2013 16 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Na aba “I/O Pins”, certifique-se de que existe algum pino configurado como
saída (Output) e com o PWM habilitado.
PWM – Configuração no compilador
10/04/2013 17 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• O período de estouro (Overflow Period) é o período do PWM (1/f, calculado
automaticamente pelo compilador juntamente com a carga do Timer2).
• Depois de feitas as configurações, clique em OK. Irá aparecer o seguinte código
no escopo principal:
• setup_adc_ports(NO_ANALOGS);
• setup_adc(ADC_OFF);
• setup_psp(PSP_DISABLED);
• setup_spi(FALSE);
• setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
• setup_timer_1(T1_DISABLED);
• setup_timer_2(T2_DIV_BY_16,155,1); //Seta o Timer2
• setup_ccp1(CCP_PWM);
• setup_comparator(NC_NC_NC_NC);
PWM – Cálculo de freq. máx. e mín.
10/04/2013 18 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• O timer específico para o PWM (Timer 2) é um timer de 8 bits e é tomado como
base para o cálculo de frequência máxima e frequência mínima do PWM. Tendo
8 bits, a carga do Timer 2 (ou período) pode variar de 0 (00000000) até 255
(11111111) e o prescaler pode ser 1, 4 ou 16. Leva-se em consideração também
o clock interno do microcontrolador Ex: 4000000Hz (PIC 16F628A) A fórmula
para o cálculo da frequência do PWM é:
• f(PWM) = 𝐹𝑟𝑒𝑞𝑢ê𝑛𝑐𝑖𝑎 𝑑𝑜 𝑐𝑟𝑖𝑠𝑡𝑎𝑙
(𝐶𝑎𝑟𝑔𝑎 𝑑𝑜 𝑡𝑖𝑚𝑒𝑟2 + 1) ∗ (𝑇𝑖𝑚𝑒𝑟2 𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟) ∗ 4
PWM – Cálculo de freq. máx. e mín.
10/04/2013 19 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Vamos calcular a frequência máxima e mínima do PWM em um
microcontrolador PIC 16F628A)
• Frequência do Cristal - 4000000Hz
• Carga do timer2 (Frequência máxima) – 1;
• Carga do timer2 (Frequência mínima) – 16;
• Prescaler do timer2 (Frequência máxima) – 1;
• Prescaler do timer2 (Frequência mínima) – 255; Então:
• fmín(PWM) = 4000000
(255 + 1) ∗ (16) ∗ 4 =
4000000
16384 = 244Hz
• fmáx(PWM) = 4000000
(1 + 1) ∗ (1) ∗ 4 =
4000000
8 = 500000Hz
PWM – Cálculo de ciclo ativo
10/04/2013 20 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• O ciclo ativo (Duty Cicle) é a proporção de tempo em que o pulso está em nível
alto. Na linguagem C, definimos o duty cicle com o comando:
set_pwm1_duty(valor);
• Este valor não pode exceder o período. Sendo que podemos atribuir valores de
8 ou de 16 bits para o duty cicle.
• Exemplo para 8 bits:
• set_pwm1_duty(150);
• Duty Cicle= 8−𝑏𝑖𝑡 𝐷𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒
(𝐶𝑎𝑟𝑔𝑎 𝑑𝑜 𝑡𝑖𝑚𝑒𝑟2 + 1) =
150
(155 + 1) = 96,2%
PWM – Cálculo de ciclo ativo
10/04/2013 21 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Exemplo para 16 bits:
• set_pwm1_duty(150L);
• Duty Cicle= 16−𝑏𝑖𝑡 𝐷𝑢𝑡𝑦 𝑐𝑦𝑐𝑙𝑒
𝐶𝑎𝑟𝑔𝑎 𝑑𝑜 𝑡𝑖𝑚𝑒𝑟2 + 1 ∗4 =
150
155 + 1 ∗4 = 24%
• Além do L depois do valor, podemos declarar a variável “valor” como int8 ou
int16 para diferenciar.
PWM – No Proteus
10/04/2013 22 Instituto Centro de
Ensino Tecnológico
Eletroeletrônica – Microcontroladores– Módulo IV
• Monte o circuito no Proteus usando o PIC 18F2550 e um osciloscópio de
“Virtual Instrument Modes”, um “Counter Timer” e dois buttons.