Pesquisar este blog

segunda-feira, 11 de outubro de 2010

Senha com o Arduino

Autor: Gabriel Bachiegga.

Nível: Básico.

Descrição do Projeto

Implementar um projeto, que o usuário vá alterando os 4 dígitos provenientes de uma senha.Para isso 5 botões serão necessários (4 para cada dígito e 1 para verificação).O sistema permite ao usuário um número x de tentativas, caso esse x estoure, o programa trava.Algo parecido acontece com o acerto, caso a senha esteja correta o programa trava.Toda comunicação visual do sistema é dada pelos LEDs e pela comunicação serial da Arduino com o PC, usando o Serial Monitor do próprio ambiente de programação.

Material Utilizado

- Arduino Duemilanove;
- 5 Push-Button;
- 2 LEDs;
- 5 Resistores de 10kΩ;
- 2 Resistores de 330kΩ;
- Protoboard;
- Fios de ligação.

Projeto

Os botões serão ligados nos pinos digitais do Arduino (2, 3, 4 e 5), assim como os LEDs (11 e 10, utilização do PWM).O usuário terá 3 tentativas para acertar a senha pré-definida no programa, caso erre a 3ª tentativa o sistema pisca um dos LED (neste caso o LED vermelho), a cada erro esse mesmo LED por PWM emite um pouco mais de luminosidade, ou seja, a cada erro a luz do LED se torna mais intensa.Caso o usuário acerte a senha, o programa trava e o outro LED (neste caso o LED verde) fica piscando.

Figura 01: Projeto montado I.

Figura 02: Projeto montado II.

Esquema de Ligação

Figura 03: Esquema de ligação elétrica.

Para baixar o esquema em Fritzing, clique aqui.

Programação

Acredito que esse projeto dispensa comentários a parte, é um projeto básico mas de "grande impacto" por proporcionar a construção de um sistema com materiais simples e de fácil acesso.Vale ressaltar que o tratamento do nível lógico dos pinos ligados nos botões são feitos dentro no bloco void loop(), por isso tem-se a necessidade de se colocar um delay após a ação do botão.

Para baixar a programação clique aqui.

Conclusão

O projeto é um "passa-tempo" bem interessante, para fins de conhecimento fica a utilização de materiais como push-button e LEDs, assim como a programação PWM e transmissão de dados pela serial.

domingo, 10 de outubro de 2010

LED RGB

Objetivo

Alterar Cor do LED RGB através de uma palheta de cores

Autor

Antonio Carlos Pigossi Júnior

Descrição do Projeto

Usar o Arduino juntamente com 1 LED Rgb. Conforme o usuário seleciona uma cor em uma palheta de cores, essa mesma cor é apresentada na interface do LED RGB.

Material Utilizado

- 1 LED RGB;
- 2 Resistores de 90 Ω;
- 1 Resistor de 150 Ω;
- Fios de Ligação;
- 1 Arduino Duemilanove;
- 1 Protoboard

Led Rgb

São formados por três "chips", um vermelho (R de Red), um verde (G de Green) e um azul (B de Blue).
Em geral, os LEDs operam com nível de tensão de 1,6 a 3,3V, sendo compatíveis com os circuitos de estado sólido. É interessante notar que a tensão é dependente do comprimento da onda emitida. Assim, os LEDs infravermelhos geralmente funcionam com menos de 1,5V, os vermelhos com 1,7V, os amarelos com 1,7V ou 2.0V, os verdes entre 2.0V e 3.0V, enquanto os LEDs azuis, violeta e ultra-violeta geralmente precisam de mais de 3V. A potência necessária está na faixa típica de 10 a 150 mW, com um tempo de vida útil de 100.000 ou mais horas.

Figura 1 - LED RGB pinagem

O Projeto

Como os LEDs são sensíveis, e sempre desejamos não diminuir a sua vida útil, é recomendado usar resistores para proporcionar uma queda de tensão nos LEDs e, posteriormente a corrente no pino do Arduino.
No terminal vermelho do LED RGB colocamos um resistor de 150Ω, e nos outros 2 terminais (azul e verde) colocamos um resistor de 90Ω.
Feito isso, apoderando-se de outra ferramenta de desenvolvimento open-source, Processing, a qual permite-nos enviar as cores através da porta serial, compilamos o software o qual se comunica com o Arduino via porta serial e envia as cores, pois com o processing podemos criar um aplicativo onde fica fácil selecionar a cor a ser visualizada no LED RGB.

Figura 2 - Mudanças de cor do LED usando a palheta de Cores

Figura 3 - Mudanças de cor do LED usando a palheta de Cores


Esquema de ligação


A ligação do Arduino com o LED RGB ocorreu da seguinte forma:

Arduino

LED RGB

Pino Digital9

Pino Vermelho (RED)

PinoDIgital10

