25 de out de 2011

Display de 7 Segmentos + Arduino

Descrição:
Um exemplo de um contador regressivo de 9 a 0 com um display de 7 segmentos e um arduino.


Materiais:
1x Arduino
1x Display de 7 segmentos
1x Protoboard

Esquema:


Pinagem do display de 7 segmentos:

Pinagem De Ligação :

Pinos do Arduino        Pinos Display
       2           →                 7
       3           →                 6
       4           →                 4
       5           →                 2
       6           →                 1
       7           →                 9
       8           →                10
       9           →                 5
      Gnd       →                 8
      Gnd       →                 3

Codigo IDE Arduino:


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

void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
writeDot(0); // start with the "dot" off
}

void writeDot(byte dot) {
digitalWrite(9, dot);
}

void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[digit][segCount]);
++pin;
}
}

void loop() {
for (byte count = 10; count > 0; --count) {
delay(1000);
sevenSegWrite(count - 1);
}
delay(4000);
}




Video:
video

14 comentários:

  1. Funcionou com o display do tipo Catodo, mas nao com o tipo Anodo,
    nao ha nenhuma diferenca entre os dois a nao ser na sua pinagem, vou procurar como utilizar o de anodo

    ResponderExcluir
  2. Funcionou bem eu gostei, quero fazer led de 7 segmentos com sensor de temperatura, será que dá?

    ResponderExcluir
    Respostas
    1. Dá sim me manda um e-mail e conversamos melhor

      radsonpatrick@yahoo.com.br

      Excluir
    2. Com o de 7 segmentos num Arduíno uno que só tem 13 pinos digitais, não precisaria de mais pinos, ou outro display? Pois teriam que ser no mínimo 2 led, digo para mostrar temperaturas acima de 9 graus.

      Excluir
    3. Corrigindo ... dá ...
      http://www.seucurso.com.br/index.php?option=com_content&view=article&id=119:multiplexando-2-displays-de-7-segmentos-no-arduino&catid=901:arduino&Itemid=65

      Excluir
    4. qual foi o valor das resistencias?

      Excluir
  3. Achei interessante, e como estou iniciando estudo com arduino, preciso de alguma ajuda. Preciso colocar três display de segmentos operando de forma a mostrar a temperatura de programação e presente em ambiente controlado, tipo termostato. Tenho um Arduino MEGA. Vc.poderia me enviar algo que possa me ajudar?

    Grato:
    Lacerda, Natal/RN
    lacerdagbl@gmail.com

    ResponderExcluir
  4. O PROGRAMA NÃO ESTÁ COMPILANDO , O QUE PODE ESTAR ERRADO ?

    ResponderExcluir
  5. Este programa não funcionou no display de 7 segmentos do tipo anodo. Fiz as alterações de pinagem, mas não deu certo. Alguém tem o programa pronto para display do tipo anodo?

    ResponderExcluir
  6. Ola, alguem ai teria uma solucao para encrementar contagem neste codigo ai??? Por ex: Ele esta contando de 9 a 0 ao chegar em qualquer parte por ex em 6 eu quiser somar mais 3 ai ele volta para 9. Dando sequencia na contagem regressiva.

    ResponderExcluir
  7. Gostaria da ajuda para resolver um problema, não consegui acionar o pretendido, foi reescrito o codigocorretamente, mas mesmo assim nao funciona, gostaria da ajuda!

    ResponderExcluir