Social Icons

Controlando Display de 7 Segmentos com CD4511 e Arduino

Controlando Display de 7 Segmentos com CD4511 e Arduino

Depois de alguns dias  sem postar estou de volta com um projeto "cool". Hoje faremos um contador utilizando um display de 7 segmentos.
 
O display de 7 segmentos é normalmente utilizado para indicar números e podem ser vistos normalmente em elevadores, alguns rádio relógios.
Aqui está um exemplo de um display de elevador.



Material necessário:
Para este experimento precisaremos de alguns materiais:

- 1 Placa Arduino e seu respectivo cabo
- 1 Fonte de alimentação de 5V
- 1 Protoboard
- 7 resistores de 150Ω ($0,02 cada)
- 1 CI CD4511- Decodificador BCD - 7 Segmentos ($1,50)
- 1 Display de 7 Segmentos Catodo Comum ($0,50 cada)
- Alguns fios para conectar os componentes

O que faremos?

Criaremos um código para a placa Arduino, este enviará para um decodificador BCD-7-Segmetnos 4 bits, esses serão decodificados e então serão convertidos em 7 bits então usados para controlar um display de 7 segmentos.
Para saber mais sobre códigos BCD visite o link para a Wikipedia.

Como ligar os acessórios?

Neste post testaremos uma nova forma de mostrar como os acessórios foram ligados, apresentarei o circuito na forma de um desenho feito com com o software Fritzing que pode ser baixado gratuitamente do seu site. Veja na imagem a seguir como ficou o circuito ou clique aqui para ver em tamanho real.



Montagem:

Image do CI CD4511BE.


Conexão do CI, resistores e display de 7 segmentos. Ficou uma aranha. :)


Placa Arduino, responsável por enviar 4 bits em formato BCD.


Visão geral do projeto, protoboard, fonte, Arduino e componentes.


Programação:

A programação para este projeto é bem simples, defino 4 variáveis e atribuo a elas o endereço das portas de IO do Arduino. Em seguida na função Setup faço mais algumas configurações e então defino a função number que recebe um número como parâmetro. Baseado neste número as portas de saída são configuradas para enviar um valor BDC adequado.
Dentro da função loop crio 2 laços para fazer a contagem de forma crescente e depois decrescente. Bem simples, veja abaixo o código.

/*
7 Segments
This project uses the CD4511 BCD to 7segments Latch Decoder Driver
to count the numbers from 0 - 9 and after 1 second from 9 - 0.
*/
// Atribui a cada variável um endereço.
int pinA = 6, pinD = 7, pinC = 8, pinB = 9;
void setup()
{
// Configura a velocidade da porta serial
Serial.begin(9600);
// Diz ao controlador que os pinos são de saída
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
}
// Recebe um inteiro como parâmetro
// Baseado no número configura os pinos de saída conforme da tabela BCD
// do CI CD4511
void number(int num)
{
switch (num) {
case 0:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
break;
case 1:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
break;
case 2:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
break;
case 3:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
break;
case 4:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
break;
case 5:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
break;
case 6:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
break;
case 7:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
break;
case 8:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
break;
case 9:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
break;
default:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
}
}
void loop()
{
// Faz um loop de 0 a 9
for (int i = 0; i < 10; i++) {
// Imprime o valor desejado
number(i);
// Aguarda meio segundo
delay(500);
}
// Apaga o número, perceba que quando chamo a função number
// com um valor <0 ou >9 a função simplesmente apaga todos
// os leds do contador. Por isso, se chamo a função com o
// valor 10 simplesmente o display se apagará.
number(10);
// Aguarda 1 segundo
delay(1000);
// Faz um loop de 9 a 0
for (int i = 10; i >= 0; i--) {
// Imprime o valor desejado
number(i);
// Aguarda meio segundo
delay(500);
}
}

