Vous êtes sur la page 1sur 23

MINISTRIO DA EDUCAO

UNIVERSIDADE FEDERAL DO PAMPA


CENTRO DE TECNOLOGIA DE ALEGRETE
CURSO DE ENGENHARIA ELTRICA
PROFESSOR ALESSANDRO GIRARDI

Relatrio do projeto final da implementa do controle da cadeira


de rodas eltrica usando PIC 16F877A

Alunos:
Dionatan Avila Rangel
Douglas Silva Nunes Ferreira

ALEGRETE
OUTUBRO DE 2012

Sumrio
1.

Introduo ........................................................................................................................ 3

2.

Conhecendo o PIC ............................................................................................................. 4

3.

Interrupes...................................................................................................................... 7

4.

Modo PWM....................................................................................................................... 9

5.

Forma de ondas geradas pela CCP1 (PWM) ..................................................................... 10

6.

O programa ..................................................................................................................... 13

7.

Montagem ...................................................................................................................... 19

8.

Consideraes Finais ....................................................................................................... 22

9.

Referncias ..................................................................................................................... 23

1.

Introduo

Observando uma necessidade e fraqueza do mercado de produtos que oferece tecnologia


para os portadores de necessidades especiais ou com mobilidade reduzida decidiu-se
implementar o controle dos motores de uma cadeira de rodas usando o micro controlador PIC
16F877A.
Os controles existentes e utilizados nos equipamentos que essas pessoas com mobilidade
reduzida fazem o uso so, em sua maioria, importados e taxados com alta porcentagem de
tributao para a sua importao.
Fez-se o estudo da possibilidade da implementao de um circuito mais simples, robusto e
principalmente mais barato em termos financeiros para possibilitar a aquisio desse
equipamento por pessoas de baixa renda, para que assim, elas tambm tenham a sua vida e
suas tarefas facilitadas por essa comodidade e tecnologia.

2.

Conhecendo o PIC

Para conhecimento e melhor entendimento das portas e configuraes que deveriam ser
utilizadas usou-se o seguinte conceito para a programao e implementao do PIC.

Figura 1 Pinagem do PIC

Micro controlador de 40 pinos, o que possibilita a montagem de um hardware


complexo e capaz de interagir com diversos recursos e funes ao mesmo tempo
Via de programao com 14 bits e 35 instrues
33 portas configurveis como entrada ou sada
15 interrupes disponveis
Memria de programao EPROM FLASH, que permite a gravao rpida do programa
diversas vezes no mesmo chip, sem a necessidade de apag-lo por meio de luz
ultravioleta, como acontece nos Micro controladores de janela
Memria de programa com 8kwords, com capacidade de escrita e leitura pelo prprio
cdigo interno
Memria EPROM (no-voltil) interna com 256 bytes
Memria RAM com 368 bytes
Trs Timers (2x8 bits e 1x16 bits)
Comunicaes seriais: SPI, PC e USART
Conversores analgicos de 10 bits (8x) e comparadores analgicos (2x)
Dois mdulos CCP: Capture, Compare e PWM
Programao in-circuit (alta e baixa tenso)

Power-on Reset (POR) interno


Brown-out Reset (BOR) interno.

importante salientar que o PIC tem a porta Master Clear (reset MCLR/Vpp) externo do
micro controlador e s funciona quando este pino encontra-se em nvel alto.
A estrutura interna do PIC apresentada com a figura 2:

Figura 2 Estrutura interna do PIC

Uma parte muito importante a ser observada no PIC a frequncia de operao que
nesse caso foi implementada com um Cristal Oscilador de 4MHz, o clock interno do PIC
equivalente ao clock externo dividido por 4.

6
Desta forma, quando trabalhamos, por exemplo, com um cristal de 4 MHz, o PIC estar
trabalhando internamente com uma frequncia de 1 MHz. Para ns, mais importante que o
clock interno, o perodo dessa frequncia (o inverso da mesma), que equivalente ao tempo
de durao de um ciclo de mquina, popularmente chamado de CM ou TCY.

Ento com um clock de 4 MHz externo, nosso ciclo de mquina (CM) ser de 1s.

3.

Interrupoes

