Trivol, juega, crea y programa

Aprende a programar y a trabajar circuitos electrónicos simples mediante la creación de un juego de mesa para que retes y te diviertas con tus amigos.

Código de Arduino para el dado electrónico

Este es el código que deben usar para configurar el dado que usaremos dentro de la clase de Creando un dado con Arduino y display de siete segmentos

int valor = 0;
int tiempo = 500;
#define pulsador A4
#define a 2
#define b 3
#define c 4
#define d 5
#define e 6
#define f 7
#define g 8
#define pt 9

void apagado(){
  
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,0);
  

}

void uno(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,0);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,0);
  digitalWrite(f,0);
  digitalWrite(g,0);
  digitalWrite(pt,1);
  delay(500);
  for (int i=1000; i>500; i=i*.90) {
  }
  }
}

void dos(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,0);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,0);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(500);
 for (int i=1000; i>500; i=i*.90) {
  }
  } 

}

void tres(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,0);
  digitalWrite(f,0);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(500);
  for (int i=1000; i>500; i=i*.90) {
  }
  } 

}

void cuatro(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,0);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,0);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
   delay(500);
 for (int i=1000; i>500; i=i*.90) {
  }
  }

}
void cinco(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,0);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,0);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
   delay(500);
 for (int i=1000; i>500; i=i*.90) {
  }
  }

}

void seis(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,0);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
   delay(500);
  for (int i=1000; i>500; i=i*.90) {
  }
  }

}

void siete(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,0);
  digitalWrite(f,0);
  digitalWrite(g,0);
  digitalWrite(pt,1);
   delay(500);
  for (int i=1000; i>500; i=i*.90) {
  }
  }

}

void ocho(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
    for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
   delay(500);
  for (int i=1000; i>500; i=i*.90) {
  }
  }

}

void nueve(){
  for(int contador = 0; contador < 4; contador++){
  apagado();
  delay(500);
   for (int i=1000; i<2000; i=i*1.10) {
  }
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,0);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
   delay(500);
   for (int i=1000; i>500; i=i*.90) {
  }
 
  }

}

void girar(){
  int contador;
  for(contador = 0; contador < 10; contador++){
  digitalWrite(a,0);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,0);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,0);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,0);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,0);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  }
  
apagado();
}

void rebotarV(){
  int contador;
  for(contador = 0; contador < 10; contador++){
  digitalWrite(a,0);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/5);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,0);
  digitalWrite(pt,1);
  delay(tiempo/5);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,0);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/5);
  
 
  }
  
apagado();
}

void rebotarH(){
  int contador;
  for(contador = 0; contador < 10; contador++){
  digitalWrite(a,1);
  digitalWrite(b,0);
  digitalWrite(c,0);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,0);
  digitalWrite(f,0);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,0);
  digitalWrite(c,0);
  digitalWrite(d,1);
  digitalWrite(e,1);
  digitalWrite(f,1);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  digitalWrite(a,1);
  digitalWrite(b,1);
  digitalWrite(c,1);
  digitalWrite(d,1);
  digitalWrite(e,0);
  digitalWrite(f,0);
  digitalWrite(g,1);
  digitalWrite(pt,1);
  delay(tiempo/10);
  }
  
apagado();
}


void dado(){
  girar();
  switch(valor){
  case 1: {uno();}
  break;
  case 2:{ dos();}
  break;
  case 3:{ tres();}
  break;
  case 4:{ cuatro();}
  break;
  case 5:{ cinco();}
  break;
  case 6:{ seis();}
  break;
  case 7:{ siete();}
  break;
  case 8:{ ocho();}
  break;
  case 9:{ nueve();}
  break;
  }
  }


  void beep (float noteFrequency, long noteDuration)
{    
  int x;
  // Convert the frequency to microseconds
  float microsecondsPerWave = 1000000/noteFrequency;
  // Calculate how many HIGH/LOW cycles there are per millisecond
  float millisecondsPerCycle = 1000/(microsecondsPerWave * 2);
  // Multiply noteDuration * number or cycles per millisecond
  float loopTime = noteDuration * millisecondsPerCycle;
  // Play the note for the calculated loopTime.
  for (x=0;x<loopTime;x++)   {
}
}     
     

void squeak() {
  for (int i=100; i<5000; i=i*1.45) {
  }
  delay(10);
  for (int i=100; i<6000; i=i*1.5) {
  }
}

void setup() {
  pinMode(pulsador, INPUT);
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(pt, OUTPUT);
  squeak();
  girar();
  rebotarH();
  rebotarV();

}

void loop() {

if(digitalRead(pulsador) == 1){squeak();dado();}
randomSeed(analogRead(A0));
valor = random(0,9);
}
 

Sat, Mar 30, 2019 8:53 PM, 4 months ago

Gustavo Enrique BARRAGAN SANCHEZ

0 Registrado 5 months ago