11 de fevereiro de 2013

Dado Eletrônico

Um projeto fácil e simples. Pressionou o botão e acontece o sorteio dos números.


Agora podemos dar uma incrementada e incluir mais Leds formando outros dados. Jogar WAR com os dados eletrônicos fica maneiro! :) Ta aí o esquema elétrico e o código fonte para o arduino. Valeu! Abraços!

/*---------------------------------------------------------
  Programa : DADO ELETRÔNICO
  Autor    : Fellipe Couto [ http://www.efeitonerd.com.br ]
  Data     : 11/02/2013
  ---------------------------------------------------------*/
const int led[7] = {2, 3, 4, 5, 6, 7, 8}; //Portas dos ledss
const int dice[7][7] = {
  {0, 0, 0, 0, 0, 0, 0}, //ZERO
  {0, 0, 0, 0, 0, 0, 1}, //UM
  {0, 0, 1, 0, 0, 1, 0}, //DOIS
  {0, 0, 1, 0, 0, 1, 1}, //TRES
  {1, 0, 1, 1, 0, 1, 0}, //QUATRO
  {1, 0, 1, 1, 0, 1, 1}, //CINCO
  {1, 1, 1, 1, 1, 1, 0}  //SEIS
};

void setup() {
  //Configura as portas dos leds como saída
  for (int i = 0; i < 7; i++) {
    pinMode(led[i], OUTPUT);
  }

  //Para o random não repetir a sequência
  randomSeed(analogRead(0));
}

void loop() {
  if (analogRead(1) == 1023) {
    Lottery();
  }
}

void Lottery() {
  int t = 30;
  for (int x = 0; x < 20; x++) {

    //Numero aleatorio para ser exibido. De 1 a 6
    int num = random(1, 7);

    //Incrementa a variável para aumento gradual do delay
    t += 10;

    //Todos apagados
    for (int i = 0; i < 7; i++) {
      digitalWrite(led[i], dice[0][i]);
    }
    delay(t);

    //Exibe o numero aleatorio da variável num
    for (int i = 0; i < 7; i++) {
      digitalWrite(led[i], dice[num][i]);
    }
    delay(t);
  }
}

Nenhum comentário:

Postar um comentário