Este PIC possui um total de 15 interrupes diferentes, como nos demais modelos, todas
geraro o desvio do programa para o mesmo vetor de interrupo (0004h), desde que
devidamente configuradas para isso. Essas interrupes podem ser divididas em dois grupos,
as convencionais (as mesmas existentes em modelos menores, como o 16F84), e as de
perifricos, que esto diretamente relacionadas aos demais perifricos existentes neste
modelo. As trs interrupes descritas na sequencia so as convencionais, enquanto as demais
so as de perifricos.
Interrupo de Timer 0: Esta interrupo acontece sempre que o contador TMR0(Timer 0)
estoura, ou seja, como ele um contador de 8 bits, sempre que ele passar de 0xFF para 0x00.
Interrupo externa: Esta interrupo gerada por um sinal externo ligado ao pino RB0, caso
ele esteja configurado como entrada. Desta maneira, podemos identificar e processar
imediatamente um sinal externo. Ela utilizada para diversas finalidades, corno por exemplo,
para a comunicao entre micros, garantindo o sincronismo, para o reconhecimento de boto
ou outro sinal cio sistema que necessite de uma ao imediata.
Interrupo por mudana de estado: Ao contrrio da interrupo externa, a interrupo por
mudana de estado acontece em ambas as bordas (subida e descida).
Interrupo do Timer 2: O Timer2 um contador de 8 bits, relacionado somente ao clock
interno, que possui um Prescaler um postscale, sendo ambos configurveis. Esta interrupo
acontecer sempre que o Timer 2 (TMR2) acrescido do seu Postscaler estourar. Este um
contador de 8 bits que possu um Prescaler para incrementar o registrador e um Postscaler
para gerar a interrupo.
Interrupo do Timer 1: Esta interrupo acontecer sempre que o Timer 1 (TMR1) estourar.
Obs: Este um contador de 16 bits. Este timer bem mais poderoso que o Tirner0 por uma
srie de motivos. Primeiramente, trata-se de um timer de 16 bits, composto de dois
registradores de 8 bits (TMR1H e TMR1 L) que podem ser escritos e lidos pelo programador.
Interrupo do Timer0: Tambm conhecido como TMR0, um contador de 8 bits, cujo valor
atual encontra-se disponvel no registrador TMR0. Entretanto, para incremento externo ou
interno, ser aplicado um Prescaler (PS) antes do registrador TMR0 ser realmente alterado.
Para aumentar o poder de operao do TMR0, associado a ele existe uma interrupo
acontecendo toda vez que o registrador TMR0 estourar, isto , sempre que o limite de 8 bits
(FFh ou 255d) for ultrapassado. Quando isso acontecer, o flag INTCON<T0IF> ser setado.
Para utilizar esta interrupo, a chave INTCON<T0IE> deve ser ligada, assim como a chave geral
INTCON<GIE>. No esquecer de limpar o flag (T0IF) manualmente durante o tratamento da
interrupo.
Interrupo do CCP1 (Capture/Compare/PWM): Esta interrupo est vinculada ao primeiro
sistema CCP, que engloba os seguintes recursos: Capturei, Compare! e PWM1

Figura 3Chaves relacionadas as interrupes

Como a chave GIE desligada antes de desviar para o vetor de interrupo, duas
interrupes no sero tratadas ao mesmo tempo, isto , uma interrupo no gerar um
desvio caso outra interrupo j esteja sendo tratada. Entretanto, o flag da segunda
interrupo ser marcado, e quando o tratamento da primeira terminar, o GIE ser novamente
ligado (atravs da instruo RETFIE) e o sistema voltar a ser desviado para o vetor de
interrupo (devido ao flag).

4.

Modo PWM

Modo PWM: O Modo PWM provavelmente o recurso mais poderoso dos mdulos CCPs, pois
com ele podemos obter uma tenso analgica a partir de um sinal digital. Na verdade, esta
sada meramente digital, isto e. somente pode assumir os estados O e 1. Porm, pelo
conceito aplicado ao PWM, podemos transform-la em uma tenso varivel. Obviamente isso
exigir um hardware complementar (filtros) depois da sada do PIC, mas isso uma outra
histria. Por enquanto, vamos entender melhor o que um PWM.
O nome PWM tem sua origem no ingls Pulse Width Modulation que em Portugus
pode ser considerado como Modulao por Largura de Pulso.
Esse PIC possui dois canais de PWMs (CCP1 e CCP2). Cada canal possui uma resoluo
mxima de 10 bits. Isso significa que a razo cclica do PWM poder ser regulada de 0 a 100%
com uma resoluo de 1024 (210) pontos.
O timer 2 controla diretamente o perodo do PWM, pelo registrador PR2. Como o
timer zera sempre que o contador chega ao valor do perodo, a freqncia do PWM pode ser
definida pelas seguintes frmulas.

Onde: T2CKPS0 Pr-escala do timer2

10

5. Form de onds gerds pel


CCP1 (PWM)

11

12

N DE ACIONAMENTOS:

FREQUENCIA:

