/************************************************************
***** Ruleta Electronica v2.0 **
***** imprime en pantala aletoriamente un nro del 0 al 36 **
***** indicando su color **
*************************************************************/
//Definiciones
#define INTRO 0
#define PRESENTACION 1
#define ESPERA 2
#define RESULTADO 3
#define NEGRO 0
#define ROJO 1
//Setup inicial
void setup()
{
Serial.begin(9600);
}
/*************************************************************************
**************************************************************************
MAQUINA DE ESTADO
**************************************************************************
*************************************************************************/
void loop ()
{
//declaracion de variables locales
unsigned char estado,n;
unsigned char color[37]={0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,1,0,
1,0,1,0,0,1,0,1,0,1,0,1}; //Tabla de colores
estado=n=0;
estado=INTRO;
while(1)
{
switch(estado)
{
case INTRO:
Serial.println("Ruleta electronica Epel");
estado=PRESENTACION;
break;
case PRESENTACION:
estado=ESPERA;
Serial.println("Presione cualquier tecla ");
break;
case ESPERA:
if (Serial.available()>0)
{
n=random(0,36);
if(n==0)
Serial.println ("Cero");
if (color[n]==NEGRO)
{
Serial.print ("Negro el ");
Serial.println (n,DEC);
}
if (color[n]==ROJO)
{
Serial.print ("Colorado el ");
Serial.println (n,DEC);
}
Serial.read(); //vacio el buffer
estado=PRESENTACION;
}
break;
}
}
}
Mira también estos otros artículos