Projeto passo-a-passo para uma Lanterna com LEDs!

Utilizando os cinco LEDs que sobraram do projeto de Fonte de Alimentação com 1 pilha para o PIC!, este projeto é bem fácil de implementar e de carater didático, sendo também muito útil, pois a idéia é o acendimento dos cinco LEDs em sequência, incluindo também um controle de brilho (PWM) individual por LED. Com todos acesos, a iluminação é intensa (aproximadamente 20 mA de corrente em cada LED – 100mA no total).

O projeto terá todas as etapas de sua construção detalhadas, até quem não conhece a tecnologia de microcontroladores e eletrônica pode montar e aprender.

O controle será por meio de uma chave liga-desliga e de um potenciômetro, que será o responsável por todo o controle do brilho dos LEDs.

O princípio básico é uma conversão analógica para digital a partir da leitura do cursor do potenciômetro, atuando diretamente no controle de brilho (PWM) gerado por software, em passos de 5 mA por LED (5×4 passos = 20 mA), atingido os 20mA, o próximo LED começa a brilhar com 5mA, e assim por diante até os 5 LEDs estarem acesos com os seus brilhos máximos (20mA x 5 = 100mA).

Note que os 5 mA são aproximados em relação aos pulsos PWM que recebem (25%) até os 20mA (100%) do ciclo ativo (25%, 50%, 75%). Em 100% estará totalmente ligado e sem o efeito do PWM.

Temos então que, para facilitar a montagem e a codificação, escolher o microcontrolador mais adequado. Levar em consideração: preço, tamanho (número de pinos), características como implementar a conversão analógica para digital (ADC) internamente ( http://pt.wikipedia.org/wiki/ADC ). Existem vários modelos de PIC no mercado que são equivalentes nestas funções.

Para este pequeno projeto, escolhemos o PIC16F688 ( PIC16F688 ), de 14 pinos, com conversor ADC de 8 canais com 10 bits de resolução, oscilador interno de 8Mhz e memória do tipo flash. Adquirimos o componente na Dabi ( Dabi Comercio ) por R$ 6,50.

O circuito é composto por uma pequena placa universal, um capacitor de 100nF, cinco resistores de 100R 1/8w, soquete de 14 pinos torneado para o PIC, suporte de pilhas, material da lanterna que sobrou da montagem anterior, potenciômetro linear de 10K, chave liga-desliga (opcional) e o próprio PIC.

O código-fonte do programa foi escrito em C, para o compilador PCW (PIC MCU C Compiler - CCS Compilers ), e se encontra aqui para downloadProjeto-Lanterna-de-5-LEDs.zip ) incluindo também o arquivo .hex já pronto para a gravação. Como características do código, a principal é usar a interrupção do Timer0 para o controle do PWM (75Hz de frequência – 15mS), e permitir que, mesmo desligando a lanterna, quando voltar a ligá-la, não importa a posição do potenciômetro, os LEDs voltam a acender da mesma maneira que estavam quando foram apagados (efeito “memória”), inclusive, se a lanterna estiver apagada e movimentar o cursor do potenciômetro para outra posição, esta será lida e ativada ao se tornar a ligar a lanterna. Embora este código funcione bem, não está otimizado (no sentido de se economizar memória de programa – ainda assim utilizou somente uma pequena parte da memória disponível do PIC) para que fique fácil de entender (não foi utilizado assembly também por este motivo).

Para já se ter uma idéia de como ficou a montagem, vejam a seguir as fotos:

Circuito 01:  – clique na imagem para ampliar!

Circuito 02:  – clique na imagem para ampliar!

Circuito 03:  – clique na imagem para ampliar!

Um programa utilitário de simulação para o PIC muito útil é o  Real Pic Simulator, segue abaixo a simulação feita para este projeto:
 – clique na imagem para ampliar!

Diagrama do circuito:  – clique na imagem para ampliar!

Compilador com o código fonte: – clique na imagem para ampliar!

O gravador que foi utilizado é o MultiPROG – Programador PIC - ICD2 da Smart Radio: – clique na imagem para ampliar!

Uma informação importante para quem possui este gravador, é que falta especificar PICs de 14 pinos (conforme documentação abaixo), porém é só seguir a informação à respeito de PICs de 8 pinos, pois a posição do componente no soquete é a mesma: – clique na imagem para ampliar!

Gravador em ação 01 (tela do MPLAB IDEv8.56 – MPLAB IDE da Microchip):
Carregando o arquivo .hex gerado pelo compilador
  – clique na imagem para ampliar!

Gravador em ação 02 (tela do MPLAB IDEv8.56):
Selecionando o arquivo “lanterna5leds.hex”
  – clique na imagem para ampliar!

Gravador em ação 03 (tela do MPLAB IDEv8.56):
Escolhendo o programador – neste caso é o MPLAB ICD 2
  – clique na imagem para ampliar!

Gravador em ação 04 (tela do MPLAB IDEv8.56):
Conectando ao gravador
  – clique na imagem para ampliar!

Gravador em ação 05 (tela do MPLAB IDEv8.56):
Mensagens de sucesso na conexão
  – clique na imagem para ampliar!

Gravador em ação 06 (tela do MPLAB IDEv8.56):
Opcional – Conferindo o modelo do PIC
  – clique na imagem para ampliar!

Gravador em ação 07 (tela do MPLAB IDEv8.56):
Apagando o PIC (ícone acima à direita)
  – clique na imagem para ampliar!

Gravador em ação 08 (tela do MPLAB IDEv8.56):
Gravando o PIC (ícone acima à direita) – Concluído com sucesso!
  – clique na imagem para ampliar!

Segue abaixo video do seu funcionamento:

O link para assistir é o: http://www.youtube.com/watch?v=BU8IEKsyB98

Espero que este pequeno projeto ajude a esclarecer como se torna fácil construir o que se quer, gastando bem pouco e aproveitando equipamentos que podem ser modificados para funcionarem de maneira mais sofisticada e interessante. Boa montagem, e até o próximo Post!