Você está na página 1de 6

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

Imprimir

PRODUTOS / Microcontroladores
14/07/2008 11:39:30

Monitorao de nvel com PIC


O circuito sugerido permite controlar um rel de potncia que ir acionar uma bomba quando os limites estabelecidos forem atingidos. O mesmo circuito poder ser utilizado para medio de nvel de outros lquidos, dependendo apenas da escolha do sensor apropriado.
Marcelo Gonalves Damasceno

O propsito deste ar tigo demonstrar de forma didtica aos leitores uma forma universal de monitorar e/ou controlar nveis provindos de diversas naturezas. A forma utilizada nos equipamentos para se monitorar uma grandeza qualquer a seguinte: usa-se um transdutor que converte esta grandeza (que pode ser, por exemplo, a quantidade de determinado lquido, peso, rotao, temperatura, etc.) em uma outra grandeza que pode ser interpretada por um circuito eletrnico. Essa 2 grandeza , na maioria das vezes, corrente ou tenso eltrica. Assim sendo, usando um conversor analgico digital (ADC) pode-se tratar esse sinal convertido e realizar alguns eventos que incluem: exibi-lo em um display ou numa barra de LEDs, envi-lo a um pino de entrada/sada (I/O), que por sua vez ir controlar um rel ou um elemento de estado slido de potncia, etc. Como atualmente temos a facilidade de possuir o AD j embutido em um microcontrolador que tambm j tem os pinos de I/O, fica bem compacto criar um sistema de monitoramento. A idia aqui desenvolvermos uma simples sinalizao de nvel atravs do uso de trs LEDs (verde, amarelo e vermelho). O Circuito Talvez o PIC 16F819 no seja familiar a todos os leitores, portanto faremos um resumo de suas principais caractersticas abaixo: Arquitetura HARVARD (14 bits na memria de programa e 8 bits nas demais memrias); Cdigo de instrues reduzido (35 instrues); Proteo contra cpia de cdigo; Memria FLASH de programa com 2 Kbytes; 256 bytes de EEPROM; 256 bytes de RAM; Conversor A/D de 10 bits e 5 canais;

15 pinos de I/O; 1 pino somente de entrada; Alta corrente de dreno (at 20 mA) Porta serial sncrona (SSP) pronta para protocolo SPI (mestre/ escravo) e I C (escravo); 2 timers de 8 bits e um de 16 bits; 1 canal CCP (Capture, Compare and PWM); Clock externo; Clock interno; Watchdog Timer interno; Alta freqncia de operao (at 20 MHz); Permite gravao no circuito de forma serial (ICSP); Permite depurao (debug) atravs de dois pinos; Encapsulamento DIP com 18 pinos; Entre outras. Para os leitores que desejarem se aprofundar nas caractersticas desse microcontrolador sugerimos o download gratuito de seu datasheet no endereo www.microchip.com. Neste projeto no foi usado o j conhecido dos leitores, PIC16F628A, pois o mesmo no possui o conversor A/D. A figura 1 ilustra um comparativo entre este PIC e o 16F819. Essa figura foi retirada dos datasheets de ambos os microcontroladores.
2

1 de 6

28/02/2013 00:15

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

Figura 1 - Comparativo entre o PIC 16F819 e o PIC 16F819

Notem que eles so bem parecidos, exceto por alguns detalhes. A pinagem do PIC16F819 exibida na figura 2. Ela compatvel, pino a pino, com o PIC16F628A.

Figura 2 - Pinagem do PIC 16F819 O esquema eltrico do nosso projeto pode ser visto na figura 3.

Figura 3 - Esquema eltrico do projeto

O clock de 4 MHz para o funcionamento do microcontrolador gerado internamente (RC), portanto no temos um cristal conectado. A visualizao das faixas de controle feita atravs de trs LEDs. Observe que s utilizaremos um resistor (R ) limitador de corrente para os LEDs porque eles
1

acendero um de cada vez. O resistor R , por sua vez, limita a corrente do LED D . Este LED o
2 4

indicador de funcionamento do programa. O capacitor C responsvel por filtrar os rudos que


1

poderiam interferir no correto funcionamento do PIC. A entrada de nvel de tenso monitorado ser feita no conector CN . Iremos utilizar um potencimetro
1

ligado a este conector para simularmos a variao de tenso na entrada. Isso ser tratado adiante na seo Teste e uso. Como utilizar o conversor A/D do PIC? Iremos demonstrar ao leitor os clculos relativos ao uso do conversor A/D. A frmula para obtermos cada degrau de tenso dada por: V(degrau) = V(ref) / 2 - 1 (frmula 1) Como a tenso de referncia do PIC (V(ref)) em nosso caso ser configurada para 5 V e a resoluo do PIC (n) 10 bits, para cada 4,887m V aproximadamente teremos o valor 1 registrador do A/D. Veja a demonstrao de clculo abaixo: V(degrau) = 5 /1024 1 V(degrau) = 4,8876 mV
n

