Arduino e display sete seguimentos 2 digitos

Alguém poderia me ajudar, estou usando Arduino Uno e estou com problemas de programação para configurar o display.

Eu fiz 2 um display com fita de LED, eu queria mudar o numero usando botão de pulso,cada vez que apertar o botão soma mais 1 no display e também que ele conte até o numero 99.

Alguém poderia ajudar com o sketch.

Load Previous Replies
  • para cima

    Carlos kwiek

    Veja este video, (Link abaixo) uma simulação com Proteus, talvez seja o que esta procurando, o autor compartilha os arquivos para o Arduino e para o Proteus caso queira simular também, ambos links para o Dropbox na descrição do video.

    https://www.youtube.com/watch?v=KbO1w6kesdg&feature=youtu.be

    Abs.

    1
    • para cima

      Wadeck Polli

      vou postar pra ti um codigo que escrevi do zero sem uso de bibliotca:

      const byte A = 7;
      const byte B = 8;
      const byte C = 9;
      const byte D = 10;
      const byte E = 11;
      const byte F = 12;
      const byte G = 6;
      const byte UN = 4;
      const byte DZ = 3;
      unsigned long tempsatual,tempsalvo,tempsatuald,tempsalvod;
      byte num;
      bool flag = 0;

      void setup() {
      pinMode(A,OUTPUT);
      pinMode(B,OUTPUT);
      pinMode(C,OUTPUT);
      pinMode(D,OUTPUT);
      pinMode(E,OUTPUT);
      pinMode(F,OUTPUT);
      pinMode(G,OUTPUT);
      pinMode(UN,OUTPUT);
      pinMode(DZ,OUTPUT);
      tempsalvo = 0;
      num = 0;
      }

      void loop() {
      tempsatual = millis();
      if((tempsatual - tempsalvo) >= 1000){
      num++;
      tempsalvo = tempsatual;
      }
      if(num > 99){
      num = 0;
      }
      escreve(num);

      }

      ////////////////////////////////////////////////////////////////////////////////////////////////
      void escreve(byte n){
      byte u = 0;
      byte d = 0;
      byte aux;

      d = n / 10;
      u = n % 10; //equivale a "n mod 10"

      tempsatuald = millis();
      if(tempsatuald - tempsalvod >= 10){
      flag = !flag;
      tempsalvod = tempsatuald;
      }

      if(flag == 0)
      {
      aux = u;
      digitalWrite(UN,1);
      digitalWrite(DZ,0);
      }
      if(flag == 1)
      {
      aux = d;
      digitalWrite(DZ,1);
      digitalWrite(UN,0);
      }

      switch(aux){
      case 0:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,LOW);
      digitalWrite(F,LOW);
      digitalWrite(G,HIGH);
      break;
      case 1:
      digitalWrite(A,HIGH);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,HIGH);
      digitalWrite(E,HIGH);
      digitalWrite(F,HIGH);
      digitalWrite(G,HIGH);
      break;
      case 2:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,HIGH);
      digitalWrite(D,LOW);
      digitalWrite(E,LOW);
      digitalWrite(F,HIGH);
      digitalWrite(G,LOW);
      break;
      case 3:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,HIGH);
      digitalWrite(F,HIGH);
      digitalWrite(G,LOW);
      break;
      case 4:
      digitalWrite(A,HIGH);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,HIGH);
      digitalWrite(E,HIGH);
      digitalWrite(F,LOW);
      digitalWrite(G,LOW);
      break;
      case 5:
      digitalWrite(A,LOW);
      digitalWrite(B,HIGH);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,HIGH);
      digitalWrite(F,LOW);
      digitalWrite(G,LOW);
      break;
      case 6:
      digitalWrite(A,LOW);
      digitalWrite(B,HIGH);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,LOW);
      digitalWrite(F,LOW);
      digitalWrite(G,LOW);
      break;
      case 7:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,HIGH);
      digitalWrite(E,HIGH);
      digitalWrite(F,HIGH);
      digitalWrite(G,HIGH);
      break;
      case 8:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,LOW);
      digitalWrite(F,LOW);
      digitalWrite(G,LOW);
      break;
      case 9:
      digitalWrite(A,LOW);
      digitalWrite(B,LOW);
      digitalWrite(C,LOW);
      digitalWrite(D,LOW);
      digitalWrite(E,HIGH);
      digitalWrite(F,LOW);
      digitalWrite(G,LOW);
      break;
      }
      }
      ////////////////////////////////////////////////////////////////////////////////////////////

      espero ter ajudado!

      4
    • para cima

      José Gustavo Abreu Murta

      Gostei muito do seu projeto - simples e eficiente !

      Já esta funcionando ?

      Parabéns !