Contador com Dado Eletrônico

Autor: Cláudio Luís V. Oliveira

Neste projeto vamos utilizar o módulo didático PL3 – Dado Eletrônico (video) para criar um contador simples.


Video: 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 1):

  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: Conexão do Arduino ao PL3 – Dado Eletrônico.

Conforme podemos observar no sketch a seguir, sempre que o usuário pressionar o botão o valor mostrado no dado será incrementado.

// Contador com o 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;

int contador = 0;

void setup() {

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) {

contador++;

if (contador > 6)

contador = 0;

mostrarDado(contador);

}

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);

}

}