terça-feira, 3 de fevereiro de 2015

Display de 7 segmentos

Materiais

  • 1 display de 7 segmentos;
  • 1 arduino;
  • 8 resistores de 220ohms;
  • 9 fios jumpers.

Circuito eletrônico


Código fonte

/*Projeto de display de 7 segmentos

blog: http://projetosarduino321.blogspot.com.br/
contado: kleytonxavier31@gmail.com
*/

byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 },  // = Digito 0
                                 { 0,1,1,0,0,0,0 },  // = Digito 1
                                 { 1,1,0,1,1,0,1 },  // = Digito 2
                                 { 1,1,1,1,0,0,1 },  // = Digito 3
                                 { 0,1,1,0,0,1,1 },  // = Digito 4
                                 { 1,0,1,1,0,1,1 },  // = Digito 5
                                 { 1,0,1,1,1,1,1 },  // = Digito 6
                                 { 1,1,1,0,0,0,0 },  // = Digito 7
                                 { 1,1,1,1,1,1,1 },  // = Digito 8
                                 { 1,1,1,0,0,1,1 },  // = Digito 9
                                 };


void setup() {  
  
  pinMode(2, OUTPUT); //Pino 2 do Arduino ligado ao segmento A  
  pinMode(3, OUTPUT); //Pino 3 do Arduino ligado ao segmento B
  pinMode(4, OUTPUT); //Pino 4 do Arduino ligado ao segmento C
  pinMode(5, OUTPUT); //Pino 5 do Arduino ligado ao segmento D
  pinMode(6, OUTPUT); //Pino 6 do Arduino ligado ao segmento E
  pinMode(7, OUTPUT); //Pino 7 do Arduino ligado ao segmento F
  pinMode(8, OUTPUT); //Pino 8 do Arduino ligado ao segmento G
  pinMode(9, OUTPUT); //Pino 9 do Arduino ligado ao segmento PONTO
  writePonto(0);  // Inicia com o ponto desligado

}

void writePonto(byte dot){   //Funcao que aciona o ponto no display
  
  digitalWrite(9, dot);
  
}

void sevenSegWrite(byte digit)  //Funcao que aciona o display
{
  byte pin = 2;

  //Percorre o array ligando os segmentos correspondentes ao digito
  for (byte segCount = 0; segCount < 7; ++segCount)  
  { 
    digitalWrite(pin, seven_seg_digits[digit][segCount]);
    ++pin;
  }
    writePonto(1);  //Liga o ponto
    delay(100);   //Aguarda 100 milisegundos
    writePonto(0);  //Desliga o ponto
}

void loop() {
  //Contador de 0 a 9, ligando os segmentos correspondentes "0" a "9" 
  
  for (byte count = 0; count < 10; count++){

      delay(500);
     sevenSegWrite(count);
  
  }
  
  delay(4000);

}


← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Projetos Arduino 3-2-1 | Powered by Blogger Design by ronangelo | Blogger Template Mais Template