Este é mais um post sugerido pelas buscas que trouxeram alguem a este blog. Nesta série vamos ver como controlar um LED usando um microcontrolador PIC.
O Objetivo
O
objetivo desta série é mostrar o projeto do hardware e software de um
pequeno dispositivo que ilustra como controlar um LED usando um PIC. O
dispositivo possui um LED e um botão que será usado para controlar o
estado do LED (apagado, piscando ou aceso).
O Projeto de hardware
Para
este projeto selecionei um modelo de PIC bastante simples, o 12F675. O
modelo 12F629 pode ser usado sem nenhuma alteração e é simples alterar
tanto o hardware como o software para outros modelos.
O PIC 12F675 tem as seguintes vantagens para este projeto:
- pode operar com alimentação de 2 a 5.5V, o que simplifica a operação com baterias e pilhas
- disponível em encapsulamento DIP de 8 pinos, o que simplifica a montagem
- possui um oscilador interno de 4MHz, dispensando a conexão de um cristal ou ressonador
- memória Flash para o programa, o que simplifica a gravação e regravação
O
primeiro passo para o projeto de hardware é examinar o datasheet do
microcontrolador, que pode ser baixado do site da Microchip.
No
datasheet verificamos que podemos operar de 4 a 10 MHz com uma
alimentação de 3 a 5.5 V (a operação com tensões entre 2 e 3 Volts
requer clock inferior a 4MHz). Minha opção foi operar com o oscilador
interno de 4MHz usando uma bateria de 3V (Duracell DL2032 ou
equivalente). O positivo da bateria deve ser conectado ao pino 1 (VDD)
do PIC e o negativo ao pino 8 (VSS).
O
LED e o botão são conectados a pinos de entrada/saída de uso geral,
que no 12F675 são qualquer um dos outros 6 pinos (para ser mais
preciso, o botão não pode ser ligado ao pino 4 pois vou usar o pull-up
interno que não está disponível no GP3). Escolhi o pino 7 para o LED e o
pino 2 para o botão.
O
LED, como diz a sigla, é um diodo emissor de luz. Quando submetido a
uma tensão direta acima de sua tensão de queda ele emite uma luz com
intensidade proporcional à corrente. Existem vários modelos de LEDs, que
emitem as mais diversas cores. A tensão de queda é tipicamente de 2V e
uma intensidade boa para um LED montado em painel pode ser obtida com
uma corrente de 10 mA.
Voltando
ao datasheet do PIC, verificamos que um pino de entrada/saída é capaz
de gerar ou absorver uma corrente de até 125mA e tem uma tensão de 0,6V
(nível zero) ou VDD-0.7V (nível um). A capacidade de corrente do PIC
permite ligar um LED diretamente das duas maneiras abaixo:
Na primeira maneira, com o LED ligado entre o pino do PIC e VSS, o valor do resistor em série (conforme a lei de Ohm) deve ser
(VDD - 0.7 - 2,0)/0,01 = 30 ohms
Analogamente, com o LED ligando entre o pino do PIC e VDD, o valor do resistor deve ser
(VDD - 0.6 - 2,0)/0,01 = 40 ohms
No
primeiro caso, o LED acende quando o pino do PIS está no nível um, no
segundo quando está no nível zero. No meu circuito adotei a primeira
maneira com um resistor de 33 ohms.
Para
a ligação do botão poderia ser usado uma forma semelhante às vistas
para o LED. Olhando mais uma vez o datasheet, o PIC considera nível
zero um valor abaixo de 0.15*VDD (0.45V) e nível um um valor acima de
0.25*VDD+0,8 (1,55V). Poderíamos calcular a partir destes dados valores
apropriados para o resistor em série com o botão que garantam os
níveis apropriados com um valor reduzido de corrente.
Entretanto, a Microchip já fez estes cálculos e disponibiliza internamente ao PIC um resistor de weak pull-up,
que faz com que um pino aberto seja lido como em nível um. Desta
forma, o botão pode ser ligado diretamente ao VSS e erá lido como nível
zero quando fechado e como nível um quando aberto.
A lista de componentes para o circuito fica sendo:
- 1 PIC 12F675 (ou 12F629)
- 1 LED
- 1 Botão de contato momentâneo
- 1 Resistor de 33 Ohms 1/8 W
- 1 Bateria de 3V
- 1 Suporte para a bateria
O circuito completo fica:
Postar um comentário