Requisitos do sistema

    Para Última Versão do Photoshop.

  • Processador Intel® Pentium® 4 ou AMD Athlon® 64 ou equivalente.
  • Microsoft® Windows® XP com Service Pack 3; Windows Vista® Home Premium, Business, Ultimate ou Enterprise com Service Pack 1 (recomenda-se o Service Pack 2) ou Windows 7
  • 1 GB de RAM
  • 1 GB de espaço livre em disco para a instalação; será necessário espaço livre adicional durante a instalação (não é possível instalar em dispositivos de armazenamento removíveis flash)
  • Monitor de 1.024 x 768 (recomenda-se 1.280 x 800) com placa de vídeo aceleradora de hardware OpenGL, colorida, de 16 bits e 256MB de VRAM
  • Alguns recursos acionados por GPU precisam de suporte gráfico para Shader Model 3.0 e OpenGL 2.0
  • Unidade de DVD-ROM
  • Software QuickTime 7.6.2 necessário para recursos multimídia
  • Conexão banda larga com a Internet necessária para serviços on-line e para validar o Subscription Edition (caso aplicável) regularmente*


  • Processador Intel® Multicore
  • Mac OS X v10.5.8 ou v10.6
  • 1 GB de RAM
  • 2 GB de espaço livre em disco para a instalação; será necessário espaço livre adicional durante a instalação (não é possível instalar em um volume que use um sistema de arquivos que diferencia maiúsculas e minúsculas ou em dispositivos de armazenamento removíveis flash)
  • Monitor de 1.024 x 768 (recomenda-se 1.280 x 800) com placa de vídeo aceleradora de hardware OpenGL, colorida, de 16 bits e 256MB de VRAM
  • Alguns recursos acionados por GPU precisam de suporte gráfico para Shader Model 3.0 e OpenGL 2.0
  • Unidade de DVD-ROM
  • Software QuickTime 7.6.2 necessário para recursos multimídia
  • Conexão banda larga com a Internet necessária para serviços on-line e para validar o Subscription Edition (caso aplicável) regularmente*
By SilV4 /  Corrigido por B03iR4

Clareando Dentes

01. Pressione Ctrl+O e abra a imagem que deseja trabalhar, no nosso tutorial pegamos a imagem de um senhor que apresenta os dentes amarelados e manchados.



02. Pressione a letra Z do teclado para selecionar a Zoom Tool e dê um zoom na área dos dentes para que possamos ver claramente os detalhes a serem trabalhados.



03. Pressione a letra L do teclado e use a Lasso Tool para criar uma seleção ao redor dos dentes.



04. Vá em Image>Adjustments>Desaturate ou pressione Ctrl+Shift+U.



05. O desaturate irá tirar a cor de tudo que estiver selecionado.



06. Agora vá em Image>Adjustments>Desaturate ou pressione Ctrl+M.



07. Clique no centro da curva parar criar um nó e arraste um pouco para cima para deixar a cor dos dentes mais branca.



E seu resultado final será este.



By SilV4

Tirrando Sardas e Aparelho de Dente

01. Neste tutorial iremos trabalhar esta foto.



02. Selecione a Brush Tool pressionando a letra J do teclado.



03. Com a Hearling Brush Tool selecionada, pressione a tecla Alt e clique em uma área limpa da pele.



04. Após selecionar uma área da pele comece a clicar nas sardas para removê-las.



05. Repita este procedimento para eliminar todas as sardas.



06. Agora de maneira parecida iremos remover o aparelho dos dentes.



07. Crie uma seleção no dente usando oLasso Tool, (letra L do teclado). Esta seleção é para que ao clonar uma área selecionada, você não saia por acidente da área do dente. Novamente use a Brush Tool pressionando a letra J do teclado para remover o aparelho dos dentes.



08. Após tratar toda a imagem, caso precise clarear o dente, Como mostrei em outro tutorial aqui no blog.





By SilV4

Como Mudar a Cor dos Cabelos

01. Abra a foto que queira trabalhar, caso seja um cabelo de cor escura use uma foto onde o cabelo esteja com bastante brilho, com uma boa resolução e tenha sido batida em um local bem iluminado, em cabelos loiros e claros o efeito funciona melhor, para este tutorial iremos usar a foto abaixo.



02. Pressione a letra B do teclado para selecionar a Brush Tool e selecione um brush de tamanho médio e ponta suave.



03. Pressione a letra Q do teclado para acionar o Quik Mask Mode, agora pinte toda a área do cabelo.





04. Depois de terminado pressione a letra Q novamente para sair da Quik Mask Mode e sua seleção, agora pressione Ctrl+Shift+I para iverter a seleção ou vá em Select>Inverse



05. Agora vá Leyer>New Fill layer>Soldid Color defina o Mode em Soft Light e clique em Ok.



06. Selecione a cor desejada e clique em Ok.



Caso queira mudar a cor basta clicar sobre a layer com a Fill Layer e experimentar outras cores, abaixo alguns exemplos.







By SilV4