Micro Control Ad Or Pic Pratica

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Micro Control Ad Or Pic Pratica as PDF for free.

More details

  • Words: 1,320
  • Pages: 5
PWM com PIC

Page 1 of 5

MICROCONTROLADORES PIC – PRÁTICA - PARTE 1 CONTROLE 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 um PIC16F84 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” deste pulso determinará a velocidade do motor. Quanto maior for a duração de T1 e menor a duração de T2, maior será a velocidade. Quanto menor a duração de T1 e maior a duração de T2, menor será a velocidade. Vale salientar que os pulsos têm sempre o valor máximo da tensão aplicada (menos as quedas no circuito), proporcionando assim alto torque, 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 de pequenos robôs, braços mecânicos e outros tipos de automatismos.

CIRCUITO PRÁTICO

http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm

3/11/2009

PWM com PIC

Page 2 of 5

O circuito da figura acima poderá ser montado em um pront-o-board , placa padrão ou outro método que achar melhor. A idéia deste circuito é ser apenas um teste. Não preciso dizer que após a montagem do mesmo, seja qual for ela, você deve rever atentamente todas as ligações, evitando assim danos aos componentes, principalmente ao PIC, caso algo tenha sido ligado erro. No mundo "real" as coisas queimam!. Se você é adepto dos simuladores não tem muito com o que se preocupar, a não ser com o que esta perdendo: "o prazer inestimável de ter feito uma montagem e vê-la funcionando!!!". O transistor pode esquentar um pouco, dependendo do motor utilizado. O uso de um 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 circuito PWM 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ção deve estar de acordo com o tipo utilizado. Lembrando que um circuito PWM podem gerar interferências muito fortes e os microcontroladores são sensíveis a estas interferências. Separar a alimentação ajudará a impedir os efeitos destas 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 neste site ou qualquer outro que você disponha, desde que para microcontroladores PIC. Através do set de instruções detalhado na segunda parte da teoria também oferecida neste site, você poderá estudar e compreender melhor o funcionamento do programa. O código fonte foi ricamente comentado, para demonstrar o seu funcionamento. Eu não vou "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 decimal include ;inclue arquivo __CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC ;configura bits PICRES PICINT PICRAM MOTOR CHV1 CHV2 LED MAX MIN

equ equ equ equ equ equ equ equ equ

0x00 0x04 0x0C 0 1 2 3 0x59 0X0C

;endereço de reset ;endereço de interrupções ;endereço da RAM ;i/o do motor ;i/o da chave para aumentar a velocidade do motor ;i/o da chave para diminuir a velocidade do motor ;i/o do LED ;valor máximo para PWM ;valor mínimo para PWM

; ;************************************************************** ;variaveis do programa ;************************************************************** org PICRAM T1 res 1 ;variável para tempo T2 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 ;**************************************************************

http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm

3/11/2009

PWM com PIC

org PICRES goto inicio

Page 3 of 5

;reset ;desvia do endereco 0x04 - interrupção

; ;************************************************************** ;area das interrupções ;************************************************************** org

PICINT

retfie

;toda interrupção aponta para este endereço ;retorno de interrupção

; ;************************************************************** ;inicio do programa ;************************************************************** inicio: movlw 0x00 movwf INTCON

;ajuste para os bits INTCON ;desabilita ints

clrf clrf

PORTA PORTB

;limpa portas

bsf

STATUS,RP0

;seleciona banco 1 para options e tris

movlw 0x06 movwf TRISA

;ajusta os bits em A como saída ;exceto RA1 e RA2, entrada para chave

movlw 0x00 movwf TRISB

;ajusta os bits em B como saída ;não usados

bcf

STATUS,RP0

;volta ao banco 0... (padrão do reset)

movlw movwf

MAX _TMAX

;move valor para _TMAX ->70ms

movlw movwf

MIN _TMIN

;move valor para _TMIN ->10ms

; ;************************************************************** ;loop principalo do programa ;************************************************************** loop: call

TECLA

;verifica Tecla

PWM: bsf call bcf call goto

