quarta-feira, 30 de junho de 2010

O LED Pisca-pisca

Olá pessoas.

Demorou mais do que eu esperava mas segue a seguencia do nosso estudo =)

Iniciando o projeto
Espero que você entenda como um LED acende, pois vamos direto ao PIC. =)
Como já escrevi, o PIC tem entradas e saídas, cada pino tem uma função devemos conhecer isso muito bem do nosso PIC para isso vamos ter que consultar seu datasheet. No nosso caso o PIC 16F648 tem sua configuração de pinagem(pinout) assim:



A fonte
A primeira coisa que temos que ter é uma fonte estabilizada em 5V ou Vcc ou Vdd depende de cada autor e do tipo de circuito. Depois veremos essas notações. Uma fonte muito boa que utilizo é a fonte de computador ela tem as principais voltagens em se tratando de circuitos qu e são +5v, +12v 3.3v. Porem ela é grande demais é preciso fazer um jumper para ligar, alem disso cabos curtos e cara em comparação as outras fontes e uma potencia muito elevada para nosso propósito. Uma fonte que utilizo bastante tambem são os carregadores de celular, são pequenos, comumente bi volts automáticos e possuem um bom comprimento de fio bom, alem de uma potencia suficiente para nosso projeto cerca de 500mA mas isso muda para cada modelo. Esses carregadores são quase perfeitos, mas muitas vezes a saída que era para ser de 5v acaba sendo um pouco maior 6V,7V, 8V e as vezes ate mais, o que pode levar a queima do nosso microcontrolador.

Regulando a tensão
Caso você já tenha uma fonte regulada em 5v pode pular essa parte. Aqui vamos ver como vencer essa barreira. Como já disse minha idéia aqui é passar varias idéias caso você tenha alguma dificuldade em encontrar algum componentes procurar outra alternativa, pois afinal na vida, tudo tem jeito =) Se você tiver uma fonte de maior voltagem não é problema as vezes temos aquela fonte do telefone sem fio, de algum outro circuito qualquer outra e essa fonte é maior as vezes 7,5V ou 9 ou ate queremos utilizar uma bateria em nossa aplicação. Você pode ter um pack de 4 pilhas que vão dar 6v. Resolver esse problema para tensões maiores é simples e fácil de contornar, com um CI chamado regulador de tensão. Esse CI é abundante é o famoso 78xx onde xx indica a tensão de saída regulada. Esse componente é fácil de encontrar barato e fácil de ligar. Como vamos utilizar 5V logo nosso CI é o 7805. Esse CI possui 3 pinos. Entrada, terra(GND), Saida. Sempre veremos esse circuito ligado a capacitores mas caso não tenha não tem importância a nível de testa ele vai funcionar sem problemas sem os capacitores.

Montar o circuito
Agora já temos tudo pronto para montar o circuito o seu diagrama deve ficar assim:


Os PICs podem conduzir uma corrente suficiente para fazer o LED piscar sem precisar de “ajuda” de uma fonte. Então para fazer o LED pisca é necessário alternar entre seus estado lógico 0 e 1. Quando está em 1(um) o pino vai para 5v ou seja fechando o circuito com isso o LED acende, no entanto quando vai para 0(zero) sua tensão cai para para 0v não havendo diferença de potencial e o LED se apaga. A lógica pode ser invertida, no 0 (zero) acender o LED e no 1(um) apagar, bastando ligar o LED em 5v através da resistência e onde o LED esta ligado no terra ligar no microcontrolador.
O código fonte
Aqui segue nosso código fonte:

/*
Autor: João Nelson Lima
*/
#include <16f648a.h>
#include

#include




#FUSES NOWDT //Sem Watch Dog Timer
#FUSES INTRC_IO //Usar oscilador interno
#FUSES NOPROTECT //Sem proteção de codigo para leitura
#FUSES BROWNOUT //Reset quando brownout detectado
#FUSES NOMCLR //Usar Master Clear pino para I/O
#FUSES NOLVP //Sem low voltage prgming
#FUSES NOCPD //Sem EE proteção

#use delay(clock=4000000)


#DEFINE LED PIN_A0

//Inicio
void main()
{
setup_timer_0(RTCC_INTERNAL | RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

while(TRUE)
{
output_High(LED);
delay_ms(1000);
output_Low(LED);
delay_ms(1000);
}
}


Observe que o programa é um loop infinito passando o pino RA0 ou seja o 17, para 1(High) espera 1 segundo e passa para 0, espera 1 segundo e recomeça passando para 1. Fazendo com isso o LED piscar. Você pode alterar os delays, colocar mais LEDs em outras portas fazê-los piscar em seqüência use a criatividade. E ate o próximo.