Pino Azul (BLUE)

PinoDigital11

Pino Verde (GREEN)

GROUND

Pino restante (Seu tamanho é superior aos demais pinos)



Programação

Clicando no link a seguir você poderá baixar como foi feita o software deste projeto, sendo esta, devidamente comentada.

Conclusão

O Arduino está programado para receber a cor em formato numérico entre dois caracteres que identificam o inicio e o fim da cor (^ para o inicio e $ para o fim). A partir disso, o usuário consegue alterar a cor do LED através de uma palheta de cores.


Bibliografia




sexta-feira, 20 de agosto de 2010

Contador Utilizando um Display de 7 segmentos

E aí galera tudo bom com vocês?!

Meu nome é Pigossi, acabei de entrar na equipe do blog e atualmente adquiri uma placa de desenvolvimento livre, na qual também está sendo estudada em uma matéria da minha Universidade (Engenharia de Computação) e estou me divertindo fazendo projetos de diversos tipos.

Então gostaria de compartilhar com vocês.

Como tudo na vida tem um começo, este é o meu. Espero que gostem dos projetos que virão em breve.

Autor

Antonio Carlos Pigossi Júnior


Descrição do Projeto

Construção de um contador digital usando Arduino e um display de 7 segmentos.

O Contador inicia-se no número 0 e prossegue a sequencia até o número 9, quando esta for atingida, ele reinicia e a contagem se inicia novamente.


Material Utilizado

- Fios de ligação;

- 8 Resistores de 330Ω

- 1 Display de 7 segmentos


Display de 7 Segmentos

É um tipo de display (mostrador) barato usado como alternativa a displays de matriz de pontos complexos.Displays de sete segmentos são comumente usados em eletrônica como forma de exibir uma informação numérica sobre as operações internas de um dispositivo.

Ele é composto por sete leds, dispostos em forma de oito, os quais podem ser ligados e desligados indivivualmente. É ativando esses leds que podemos exibir em sua interface um determinado número, letra, etc.

O display pode ser de dois tipos: anodo comum ou catodo comum.

O primeiro, os terminais anodo de todos os segmentos estão interligados internamente e para que o display funcione, este terminal comum deverá ser alimentado por uma tensão Vcc, enquanto que os segmentos para estarem ligados precisam estar aterrados (ligados ao ground).

Já o display catodo comum, o terminal comum deve estar aterrado (ligado ao ground) e para ligar o segmento é necessário aplicar uma tensão Vcc ao terminal.

A seguir podemos observar a pinagem do display de 7 segmentos:

Se desejamos acender o número “0”, por exemplo, ligam-se os leds correspondentes ao digito “0”, que no caso são: a, b, c, d, e, f. Fazendo com que o display apresente-se da seguinte forma:

Esquema de ligação


Como os leds são sensíveis, e sempre desejamos não diminuir a sua vida útil , necessariamente é viável limitar a corrente no pino do Arduino (40mA), para isso colocamos os 8 resistores de 330Ω , fazendo com que a nova corrente enviada pelo Arduino seje de 1,5mA.

O brilho que desejamos no display, depende da corrente recebida nele, por isso podemos substituir esses resistores de 330 Ω por outros que encontram-se na faixa de 220~560 Ω.

Os pinos “comuns” do display foram “aterrados” (ligados ao ground), e a ligação do arduino com o display ficou da seguinte maneira:

Arduino

Display

Pino 1

Pino “.”

Pino2

Pino “c”

Pino3

Pino “d

Pino4

Pino “e”

Pino5

Pino “a”

Pino6

Pino “b””

Pino7

Pino “f”

Pino8

Pino “g”

Programação

Clicando no link a seguir, você pode baixar a como foi feita a programação do software deste projeto, sendo esta, devidamente comentada.

Conclusão

Como disse no inicio do post, o projeto é de nível básico, porém eu espero que ajude muitas pessoas que pretendem iniciar no desenvolvimento de projetos usando o Arduino. Fica claro que poderíamos ter utilizado 2 displays de 7 segmentos, fazendo um contador de 0-99, mas de começo para mim já foi uma boa a conclusão deste mero projeto.


Bibliografia

http://www.ee.pucrs.br/~terroso/html/7_segmentos.html

http://www.engenhariae.com/wordpress/?p=124


segunda-feira, 9 de agosto de 2010

Fonte de Bancada a partir de uma ATX

Um dia todo mundo começou na vida, e nem sempre o começo é uma coisa fácil. Particularmente tive muitas dificuldades no início por falta de material, e acabava não fazendo as coisas por causa disso.
Um apetrecho que acredito que muito necessitam mas poucos tem é uma fonte de tensão DC. Neste post irei repassar minha experiência na transformação de uma fonte ATX em uma de bancada.

Descrição do Projeto

