Faça um dado eletrônico com o Arduino

Neste projeto vamos construir um dado eletrônico para ser usado em seus jogos de tabuleiro, usando um módulo de dado eletrônico  da GBK e um Arduino uno

Apresentação: Júlio Vansan Gonçalves

Materiais:

  • Arduino uno
  • Módulo GBK de dado eletrônico
  • Fios/Jumpers
  • Cabo USB

Para Comprar
Módulo dado Eletrônico
https://produto.mercadolivre.com.br/MLB-1938042188-modulo-dado-eletrnico-gbk-robotics-pl3-_JM

Link códigos usados no vídeo

/* *************************
 *  Projeto Bacana - 09/2021
 *  www.projetobacana.com.br
 *  Júlio Vansan Gonçalves 
 *  *************************/

const int led1=8;
const int led2=7;
const int led3=6;
const int led4=5;
const int led5=4;
const int led6=3;
const int led7=9;
const int bt1=2;
const int vcc=11;

unsigned long tempoBt1=0;
int estadoBt1=0;
int resultado=0;

void setup() {
  Serial.begin(9600);
  Serial.print(" ### Iniciando ### ");
  for(int x=3;x<=9;x++)
    pinMode(x,OUTPUT);

  pinMode(vcc,OUTPUT);  
  digitalWrite(vcc,HIGH);
  pinMode(bt1,INPUT);
  pinMode(13,OUTPUT);  
  digitalWrite(13,LOW);
  iniciaDado();
}

void loop() {
   estadoBt1=digitalRead(bt1);
   delay(50);
if (estadoBt1==HIGH){
    long int semente=millis();
    randomSeed(semente);
    resultado=random(1,7);
    Serial.println();Serial.print("resultado = ");Serial.print(resultado);Serial.print("    Semente = ");Serial.print(semente);Serial.print("    Embaralha = ");
    apaga();
    embaralha();
    tempoBt1=millis();
    switch (resultado){
          case 1:{
              um();
              break; }
          case 2:{
              dois();
              break; }  
           case 3:{
              tres();
              break; }
           case 4:{
              quatro();
              break; }
           case 5:{
              cinco();
              break; }
           case 6:{
              seis();
              break; }      
    } //switch

} //if do botao
   
if (millis() - tempoBt1 > 30000){
    apaga();
    delay(50);  
}//If para apagar após 30 Segundos


}//loop

void apaga(){
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);
  digitalWrite(led7,LOW);
  //delay(300);
}// Função Apaga

void um(){
  apaga();
  digitalWrite(led4,HIGH);
}

void dois(){
  apaga();
  digitalWrite(led1,HIGH);
  digitalWrite(led5,HIGH);
}

void tres(){
  apaga();
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led7,HIGH);
 
}
void quatro(){
  apaga();
  digitalWrite(led1,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led7,HIGH);
 
}
void cinco(){
  apaga();
  digitalWrite(led1,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led7,HIGH);
 
}
void seis(){
  apaga();
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led6,HIGH);
  digitalWrite(led7,HIGH);
}

void sete(){
  apaga();
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  digitalWrite(led5,HIGH);
  digitalWrite(led6,HIGH);
  digitalWrite(led7,HIGH);
 
}

void iniciaDado(){
  int espera=300;
  um();
  delay(espera);
  dois();
  delay(espera);
  tres();
  delay(espera);
  quatro();
  delay(espera);
  cinco();
  delay(espera);
  seis();
  delay(espera);
  apaga();
}//Função Inicia dado

void embaralha(){
  sete();
  delay(1000);
  apaga();
  for (int x=0; x<20;x++){
      int y=random(2,9);
      Serial.print(y);
      digitalWrite(y,HIGH);
      delay(100);
      digitalWrite(y,LOW);
  }
    apaga();  
    delay(300);
}// Função embaralha

— 
Curta, compartilhe e inscreva-se para ficar atualizado com os nossos conteúdos! 
Para saber mais sobre o Canal Projeto Bacana: 
E-mail: contato@projetobacana.com.br
Site: https://www.projetobacana.com.br/  
Facebook:  https://www.facebook.com/projetobacana.com.br
Instagram:  https://www.instagram.com/projetobacana.com.br/
Youtube:  https://www.youtube.com/channel/UC0e1bfaL0-gnAP2KQA5vxqQ