Relatorio Final Pic

23
MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DO PAMPA CENTRO DE TECNOLOGIA DE ALEGRETE CURSO DE ENGENHARIA ELÉTRICA PROFESSOR ALESSANDRO GIRARDI Relatório do projeto final da implementaçã do controle da cadeira de rodas elétrica usando PIC 16F877A Alunos: Dionatan Avila Rangel Douglas Silva Nunes Ferreira ALEGRETE OUTUBRO DE 2012

description

Relatório apresentação controle cadeira de rodas eletrica controlada por PIC

Transcript of Relatorio Final Pic

  • 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

  • 2

    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

  • 3

    1. Introdu o

    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.

  • 4

    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)

  • 5

    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.

  • 7

    3. Interrupo es

    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 ser setado.

    Para utilizar esta interrupo, a chave INTCON deve ser ligada, assim como a chave geral

    INTCON. 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

  • 8

    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).

  • 9

    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: TENSAO RMS:

    0

  • 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

    ;==========================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' ; CONFIGURA TIMER 2

    MOVWF T2CON ; 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 ; COLOCA O VALOR DE DUTY_CYCLE EM CCPR1L -

    ; DETERMINA Ton

    MOVWF CCPR1L

    MOVWF CCPR2L

  • 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 ; CARREGA O LITERAL 255 EM W

    MOVWF TEMP1 ; TEMP1=W

    L1: DECFSZ TEMP1, 1 ; 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

    GOTO L2 ; VAI PARA A LINHA L2

    RETURN ; FIM DA FUNO

    END

  • 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. Considero es 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. Refere ncis

    *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.