0
<20
1
160
2
160
3
160
4
160
5
160
6
160
PWM com sinal em 80% no max

TENSAO RMS:
23mv
1.45v
2.03v
2.55v
2.92v
3.25v
3.59v

13

6.

O progrm

As operaes fundamentais que o pic deveria executar eram as de incrementao e


decrementao do sinal PWM das portas CCP 1 e 2 por interrupes das portas de entrada
RB4, RB5, RB6 e RB7 sendo que duas dessas portas fazem o aumento da largura de pulso do
pwm as outras duas portas fazem o decremento do sinal, essas portas so controladas por
nvel logico alto por botes sem reteno que quando acionados passam as sadas para nvel
lgico alto.
A programao deveria obedecer essas caractersticas para que a sua implementao
fosse vivel no projeto de uma cadeira de rodas, pois cada CCP controlaria um motor,
permitindo assim que fosse possvel a mudana de direo controlando a velocidade dos
mesmos.
A programao foi a seguinte:
PROCESSOR "PIC16F877A"
#include <P16F877a.INC>

;==========================DEFINIO DAS VARIVEIS=========================

#DEFINE CH_INC

PORTB,4

; A CHAVE DE INCREMENTO EST LIGADA NO RB5

#DEFINE CH_DEC

PORTB,6

; A CHAVE DE DECREMENTO EST LIGADA NO RB7

DUTY_CYCLE EQU 50
TEMP1 EQU 51
TEMP2 EQU 52

;============================INICIO DO CDIGO==============================
ORG 0x00
GOTO MAIN

ORG 0X04
GOTO INTERRUPT

14
;=====================CONFIGURAO DO MICROCONTROLADOR=================
MAIN ; SUBROTINA QUE CONFIGURA O PIC

BSF STATUS,5 ; SETA BANCO 1


MOVLW B'11111111'
MOVWF TRISB ; CONFIGURA PORTA B COMO ENTRADA
MOVLW 0X00
MOVWF TRISC ; DEFINE ENTRADAS E SADAS PARA O PORTC
MOVWF TRISD
BSF INTCON, 3
; RC2 - SADA DO PWM

MOVLW .255
MOVWF PR2 ; CONFIGURA PERIODO DO PWM
; T = (PR2+1).4.Tosc.TMR2_PRESCALE
; T = 256.4.250ns.16
; T = 4,096ms -> F244,14Hz
BCF STATUS,5 ; SETA BANCO 0

MOVLW B'00111111' ; CONFIGURA CCP1CON PARA MODO PWM


MOVWF CCP1CON ; LIGA PWM 1

MOVLW .31
MOVWF DUTY_CYCLE ; SETA O CICLO ATIVO PARA 12,5%
MOVWF CCPR1L

15
MOVLW B'00000111'
MOVWF T2CON

; CONFIGURA TIMER 2
; TIMER2 LIGADO
; PRESCALE = 1:16
; POSTSCALE = 1:1

BSF INTCON, 7
BSF INTCON, 3
;=============================LOOP PRINCIPAL===============================
LOOP
GOTO LOOP

;========================SUBROTINA DE INTERRUPO=========================
INTERRUPT

MOVFW PORTB ; MOVE ENTRADAS PARA W


XORLW 0X10 ; ANALISA ENTRADAS = AO RB4
BTFSS STATUS, Z ; VERIFICA SE ESTA ATIVO PORTA RB4
GOTO TESTE_DEC ; NAO, ENTAO TESTA SE PORTA RB6
GOTO INCREMENTO ; SIM, ENTO TRATA ROTINA DO BOTO.

TESTE_DEC

MOVFW PORTB ; MOVE ENTRADAS PARA W


XORLW 0X40 ; ANALISA ENTRADAS = AO RB6
BTFSS STATUS, Z ; VERIFICA SE ESTA ATIVO PORTA RB6

16
GOTO FIM_INTERRUPT ; NAO, ENTAO SAI DA INTERRUPAO

GOTO DECREMENTO ; SIM, ENTO TRATA ROTINA DO BOTO.

FIM_INTERRUPT
;BCF PIR2, 0
;BCF PIR1, 1
BSF INTCON,7 ; HABILITA INTERRUPAO GLOBAL
BCF INTCON,0 ; HABILITA INTERRUPAO POR PORTAS RB
goto LOOP

; RETORNA AO PROGRAMA PRINCIPAL

;======================SUBROTINA DE INCREMENTO=========================
INCREMENTO
bsf PORTC, 6

MOVF DUTY_CYCLE,0

; TESTE PARA SABER SE O DUTY_CYCLE MXIMO

