Dado Eletrônico

Autor: Cláudio Luís V. Oliveira

O objetivo deste projeto é utilizar o módulo didático PL3 – Dado Eletrônico (Figura 1) para sortear valores entre 1 e 6 criando, desta forma, um dado eletrônico que pode ser utilizado em jogos de tabuleiros, substituindo o dado convencional.

IMG_3036

Figura 1: Módulo Didático PL3 – Dado Eletrônico

Utilizando fios de conexão Macho-Fêmea ligue o módulo PL3 – Dado Eletrônico da seguinte maneira (Figura 2):

  1. Pino Gnd do PL3 ao pino de Gnd do Arduino;

  2. Pino +5vcc do PL3 ao pino 5 Volts do Arduino;

  3. Pino Switch do PL3 ao pino digital 2 do Arduino;

  4. Pino Led 1 do PL3 ao pino digital 13 do Arduino;

  5. Pino Led 2 do PL3 ao pino digital 12 do Arduino;

  6. Pino Led 3 do PL3 ao pino digital 11 do Arduino;

  7. Pino Led 4 do PL3 ao pino digital 10 do Arduino;

  8. Pino Led 5 do PL3 ao pino digital 9 do Arduino;

  9. Pino Led 6 do PL3 ao pino digital 8 do Arduino;

  10. Pino Led 7 do PL3 ao pino digital 7 do Arduino.

dado2

Figura 2: Conexão do Arduino ao PL3 – Dado Eletrônico

Acesse o ambiente de desenvolvimento do Arduino e digite o sketch a seguir:

// Dado Eletrônico

// Pinos aos quais os Leds estão conectados:

int LED1 = 13;

int LED2 = 12;

int LED3 = 11;

int LED4 = 10;

int LED5 = 9;

int LED6 = 8;

int LED7 = 7;

// Pino ao qual o botão está conectado:

int BOTAO = 2;

int valorBotao;

int valorAnterior = LOW;

void setup() {

randomSeed(analogRead(0));

pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

pinMode(LED3, OUTPUT);

pinMode(LED4, OUTPUT);

pinMode(LED5, OUTPUT);

pinMode(LED6, OUTPUT);

pinMode(LED7, OUTPUT);

pinMode(BOTAO, INPUT);

}

void loop() {

valorBotao = digitalRead(BOTAO);

if (valorBotao == HIGH && valorAnterior == LOW) {

// Exibir o valor sorteado (entre 1 e 6)

mostrarDado(random(1, 7));

// Durante 2 segundos

delay(2000);

// Apagar todos os Leds

mostrarDado(0);

}

valorAnterior = valorBotao;

delay (50);

}

void mostrarDado(int valor) {

if (valor == 0) {

digitalWrite(LED1, LOW);

digitalWrite(LED2, LOW);

digitalWrite(LED3, LOW);

digitalWrite(LED4, LOW);

digitalWrite(LED5, LOW);

digitalWrite(LED6, LOW);

digitalWrite(LED7, LOW);

}

else if (valor == 1) {

digitalWrite(LED1, LOW);

digitalWrite(LED2, LOW);

digitalWrite(LED3, LOW);

digitalWrite(LED4, HIGH);

digitalWrite(LED5, LOW);

digitalWrite(LED6, LOW);

digitalWrite(LED7, LOW);

}

else if (valor == 2) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

digitalWrite(LED3, LOW);

digitalWrite(LED4, LOW);

digitalWrite(LED5, HIGH);

digitalWrite(LED6, LOW);

digitalWrite(LED7, LOW);

}

else if (valor == 3) {

digitalWrite(LED1, LOW);

digitalWrite(LED2, LOW);

digitalWrite(LED3, HIGH);

digitalWrite(LED4, HIGH);

digitalWrite(LED5, LOW);

digitalWrite(LED6, LOW);

digitalWrite(LED7, HIGH);

}

else if (valor == 4) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

digitalWrite(LED3, HIGH);

digitalWrite(LED4, LOW);

digitalWrite(LED5, HIGH);

digitalWrite(LED6, LOW);

digitalWrite(LED7, HIGH);

}

else if (valor == 5) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

digitalWrite(LED3, HIGH);

digitalWrite(LED4, HIGH);

digitalWrite(LED5, HIGH);

digitalWrite(LED6, LOW);

digitalWrite(LED7, HIGH);

}

else if (valor == 6) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, HIGH);

digitalWrite(LED3, HIGH);

digitalWrite(LED4, LOW);

digitalWrite(LED5, HIGH);

digitalWrite(LED6, HIGH);

digitalWrite(LED7, HIGH);

}

}