Transformar uma fonte ATX de computador em uma de bancada. Usar um interruptor para ligar e desligar e um LED indicando funcionamento.



Material Utilizado

- 1 Fonte ATX de computador;
- 1 Resistência 10Ω / 10W;
- 5 Bornes;
- 5 Terminais;
- 1 Chave Liga-Desliga (Interruptor);
- 1 LED;
- 1 Resistor 330Ω;
- Enforca-Gato;
- Fita isolante;
- Furadeira e Brocas.

OBS: Particularmente esse projeto não foi documentado com imagens de minha autoria, por isso todo conteúdo multimídia foi coletado na Internet, com suas respectivas fontes e autores descritos no final do post.

Sobre a ATX

Bem, para quem nunca viu uma fonte ATX aberta as figuras abaixo podem ajudar:

Figura 01: Representação de uma Fonte ATX (as letras descrevem alguns componentes e funções não abordadas aqui).

Figura 02: Nesta imagem temos a explicação de alguns componentes que fazem parte da fonte.

A intenção não é explicar como uma fonte ATX funciona, mas alguns pontos têm que serem comentados.
A ATX possui uma "vasta" quantidade de fios, a funcionalidade destes variam de acordo com a cor, mas podemos dividi-los em 2 grupos (a cor e a funcionalidade podem mudar de fonte para fonte, mas basicamente esse padrão é o encontrado na maioria).

Fios de Tensão

- Preto: 0v (GND)
- Laranja: +3,3v
- Vermelho: +5v
- Amarelo: +12v
- Azul: -12v

Fios Funcionais

- Verde: Power On
- Cinza: Power OK

Normalmente a ATX possui ainda 2 ou 3 outros fios sensores, que garantem a correta distribuição de tensão nos terminais, mas esses não serão utilizados.
Cada tensão descrita acima possui uma corrente máxima, no meu caso:


O grupo de Fios Funcionais são chamados assim pois possuem uma funcionalidade específica para o funcionamento da fonte:
  • Power On: usado para "ligar" a fonte. Mesmo a fonte estando energizada, ela não irá fornecer energia para os terminais caso esse fio não seja ligado a Terra (GND), possibilitando o acoplamento de um interruptor para ligar e desligar a fonte nesse projeto.
  • Power OK: indicador de "bom funcionamento", ou seja, esse fio force 5V quando a fonte encontra-se estabilizada (funcionamento OK).
Para a fonte funcionar de forma correta, necessita-se ligar uma carga entre um dos terminais de 5V e Terra (GND), muitos dizem que isso não é necessário pois a própria fonte possui essa carga, mas por garantia é inserido no projeto.

Mão na Massa

Primeiramente abra a fonte e com a furadeira faça os 5 furos maiores para os borners e 2 pequenos (um para a chave e outro para o LED), esse passo fica a "gosto do freguês", podendo escolher o melhor lugar.
Após isso separe os fios por cor, coloque enforca-gato para manter a separação e agrupá-los. Como necessitamos ligar ainda o resistor de potência, a chave (interruptor) e o LED, sugiro separar 1 fio vermelho (5V) e 3 pretos (GND) para simplificar essas ligações.
Feito a separação, meça o tamanho dos fios até a ligação com os bornes respectivos, corte, desencape um por um, junte as pontas e anexe ao terminal, envolvendo com fita isolante para prevenir qualquer contato com outras partes da fonte.

Figura 03: Junção dos fios com o terminal.

Figura 04: Terminal pronto e encapado.

Na ligação do LED, desencape o fio cinza (Power OK), solde com o resistor de 330Ω e ligue na perna positiva do LED (ânodo). A perna negava (cátodo) é soldada ao um dos fios pretos (GND) reservados. Feito isso encape tudo com fita isolante ou espaguete, deixando apenas a cabeça do LED exposta.

Figura 05: Solda do fio cinza (Power OK) com o resistor de 330Ω e o LED, fechando circuito com o fio preto (GND).

Posteriormente fixe o LED no seu respectivo orifício feito com a furadeira. Para instalar o interruptor (chave), basta soldar o fio verde (Power ON) em um dos terminais da chave, e um dos fios pretos (GND) no outro terminal da chave. Fixe-o (chave) no seu devido lugar.
O resistor de 10Ω / 10W é soldado no fio vermelho separado (5V) e no último fio preto (GND) separado. O mesmo pode ser fixado nos frisos do próprio corpo da fonte ou nos dissipadores de calor com enforca-gato.

Figura 06: Fixação e ligação do resistor de potência.

A montagem está chegando ao fim, basta agora parafusar os terminais de cada tensão em seu respectivo borner, fechar a fonte e testar.

Valores Reais

No meu experimento consegui os seguintes valores reais de tensão:


Conclusão