SUBLW .248

; SE FOR MXIMO NO PODER SER


; INCREMENTADO

BTFSC STATUS,2

; SE O RESULTADO DA SUBTRAO FOR ZERO VAI


; PARA FIM_INTERRUPT

GOTO FIM_INTERRUPT
; SE O RESULTADO DA SUBTRAO FOR DIFERENTE
; DE ZERO INCREMENTA O DUTY_CYCLE
MOVLW .31
ADDWF DUTY_CYCLE,1
MOVF DUTY_CYCLE,0

MOVWF CCPR1L
MOVWF CCPR2L

; COLOCA O VALOR DE DUTY_CYCLE EM CCPR1L ; DETERMINA Ton

17
GOTO FIM_INTERRUPT

;========================SUBROTINA DE DECREMENTO=========================
DECREMENTO
bsf PORTC, 7

MOVF DUTY_CYCLE,0

; TESTE PARA SABER SE O DUTY CYCLE ZERO

SUBLW .0
BTFSC STATUS,2

; SE FOR ZERO NO PODER SER DECREMENTADO

GOTO FIM_INTERRUPT

MOVLW .31
SUBWF DUTY_CYCLE,1
MOVF DUTY_CYCLE,0
MOVWF CCPR1L
MOVWF CCPR2L
GOTO FIM_INTERRUPT

;============================ROTINA DE ESPERA==========================
DELAY65MS
MOVLW .255

; CARREGA O LITERAL 255 EM W

MOVWF TEMP2

; TEMP2=W

L2: MOVLW .255


MOVWF TEMP1
L1: DECFSZ TEMP1, 1

; CARREGA O LITERAL 255 EM W


; TEMP1=W
; DECREMENTA TEMP1 E PULA A PRXIMA LINHA
; SE O RESULTADO FOR ZERO

GOTO L1

; VOLTA PARA A LINHA L1

18
DECFSZ TEMP2, 1

; DECREMENTA TEMP2 E PULA A PRXIMA LINHA


; SE O RESULTADO FOR ZERO

END

GOTO L2

; VAI PARA A LINHA L2

RETURN

; FIM DA FUNO

19

7.

Montgem

Tivemos problemas durante a montagem pois o oscilador deveria ficar bem prximo suas
portas respectivas no PIC, pois a frequncia de incremento e a largura do pulso do PWM
estavam ligadas diretamente com sua frequncia. Para obter um melhor ganho na estabilidade
do sinal, fez-se placas de circuito impresso (PCI), que primeiramente tinham a finalidade de
diminuir os rudos e garantir os contatos com os componentes. Foi necessrio fazer 3 modelos
de placas para chegar a um que atendesse as nossas expectativas.

20

21

22

8.

Consideroes Finis

A disciplina de Microcontroladores tinha como objetivo geral permitir o entendimento e a


operao de microcontroladores comerciais e a sua utilizao para o desenvolvimento de
projetos.
Apresentar os conceitos arquiteturais e organizacionais de microcontroladores
comerciais, permitindo a compreenso das suas funcionalidades para a execuo de projetos
de sistemas embarcados. Oferecer ao aluno a oportunidade de operar na prtica kits de
desenvolvimento de microcontroladores.
Creio que esses objetivos foram alcanado e o projeto proposto no inicio do semestre
se mostrou trabalhoso e complexo na hora de implementar na prtica, o microcontrolador
um equipamento extremamente sensvel e todo o cuidado em seu manuseio de suma
importncia para evitar sua queima.
Antes de implementar na prtica o projeto, testou-se o mesmo em simuladores que
idealizam um mundo e condies ideais para o funcionamento do projeto, isso dificulta a
implementao, pois no se sabe se os componentes esto corretos, o ciclo esta em boa
escala, em fim, sentimos que faltou uma melhor implementao e esclarecimento sobre as
consequncias de alteraes de componentes alm da parte de potencia que no era o
objetivo da disciplina.
A sada CCP se comportou como o esperado e a forma de onda pode ser vista no
osciloscpio e registrada em imagens descritas anteriormente neste relatrio.

23

9.

Referencis

*1+ Souza, David Jos.Lavinia, Ncolas Czar. Conectando o PIC 167877A Recursos Avanados.
3 ed. Rio de Janeiro RJ, rica,2004
[2] Notas de aula da disciplina de Microcontroladores Laboratrio de Eletrotcnica,
Unipampa Centro de Tecnologia de Alegrete.
[3]http://www.datasheetcatalog.org/datasheet/mcc/548B.pdf Acesso em 17/6/2011.

Vous aimerez peut-être aussi