Páginas

domingo, 25 de março de 2012

Termômetro tipo Bargraph com PIC

Este é mais um pequeno projeto utilizando PIC. Trata-se de um termômetro, na verdade um indicador de temperatura, por faixas, através de um arranjo de LEDs, tipo Bargraph. Este circuito pode ser útil para se medir variações de temperatura, e evitar sobreaquecimento ou congelamento de equipamentos, motores, ambientes, etc. Na verdade, este projeto é bem flexível, os leitores podem e devem altera-lo conforme as suas necessidades. A base do circuito é o PIC 16F268A, mas pode ser implementado em qualquer microcontrolador da família 16F que possua os módulos de tensão de referência e comparador analógico.


A sonda utilizada é do tipo NTC, mas qualquer outro tipo de transdutor de temperatura (PTC, PT100, LM35X, termopar, ...)  pode ser utilizado com pequenas alterações no código fonte.

Funcionamento: Basicamente o programa compara a tensão nos terminais do sensor (Vin-) com uma tensão gerada pelo módulo de referencia de tensão (Vref) do PIC, que pode gerar até 32 tensões distintas. O comparador analógico produz a saída: setando ou limpando o bit C2OUT, sendo assim, C2OUT=1 quando Vref >Vin- , ou C2OUT=0 quando Vref < Vin-.

Esquema módulo de comparação analógica do PIC utilizando também a tensão de referência interna.

Funcionamento do comparador. As áreas pretas indicam a faixa  de incerteza na saída.

COMPARAÇÃO: Considerando a lógica do NTC,  carregamos o maior valor possível no módulo de tensão de referência. Assim, se Vin > Vref(x) significa que a temperatura da sonda está acima da faixa, neste caso o processador vai acender o led da primeira faixa e depois mudar a Vref(x) para um valor mais baixo Vref(x-1). Depois compara novamente a entrada com a referência, sempre que Vin > Vref(x) um led acende e Vref(x) diminui para um valor menor até chegar a ultima faixa, quando todos os leds terão acendido. Se numa determinada faixa Vin < Vref(x) o processador vai apagar todos os leds correspondentes as faixas inferiores ao Vref(x) atual e manter os leds correspondentes as faixas superiores acessos.

Observe a tabela abaixo, ela evidencia o comportamento não linear do NTC, a curva exponencial porém, pode ser linearizada colocando-se um resistor de 10k em série, fazendo um divisor de tensão. a terceira coluna mostra isso. (plote os gráficos temperatura vs. resistência do NTC e temperatura vs. tensão no divisor).
Resposta do NTC e tensão de saída do divisor utilizando um resistor de 10k


Deve-se fazer ajustes no programa fonte para que ele funcione de acordo com a sua aplicação e faixa de monitoramento pretendida. Como exemplo de monitoramento da temperatura do motor do carro, pode-se selecionar alguns valores na faixa de 40 à 110°C.

Pode-se eventualmente incluir um sinal de saída, programar um pino de I/O do PIC para mudar de estado (alto/baixo) quando determinada faixa for atingida. Esse sinal pode ser utilizado para acionar (através de um relê ou SSR) um ventilador, resistência ou compressor para aumentar/diminuir a temperatura do equipamento que estamos monitorando ou simplesmente desligar a carga. Uma típica aplicação seria colocar a sonda junto ao bloco do motor do carro e quando o mesmo atingir determinada temperatura, o programa aciona a ventoinha do radiador automaticamente, forçando a redução da temperatura. Isso é muito útil em alguns veículos que não tem sensor de temperatura (apenas aquela luz que acende depois que o carro já ferveu!).

O bargraph utilizado foi do tipo catôdo comum, isto é: acende quando colocamos nível alto no pino de I/O e apaga quando colocamos nível baixo. Essa lógica pode ser facilmente invertida no código fonte caso o display disponível seja do tipo anôdo comum, ou invertendo os componentes caso seja utilizados LEDs discretos.  O número de Leds no arranjo é limitado apenas pela quantidade de pinos do microcontrolador, caso seja necessário, pode-se utilizar um processador com mais pinos ou alterar a programação para acionar decodificadores de 3 para 8.