Esse projeto é simples, mas é uma ótima solução para quem está começando e quer simplificar a vida gastando pouco inicialmente.
Uma melhoria que pode ser feita é a construção de um circuito externo alimentado em +12V, com a função de variar a tensão entre 0 e +12V . É simples, não custa caro e pode ser feito para customizar ainda mais essa fonte "amadora".

sexta-feira, 23 de julho de 2010

Sensor de Temperatura e LCD

Descrição do Projeto

Construção de um termômetro digital usando Arduino e sensor de temperatura LM35.
Inicialmente um LCD apresentará a mensagem "APERTE O BOTAO" para medir", ao se pressionar um botão o Arduino irá medir e apresentar a temperatura atual em "ºC" no display.

Material Utilizado

- Arduino Duemilenove;
- Sensor LM35DZ;
- Botão Push;
- Resistor de 10 kΩ;
- Protoboard;
- Fios de ligação.

Sensor de Temperatura

Existem diversos tipos de sensores que podem ser usados para medir temperatura. Um desses é o LM35 (para visualizar o datasheet e mais detalhes click aqui).
Ele é bem simples de ser usado. Possui 3 terminais, sendo um deles GND, outro Vin (alimentação) e Vout (saída), a tensão de saída varia conforme "montagem" do sensor em relação ao circuito e claro com a mudança da temperatura.

Para esse experimento a montagem será feita da seguinte forma:

Montagem Simples (+2ºC a +150ºC)

Respeitando a seguinte pinagem:

Overview do Sensor LM35DZ

LCD

Para esse projeto, o resultado e demais informações são apresentadas num display de 16 colunas por 02 linhas. O display possui 16 pinos explicados na tabela abaixo:

Diagrama de pinos do LCD

1 - VSS: Ground ("Terra");
2 - VCC: Tensão de alimentação (5V);
3 - VEE: Contraste (de 0 a 5V, contraste máximo ou mínimo respectivamente);
4 - RS: nível lógico '1' indica dados e '0' instrução;
5 - R/W: nível lógico '1' indica Leitura e '0' Escrita;
6 - E (Enable): '1' ou '1->0' Habilita e '0' Desabilita;
7~14: Pinos de dados;
15 e 16: Ânodo e Cátodo do Backlight (se existir).

Botão Push

A função do botão é enviar um sinal lógico para o Arduino, que posteriormente irá calcular e apresentar no LCD a temperatura. Tome cuidado, pois têm-se que limitar a corrente no pino do Arduino, é nesse ponto que se encaixa o resistor de 10 kΩ, que deve ser ligado como pull-down no pino da placa, representado pela figura abaixo:

Representação de ligação de um botão com o Arduino. Neste caso o pino é "ativado" em nível lógico 1.

Esquema de Ligação

A ligação dos componentes é representada pela figura abaixo:

Esquemática dos componentes externos com o Arduino.

A comunicação com o LCD é realizada pelos 4 bits mais significativos do barramento de dados do LCD, o pino Vo se encontra aterrado (contraste máximo) assim como o R/W que proporciona apenas "escrita" de comandos e dados no módulo do display.

A ligação do LCD com o Arduino ficou dessa forma:
- RS: Pin digital 12
- Enable: Pin digital 11
- D4: Pin digital 05
- D5: Pin digital 04
- D6: Pin digital 03
- D7: Pin digital 02

O sinal do botão entra no pino 07 digital.

O Vout do sensor é ligado no pino 04 analógico do Arduino.

Programação

Nessa parte o circuito está montado, sendo possível começar a programação de forma "segura", ou seja, sabendo-se o que se vai fazer e como fazer.

O display de LCD é um componente muito útil quando se quer apresentar mensagens em forma de texto, resultados e etc, mas para usá-lo, necessita-se seguir uma série de regras e comando para poder controlá-lo. Na Internet se encontra uma série de bibliotecas que ajudam e muito o implementador. Particularmente usei a própria biblioteca que vem junto com o programa do Arduino (para mais detalhes click aqui).

Para não deixar esse post muito grande optei por não incluir a programação aqui, mas sim disponibilizá-la para download (para baixar click aqui).

Comentários da programação

Para converter o valor lido do sensor para "ºC" usá-se a seguinte expressão: tempEmºC = (tensaoMaxEntradaAD * valorLidoAD * 100) / 1023. No meu caso medi com o multímetro e coloquei que a tensaoMaxEntradaAD foi de 4,87 justamente para tentar minimizar o erro.

Conclusão

O projeto é um tanto amador mas possibilita o entendimento de como utilizar um botão, o LCD e até mesmo um sensor de temperatura em conjunto com o Arduino.
Claro que pode ser melhorado e muito, o sensor LM35 possibilita uma precisão muito boa caso seja montado de forma um tanto mais complexa, ou usando essa mesma configuração de montagem mas amplificando o sinal afim de se obter uma maior precisão na leitura.

Bibliografia