Quando quisermos saber o valor que vai ficar armazenado no registrador do conversor A/D, usamos a

2 de 6

28/02/2013 00:15

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

seguinte frmula: Valor(reg) = Vin / V(degrau) (frmula 2) Um exemplo: Se o conversor A/D receber em seu pino de entrada o valor 3,45 V, ele o transformar em: 3,45 / 0,0048876 = 705,87 Este valor ser ento arredondado para 706 e armazenado no registrador do conversor A/D. Logo mais, na seo O programa, iremos mostrar como manipular este registrador de forma conveniente. O circuito deve ser alimentado por uma fonte de 5 V. No caso sugerimos o uso de um regulador j bastante difundido no mundo dos microcontroladores, o CI 7805. Na figura 4 temos um exemplo de fonte que pode ser montada pelo leitor.

Figura 4 - Fonte de + 5V

Desenvolvimento Continuando com nossa filosofia de simular um circuito antes de mont-lo efetivamente, utilizamos um programa que possui a interessante funo que nos permite simular microcontroladores em funcionamento, com interrupes, perifricos internos (como o conversor A/D) e muito mais. A figura 5 ilustra a tela do nosso circuito sendo simulado. Foi utilizado o mdulo ISIS, parte integrante do programa britnico Proteus 7 (verso demo) disponvel para download em www.labcenter.co.uk.

Figura 5 - Simulao do nosso circuito A vantagem da simulao neste software a boa quantidade de componentes virtuais disponveis, sem citar que assim no corremos o risco de queimar os componentes em caso de clculos errados.

Montagem O leitor pode ver na figura 6 o circuito montado em uma matriz de contatos (protoboard). Ele foi montado dessa forma, pois possui carter meramente didtico. Quem desejar poder desenvolver uma placa de circuito impresso, no caso deste circuito ser apresentado em uma feira de Cincias ou em uma aula de Eletrnica, por exemplo.

3 de 6

28/02/2013 00:15

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

Figura 6 - Circuito montado em matriz de contatos Alguns conselhos em relao montagem: Ao inserir componentes polarizados (no nosso caso, os LEDs e os integrados) tome o mximo cuidado para no invert-los, pois o circuito no funcionar corretamente, podendo at ocorrer a queima destes componentes. Costuma-se inserir primeiramente os circuitos integrados para que se aproveite melhor o espao do protoboard. Ao fazer as ligaes utilizando jumpers, tente usar o menor comprimento possvel de fio, isto , evite ligaes longas e tambm procure posicionar os componentes o mais prximo possvel dos circuitos integrados. Com isso reduz-se drasticamente o aparecimento de capacitncias parasitas, que podem prejudicar bastante o funcionamento do circuito, fazendo s vezes que o circuito no funcione.

Caso o leitor alimente o circuito utilizando a fonte de 5 V, que foi sugerida na seo O circuito, note que no h necessidade de se usar um dissipador de calor para o regulador 7805, pois ele trabalhar frio. Finalizadas as ligaes deve-se realizar uma inspeo visual geral de forma a tentar localizar possveis erros. O PIC s deve ser inserido na matriz de contatos aps a gravao do mesmo. Consideramos que o leitor que se propuser a montar um projeto com microcontroladores j tenha uma boa noo sobre a gravao/manipulao dos mesmos. A forma de gravao dos PICs foi largamente discutida nas edies anteriores da revista Eletrnica Total e temos um curso completo de PICs, escrito pelo autor Mrcio Jos Soares, nas edies de nmero 6 a 13 da revista Mecatrnica Fcil. Tais revistas podem ser adquiridas no site da Editora Saber. O programa O programa foi desenvolvido em linguagem C para microcontroladores PIC devido a sua facilidade de assimilao por parte do leitor. Um programa em assembly, apesar de ser bem menor, demanda um conhecimento mais profundo do microcontrolador. O compilador utilizado foi o CCS-C que pode inclusive ser baixado gratuitamente no site www.ccsinfo.com. A verso demo tem algumas limitaes, mas serve bem ao nosso propsito. O cdigo-fonte possui comentrios que facilitam o acompanhamento por parte dos leitores interessados em entender cada detalhe do programa. O autor aconselha ao leitor fazer o download do cdigo-fonte (PD-PIC_256.c) do projeto no portal Saber Eletrnica no site da revista (seo Downloads), para uma melhor compreenso dos prximos tpicos.