Encorajo fortemente a inclusão de filtros, para reduzir os ruídos e evitar variações espúrias, principalmente quando se trabalha em algum nível próximo da faixa de incerteza do comparador.


Por enquanto vou ficar devendo o leiaute da placa de circuito. Ela não é difícil de rotear, uma vez que são poucos os componentes utilizados. Os conectores J1 e J2 mostrados no esquema, servem justamente para a conexão da fonte e do sensor, que não ficarão na placa e precisam aparecer no ARES quando geramos a leiaute da placa.


Ficha técnica:
Processador: PIC(R) 16F628A - microchip(TM)
Esquemático, simulação: Proteus 7.8 (ISIS + ARES)
IDE programação, gravação: MPLAB 8 (http://www.microchip.com/)
compilador C: CCS
Programador: ICD-2 - MultiPROG
As figuras 02 e 03 foram retiradas do datasheet do PIC

Arquivos:
Código fonte, esquemas, hex, etc..
-Termobar (escrito em assembly)
-Termobar_C (escrito em C)



sexta-feira, 23 de março de 2012

Chegou! 

E com apenas 4 dias úteis desde o pedido até a entrega.
A nossa ECT deveria aprender com a Fedex.

Lado ruim: Não tive como escapar da taxa de importação e do ICMS, mas mesmo assim ainda saiu pela metade do que eu pagaria aqui no Brasil.

Agora é ler o manual, instalar os softwares e programar alguma coisa.
Assim que eu tiver feito um "hello world" eu digo como foi.

Mancada: Na hora de fazer o pedido, acabei me enganando e só agora vi que fiz o pedido de um modelo que trabalha na faixa de 868 MHz. Enquanto o padrão para América do Norte/Sul é o de 915 MHz. :-(
Bom, já vi que tem como reprogramar ele pra funcionar na frequência mais alta. O hardware é o mesmo. Difere por um resistor de 0 Ohms na entrada da antena.  : -)

O Conteúdo da caixa:

Chronos, Chave Philips, Ponto de acesso USB-RF,para comunicar com o relógio e poder configura-lo, e finalmente o Programador, para reprogramar completamente o MSP430, o processador central do Chronos. (pra isso é preciso abrir o relógio e essa é explicação para a chave philips).
Além do itens acima, veio junto o um CD-ROM com a documentação e os softwares de desenvolvimento, e dois parafusos sobressalentes.

Agora vou brincar um pouco com ele.

terça-feira, 20 de março de 2012

Reciclando velhos projetos


O EZ430 Chronos 


A bancada irá mostrar em breve os primeiros projetos com o novo Chronos eZ430, da Texas Instruments. Uma incrível ferramenta, para o desenvolvimento de uma infinidade de aplicações,  desde monitores cardíacos e treinadores pessoais até comando remoto de dispositivos. As aplicações são inúmeras, principalmente na área médica e esportiva; graças aos diversos sensores que ele possui integrados: acelerômetro de 3-eixos, Temperatura, Pressão atmosférica, medidor de tensão da bateria.

Para adquirir o Chronos, você tem duas opções: ou desembolsa em média R$ 289,00 (+ frete, pra quem não é de Sampa como eu) pra conseguir esse kit aqui nas terras tupiniquis, ou encomenda dos EUA por $49,00 USD com frete incluso.

O Chronos foi lançado em 2009, então, já com 3 anos de atraso, vamos ver se consigo tirar ele do limbo para o purgatório a gaveta de projetos.

Para saber mais sobre o Chronos EZ430 existe uma página wiki: clique aqui

Mais informações em breve.

Enquanto isto, que horas são?

Atualizando: A estimativa de entrega, está para o dia 23/03. Espero que não tenha nenhum problema de desembaraço ou tarifas na Receita. Assim que por as mãos nele, vou preparar um post de "unboxing".