• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
MICROCONTROLADORES PIC – PRÁTICA - PARTE 1CONTROLE PWM COM PIC
 
PWM POR SOFTWARE COM PIC16F84
 
Este exemplo prático mostra a construção de circuito para controle PWM (
Pulse Width Modulation
), utilizando umPIC16F84 com manipulação dos pulsos via
software
.
 
Um controle PWM permite variar a velocidade de um motor DC, por exemplo, através de pulsos. O “tempo” destepulso determinará a velocidade do motor. Quanto maior for a duração de T1 e menor a duração de T2, maior será avelocidade. Quanto menor a duração de T1 e maior a duração de T2, menor será a velocidade. Vale salientar que ospulsos têm sempre o valor máximo da tensão aplicada (menos as quedas no circuito), proporcionando assim altotorque, mesmo em baixas velocidades. Veja a figura abaixo.
 
Sendo assim, vemos que este método de controle é o ideal para aplicações de motores CC para a tração depequenos robôs, braços mecânicos e outros tipos de automatismos.
 
CIRCUITO PRÁTICO
 
Page 1 of 5PWM com PIC3/11/2009http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm
 
 
O circuito da figura acima poderá ser montado em um
pront-o-board
, placa padrão ou outro método que acharmelhor. A idéia deste circuito é ser apenas um teste. Não preciso dizer que após a montagem do mesmo, seja qualfor ela, você deve rever atentamente todas as ligações, evitando assim danos aos componentes, principalmente aoPIC, caso algo tenha sido ligado erro. No mundo "real" as coisas queimam!. Se você é adepto dos simuladores nãotem muito com o que se preocupar, a não ser com o que esta perdendo: "o prazer inestimável de ter feito umamontagem e vê-la funcionando!!!". O transistor pode esquentar um pouco, dependendo do motor utilizado. O uso deum radiador de calor pode ajudar.
 
Os botões BT1 e BT2 permitem o controle da velocidade. Ao se pressionar BT1 o motor aumentará de velocidade atéseu limite máximo. BT2 permite reduzir esta velocidade. Os tempos mínimos e máximos para T1 e T2 neste circuitoPWM estão entre 10ms a 70ms, aproximadamente.A alimentação para o circuito deve ser separada. O microcontrolador precisa de 5 volts. Para o motor, a alimentaçãodeve estar de acordo com o tipo utilizado. Lembrando que um circuito PWM podem gerar interferências muito fortese os microcontroladores são sensíveis a estas interferências. Separar a alimentação ajudará a impedir os efeitosdestas interferências.
 
O PROGRAMA
 
O programa foi desenvolvido utilizando a Linguagem Assembly Microchip e compilado no MPASM Microchip(http://www.microchip.com). Para grava-lo você poderá utilizar o projeto do gravador PROGPICII, presente nestesite ou qualquer outro que você disponha, desde que para microcontroladores PIC. Através do
set
de instruçõesdetalhado na segunda parte da teoria também oferecida neste site, você poderá estudar e compreender melhor ofuncionamento do programa. O código fonte foi ricamente comentado, para demonstrar o seu funcionamento. Eu nãovou "pegar na sua mão" para guiá-lo. Estudar é preciso e o "caminho das pedras" já foi dado!Código fonte – PWM_CTRL.ASM
 
;**************************************************************;* Controle PWM para motores DC;*;* Marcio Jose Soares - 01/10/2002;**************************************************************;;**************************************************************;definições do programa;**************************************************************radix dec ;padrao->valores decimalinclude <P16F84A.INC> ;inclue arquivo __CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC ;configura bitsPICRES equ 0x00 ;endereço de resetPICINT equ 0x04 ;endereço de interrupçõesPICRAM equ 0x0C ;endereço da RAMMOTOR equ 0 ;i/o do motorCHV1 equ 1 ;i/o da chave para aumentar a velocidade do motorCHV2 equ 2 ;i/o da chave para diminuir a velocidade do motorLED equ 3 ;i/o do LEDMAX equ 0x59 ;valor máximo para PWMMIN equ 0X0C ;valor mínimo para PWM;;**************************************************************;variaveis do programa;**************************************************************org PICRAMT1 res 1 ;variável para tempoT2 res 1 ;variável para tempo _TMAX res 1 ;variável para trabalhar tempo máximo _TMIN res 1 ;variável para trabalhar tempo mínimo;;**************************************************************;area do reset;**************************************************************
Page 2 of 5PWM com PIC3/11/2009http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm
 
org PICRES ;resetgoto inicio ;desvia do endereco 0x04 - interrupção;;**************************************************************;area das interrupções;**************************************************************org PICINT ;toda interrupção aponta para este endereçoretfie ;retorno de interrupção;;**************************************************************;inicio do programa;**************************************************************inicio:movlw 0x00 ;ajuste para os bits INTCONmovwf INTCON ;desabilita intsclrf PORTA ;limpa portasclrf PORTBbsf STATUS,RP0 ;seleciona banco 1 para options e trismovlw 0x06 ;ajusta os bits em A como saídamovwf TRISA ;exceto RA1 e RA2, entrada para chavemovlw 0x00 ;ajusta os bits em B como saídamovwf TRISB ;não usadosbcf STATUS,RP0 ;volta ao banco 0... (padrão do reset)movlw MAX ;move valor para _TMAX ->70msmovwf _TMAXmovlw MIN ;move valor para _TMIN ->10msmovwf _TMIN;;**************************************************************;loop principalo do programa;**************************************************************loop:call TECLA ;verifica TeclaPWM:bsf PORTA,MOTOR ;liga pulsocall TMIN ;aguardabcf PORTA,MOTOR ;desliga pulsocall TMAX ;aguardagoto loop;;**************************************************************;subrotina para testar tecla;**************************************************************TECLA:nop ;perde 3 ciclosnopnopbtfss PORTA,CHV2 ;testa chave 2goto TC2 ;pressionadanop ;perde 3 ciclosnopnopbtfss PORTA,CHV1 ;testa chave 1goto TC1 ;pressionadagoto TC3 ;nenhuma chave pressionada;
Page 3 of 5PWM com PIC3/11/2009http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...