terça-feira, junho 04, 2013

Painel de Controle Microcontrolado: Projeto do Circuito

Olhando a montagem da CNC que estamos construindo no Garoa, me surgiu a ideia de montar um "Painel de Controle", cheio de LEDs com legendas divertidas. Embora este painel, no momento, seja apenas uma brincadeira (acendendo os LEDs de forma semi aleatória), ele pode ser aproveitado para coisas mais sérias. Basta trocar as legendas dos LEDs e trocar o firmware para receber informações pela porta serial (ou trocar alguns dos LEDs por sensores). Nesta primeira parte vamos ver o projeto do circuito.



Microcontrolador

O circuito utiliza um microcontrolador ATmega328. É certamente um exagero, tanto em termos de memória como de capacidade de processamento. Por outro lado, a programação fica bastante simples através do uso da IDE e bibliotecas do Arduino.

O coração do projeto é o circuito do Arduino na Protoboard, retirando somente o LED ligado ao pino 19. O clock do circuito é gerado por um cristal externo de 16MHz e a porta serial está ligada a um conector para permitir a carga de programas (com auxílio de um conversor USB/TTL) ou ligar a um outro equipamento.



LEDs

Como a ideia original é ter muitos LEDs, tratei de buscar na minha gaveta uma boa variedade deles. Adotei resistores de limitação de corrente de 330 ohms entre o terminal positivo do LED e o pino do ATmega (o terminal negativo foi ligado direto ao terra).



A iluminação gerada variou bastante conforme o modelo dos LEDs:
  • LEDs verdes difusos geraram uma iluminação boa
  • LED azul difuso também teve uma boa intensidade
  • LED amarelo difuso ficou ligeiramente fraco
  • LED vermelho difuso antigo ficou bastante fraco, precisei substituir por um um pouco mais novo, com encapsulamento ligeiramente transparente
  • LED vermelho 3mm (os demais são de 5mm) gerou uma luminosidade boa
  • LED bicolor gerou um verde bem fraco e um vermelho razoável
  • LEDs vermelhos transparentes geraram uma luminosidade bem alta
Dependendo de onde você comprar os LEDs, pode ser possível você saber qual a intensidade da iluminação, principalmente para os LEDs transparentes.  Fica a lição de fazer um teste em protoboard para verificar a iluminhação antes de fazer a montagem e acertar o valor do resistor caso a caso.

O LED bicolor requer uma montagem diferente: um terminal foi ligado diretamente a um pino do ATmega e o outro ligado através do resistor de 330 ohms a outro pino do ATmega.



Barra de LEDs

Este componente permite um bom efeito visual e é composto de 10 LEDs individuais. Para reduzir o número de pinos usados no ATmega, os primeiros 8 segmentos foram ligados a um shift register 74HC595. Este componente é um conversor de serial para paralelo: a cada pulso no pino SCK o dado presente no pino SER é deslocado para dentro de um registrador interno ao CI. Um pulso no pino RCK copia este registrador para os pinos de saída.



Para limitar a corrente nos LEDs aproveitei uma "rede resistiva" contendo 8 resistores de 470 ohms com uma das extremidades interligadas. Isto deixou a montagem mais compacta.

Os dois segmentos restantes foram ligados como os LEDs avulsos, porém usando resistores de 470 ohms.

Botão

Para permitir alguma interação com o painel, incluí um botão de contato momentâneo. Este botão é ligado entre um pino do ATmega e terra. O ATmega dispõe de um resistor interno de pullup que será ativado pelo software, para obter leitura em nível alto quando o botão estiver aberto.



Buzzer

Nada como um beep irritante para sinalizar situações de risco. Usei um buzzer com oscilador interno, que necessita apenas de alimentação para soar. Devido à corrente necessária, usei um transistor 2N2222 para ligar e desligar o buzzer.

Circuito Completo

A figura abaixo mostra o circuito completo. No próximo post veremos como fiz a montagem.


Nenhum comentário: