COMO FAZER UM VOLTIMETRO DE 4 CANAIS USANDO UM PIC12F675 (VIA SERIAL DO PC)

Em algumas aplicações remotas, é interessante acompanhar o que está acontecendo a um circuito, lendo a tensão de determinados pontos críticos. Que tal usar um PIC12F675, seu PC e um terminal de serial? Veja como…

Veja o esquema abaixo.

O circuito mostrado acima faz a leitura de tensões, usando os 4 canais AD disponiveis do PIC12F675. Depois de cada conversão AD, os valores são convertidos para decimal e em seguida, para ASCII, sendo então enviados via pino 2 para a porta serial (DB9). A comunicação foi afixada para 38400 bauds, pelos valores da rotina contida no código ASM. Para receber, basta usar um programa terminal como o HyperTerminal, configurado para 38400 bauds, 8 bits, nenhuma paridade,1 bit de parada e nenhum controle de fluxo. Veja como fica isto no HyperTerminal vendo a figura abaixo.

Quais os passos básicos para fazer funcionar um conversor Analógico/Digital em um PIC?
Siga os passos abaixo:

1) Tornar os pinos para o AD como entrada, configurando o registrador ‘TRISIO’ ( banco 1).

2) Selecionar no registrador ‘ANSEL’ quantos canais serão usados pelo AD.

3) Selecione a frequência de conversão, nos bits 4 a 6 do registrador ‘ANSEL’. Veja tabela do datasheet, pag.42.

4) Selecione se usará o vcc como referência ou a tensão do pino VREF , no bit 6 do registrador ‘ADCON0’.
1= VREF
0= VCC (5 Volts)

5) Selecione se deseja o resultado a direita ou a esquerda nos registradores ‘ADRESH/ADRESL’, no bit 7 do registrador ‘ADCON0′( isto porque o conversor é de 10 bit e temos o total de 16 bits nos 2 registradores de resultado). Geralmente optamos por saída a direita, onde o valor dos 8 bit menos significativos ficam em ‘ADRESL’ e os 2 bit mais significativos ficam em ‘ADRESH’ (ADCON0 BIT 7=’1′).

6) Ligue o conversor AD setando o bit 0 do registrador ‘ADCON0’.

7) Selecionar qual canal será lido em uma conversão (somente um por vez).
Para isto, selecione os bitS 2 e 3 do registrador ‘ADCON0’ (banco 0).

Seleção do canal:
bits 3/2
0 0= CANAL 0
0 1= CANAL 1
1 0= CANAL 2
1 1= CANAL 3

8) Inicie uma conversão setando o bit 2 do registrador ‘ADCON0’. Aguarde o termino da conversão, quando este bit (2) será resetado.

9) Pegue o resultado da conversão nos registradores ‘ADRESH (BANCO 0) E ADRESL (BANCO 1)’.

O código ASM preve 4 leituras por canal, fazendo a média antes de enviar pela serial. Após o envio, é incrementado o contador ‘PROXIMO’ que determina qual canal será ativo para a próxima conversão, fazendo um ‘loop’ continuo. Visto que usamos o VCC como referência, para evitar contas de ajustes, foram colocados potenciometros que serão ajustados para a tensão lida corresponder com a tensão real medida. Para ajustar, basta colocar cada entrada no vcc e ajustar para ler ‘ 5 Volts’. Faça isto para cada canal.
Atenção: Não faça medições de tensões maiores que 5 Volts, sem colocar uma malha de resistores apropriada para reduzir as tensões na faixa aceitavel (0 a 5 volts), sob pena de destruir o PIC.
Veja abaixo como fica a transmissão usando o HyperTerminal:

Quanto a transmissão serial, como não foi usado cristal, é necessário que o PIC usado ainda tenha o byte de calibração intacto de fábrica. Do contrário, não será obtido a velocidade correta de transmissão. Caso tenha perdido este byte ao apagar a flash, sem antes salvar o endereço 0x3ff, poderá usar o recurso do artigo ‘COMO CALIBRAR A FREQUÊNCIA DO OSCILADOR INTERNO DO PIC 12F675/629 (DIDÁTICO)‘.
Obs: Esta montagem é apenas didática, sendo apenas realizada em protoboard, sujeita a bugs ainda não identificados. Como está sendo fornecido o arquivo ASM, este poderá ser alterado segundo as necessidades do hobista.

Segue o arquivo ASM:

VOLTIMETRO_232_4C_ASM

Segue o arquivo HEX:

VOLTIMETRO_232_4C_HEX

Manuais:
Pic 12F675
HyperTerminal

Curiosidades:
A reconstrução da Biblioteca de Alexandria
Jantar Mantar — um observatório sem telescópios
Comunicação — essencial nos ecossistemas da Terra
Uma das nozes mais úteis do planeta
Robert Boyle – lições do passado
Balolo – o caviar do Pacífico
A língua da selva — segredos da comunicação entre os animais
Ultimato “em nome de Deus”
Carros – no presente e no passado
O sistema de ‘spray’ do besouro
Ouvindo sons do espaço
Porque as estrelas são cintilantes?
Uma voz silenciosa que pode se ouvida

Outros assuntos:
A ciência e a Bíblia são compatíveis?
Yellowstone: encontro de águas, rochas e fogo
Quando seu filho tem uma deficiência
O que fazer se você tem um problema de saude – Parte 1
Como parar de discutir
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como acabar com a tática do silêncio
Como resolver problemas em seu casamento?
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Para crianças:
É errado roubar?(vídeo)
Você foi feito maravilhosamente

Até o próximo artigo!!!

Clique aqui para comentários/sugestões fora deste tópico

Back To Top