Na figura 7 vemos o fluxograma de nosso programa. A funo main responsvel por gerenciar em loop contnuo o funcionamento do microcontrolador. Ela chama primeiramente uma funo chamada init_pic(), esta uma funo que possui um nico comando. Este comando responsvel por gravar um valor no registrador de clock do PIC (registrador OSCCON), este valor diz ao PIC que vamos utilizar o seu oscilador interno e ele deve gerar aproximadamente 4 MHz. Depois, a funo main inicializa e configura o conversor A/D e os timers. Aps isso, ela libera o funcionamento das interrupes dos timers (tmr0 e tmr1). Finalmente entra em um loop infinito que converte o valor recolhido do A/D e o transforma em uma sada visual em trs nveis.

Figura 7 - Fluxograma do nosso programa

4 de 6

28/02/2013 00:15

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

Na tabela 1 apresentamos uma tabela que correlaciona os valores que o nosso programa monitora.

Tabela 1 - Valores de tenso monitorados pelo programa S relembrando, para que o leitor obtenha os valores de tenso da tabela basta usar as frmulas 1 e 2 apresentadas na seo Como utilizar o conversor A/D do PIC. Interrupes As interrupes so essenciais em um programa, elas so responsveis por interromper o processamento principal quando ocorrer algum evento (temporizao, pulso) e chamar uma funo, que depois de executada, libera o programa principal a voltar com seu processamento normal. As interrupes utilizadas no nosso projeto so explicadas, a seguir: Int timer0 Esta interrupo responsvel por recolher os dados do conversor A/D e armazen-los na varivel valor. Ela ocorre a cada 10,2 ms. Int timer1

Interrupo responsvel por gerar um clock de aproximadamente 1 Hz no pino 18 do PIC (RA1/AN1). O leitor poder ver detalhes do tratamento das interrupes do timer0 e timer1 na figura 8. Nesta figura tambm pode-se observar detalhes da rotina de converso de nveis.

Figura 8 - Tratamento das interrupes o timer0 e timer1 Atravs da anlise dos fluxogramas acima e de posse do cdigo-fonte, o leitor mais curioso poder entender todo o funcionamento do programa, visto que este bem pequeno. E se assim desejar poder mudar, por exemplo, as temporizaes do mesmo. Poder tambm mudar a quantidade de nveis monitorados e ainda as quantidades de sadas de controle. Teste e uso A forma mais simples de testarmos o circuito inserindo um potencimetro no conector CN , como
1

exibido na figura 9. Note o leitor que com essa simples configurao conseguimos gerar valores que variam de 0 a 5 V, ou seja, toda a nossa faixa de leitura.

Figura 9 - Potencimetro ligado ao conector CN1

Ligue o circuito e gire o cursor do potencimetro totalmente em um sentido e, depois, retorne-o girando totalmente no outro sentido e observe que os LEDs indicaro os nveis de tenso (faixas) que esto

5 de 6

28/02/2013 00:15

Saber Eletrnica Online

http://www.sabereletronica.com.br/secoes/leitura/839/imprimir:yes

sendo lidos pelo PIC. Pode-se ligar qualquer tipo de transdutor ou a sada de um operacional neste conector. Assim o nvel de tenso gerado ir ser monitorado. A fonte de sinal deve ser ligada aos pinos 1 e 2 do conector, respectivamente terra e entrada do PIC. Com uma modificao bem simples pode-se conectar um transistor de driver na sada, devidamente configurado para que alm de acender o LED, o PIC possa ligar um rel e dessa forma acionar cargas de potncia. A figura 10 ilustra esta modificao.

Figura 10 - Conexo de transistor driver na sada Concluso Foram apresentados aqui um circuito e um programa de controle bastante bsicos que podem ser estudados e cuja faixa de valores monitorados pode ser facilmente modificada conforme a curiosidade e necessidade do leitor. Grande abrao a todos, boa sorte na montagem e at a prxima!

Lista de Materiais Semicondutores IC - PIC16F819 Microcontrolador Microchip


1

D - LED comum verde (qualquer tamanho e formato)


1 2 3

D - LED comum amarelo (qualquer tamanho e formato) D , D4 - LED comum vermelho (qualquer tamanho e formato) Resistores (todos com dissipao de 1/8 W) R , R - 1 k (marrom, preto, vermelho)
1 2

Capacitores C - 100 nF - polyester


1

Diversos CN - conector parafusvel de 3 pinos


1

Jumpers para ligaes no protoboard. Fonte de 5 V para alimentao do circuito. *Artigo publicado originalmente na revista Eletrnica Total - Ano 19 - N 131

Extrado do Portal Saber Eletrnica Online - Todos os direitos reservados - www.sabereletronica.com.br

6 de 6

28/02/2013 00:15