PORTA,MOTOR TMIN PORTA,MOTOR TMAX loop

;liga pulso ;aguarda ;desliga pulso ;aguarda

; ;************************************************************** ;subrotina para testar tecla ;************************************************************** TECLA: nop nop nop

;perde 3 ciclos

btfss PORTA,CHV2 goto TC2

;testa chave 2 ;pressionada

nop nop nop

;perde 3 ciclos

btfss PORTA,CHV1 goto TC1

;testa chave 1 ;pressionada

goto

;nenhuma chave pressionada

TC3

;

http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm

3/11/2009

PWM com PIC

Page 4 of 5

;************************************************************** ;subrotina para incrementar velocidade ;************************************************************** TC1: nop nop nop

;perde 3 ciclos ;

movf _TMIN,W andlw 0xFF xorlw MAX

;carrega com valor mínimo atual ;faz and com W ;faz xor com W, se = , bit Z em STATUS = 1

btfss STATUS,Z goto TC1_1 bsf PORTA,LED goto TC3

;testa resultado, zero valor mínimo = máximo ;incrementa velocidade ;velocidade no máximo, não incrementa mais ;e liga led

TC1_1: incf _TMIN,F decf _TMAX,F goto TC3

;incrementa registro ;decrementa registro ;volta

;************************************************************** ;subrotina para decrementar velocidade ;************************************************************** TC2: nop nop nop

;perde 3 ciclos

movf _TMIN,W andlw 0xFF xorlw MIN

;carrega com valor mínimo atual ;faz and com W ;faz xor com W, se = , bit Z em STATUS = 1

btfss STATUS,Z goto TC2_1 goto TC3

;testa se resultado zero ;decrementa velocidade ;velocidade no mínimo, não decrementa mais

TC2_1: decf _TMIN,F incf _TMAX,F bcf PORTA,LED TC3: bcf STATUS,Z return

;incrementa registro ;decrementa registro ;desliga led ;garante bit Z como 0 ;retorna

; ;************************************************************** ;subrotina para temporização do PWM ;************************************************************** TMIN: movf _TMIN,W movwf T1 goto car_1

;carrega W com _TMIN ;carrega T1 com W ;inicia temporização

TMAX: movf _TMAX,W movwf T1 goto car_1

;carrega W com _TMAX ;carrega T1 com W ;inicia temporização

; ;************************************************************** ;subrotina para temporização do PWM ;************************************************************** car_1: movlw 0xff movwf T2 dec_1: decfsz T2,1 goto dec_1 decfsz T1,1

;carrega W com 255 ;carrega T2 com 255 ;decrementa T2 ;255 x T1 vezes ;decrementa T1

http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm

3/11/2009

PWM com PIC

goto retlw

car_1 0x00

Page 5 of 5

;volta a carregar T2 ;retorna

; ;************************************************************** ;fim do programa ;************************************************************** end

CONCLUSÃO O microcontrolador PIC16F84 apesar de “pequeno” demonstra grandes possibilidades. O controle de cargas com PWM é só uma delas. Muito se pode conseguir fazer com um microcontrolador PIC. Tudo depende apenas da sua criatividade e força de vontade.

Material para o circuito PWM Semicondutores 1 1 1 1

– – – –

PIC16F84A/4MHz – microcontrolador TIP112A – transistor NPN darlington 1N4001 – diodo retificador Led comum

Resistores (1/8 Watt, 5%) 1 – 10K – Marrom, preto e laranja 2 – 330R – Laranja, laranja e marron 2 – 4K7 – Amarelo, violeta e vermelho

Capacitores 1 – 100nF – cerâmico 2 – 33pF – cerâmico

Diversos 3 - chaves “push-botton” 1 – crystal 4MHz 1 – motor DC 3 a 6V 2 – suportes para 4 pilhas pequenas Pront-o-board ou placa padrão para a montagem, fios para ligação, etc

Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.

http://arnerobotics.com/eletronica/Microcontrolador_PIC_pratica_1.htm

3/11/2009

Related Documents