Saltar la navegación

Programa

//LEDS CONECTADOS EN FORMA DE ESTRELLA Y UNO EN EL CENTRO
//mEDIANTE BLUETERM ENVIAMOS CARACTERES (SEGUN LAS TECLAS) Y SE
//ENCIENDEN / APAGAN LOS LEDS SELECCIONADOS
int ledArriba = 2;
int ledCentro = 6;
int ledAbajo = 4;
int ledDerecha = 3;
int ledIzquierda = 5;
byte dato;
////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
pinMode(ledArriba,OUTPUT);
pinMode(ledAbajo,OUTPUT);
pinMode(ledIzquierda,OUTPUT);
pinMode(ledDerecha,OUTPUT);
pinMode(ledCentro,OUTPUT);
}
void loop() {
  if (Serial.available()) //Guardamos en la variable dato el valor leido
        dato= Serial.read();
   //Comprobamos el dato
   switch(dato)
       {//Si recibimos una  ...
         case 85: //ARRIBA
         {
           digitalWrite(ledArriba, HIGH);
           digitalWrite(ledAbajo, LOW);
           digitalWrite(ledDerecha, LOW);
           digitalWrite(ledIzquierda, LOW);
           digitalWrite(ledCentro, LOW);
           
         break;
       }
         case 68: //"U": ABAJO
         {
           digitalWrite(ledArriba, LOW);
           digitalWrite(ledAbajo, HIGH);
           digitalWrite(ledDerecha, LOW);
           digitalWrite(ledIzquierda, LOW);
           digitalWrite(ledCentro, LOW);
           
           break;
         }
           case 67: //"D": CENTRO
         {
           digitalWrite(ledArriba, LOW);
           digitalWrite(ledAbajo, LOW);
           digitalWrite(ledDerecha, LOW);
           digitalWrite(ledIzquierda, LOW);
           digitalWrite(ledCentro, HIGH);
           
           break;
         }
         case 76: //"L": IZQ
         { 
           digitalWrite(ledArriba, LOW);
           digitalWrite(ledAbajo, LOW);
           digitalWrite(ledDerecha, LOW);
           digitalWrite(ledIzquierda, HIGH);
           digitalWrite(ledCentro, LOW);
           break;
         }
         case 82: //"R": DCH
         {
           digitalWrite(ledArriba, LOW);
           digitalWrite(ledAbajo, LOW);
           digitalWrite(ledDerecha, HIGH);
           digitalWrite(ledIzquierda, LOW);
           digitalWrite(ledCentro, LOW);
           break;
         }
         case 97: //Recibimos "a"
         {
            sentidoReloj();
            break;
         }
         case 98: //Recibimos "b"
         {
           sentidoContrario();
           break;           
         }
         case 99: //Recibimos "c"
         {
           fueraDentro();
           break;          
         }
}
}

void sentidoReloj(){
   digitalWrite(ledArriba, HIGH);   
  delay(100);                  
  digitalWrite(ledArriba, LOW);    
  delay(10); 
  digitalWrite(ledDerecha, HIGH);   
  delay(100);                  
  digitalWrite(ledDerecha, LOW);    
  delay(10); 
  digitalWrite(ledAbajo, HIGH);   
  delay(100);                  
  digitalWrite(ledAbajo, LOW);    
  delay(10); 
  digitalWrite(ledIzquierda, HIGH);   
  delay(100);                  
  digitalWrite(ledIzquierda, LOW);    
  delay(10); 
 }

void sentidoContrario(){
  digitalWrite(ledArriba, HIGH);   
  delay(100);                  
  digitalWrite(ledArriba, LOW);    
  delay(10); 
  digitalWrite(ledIzquierda, HIGH);   
  delay(100);                  
  digitalWrite(ledIzquierda, LOW);    
  delay(10); 
  digitalWrite(ledAbajo, HIGH);   
  delay(100);                  
  digitalWrite(ledAbajo, LOW);    
  delay(10); 
  digitalWrite(ledDerecha, HIGH);   
  delay(100);                  
  digitalWrite(ledDerecha, LOW);    
  delay(10); 
  }
void fueraDentro(){
 digitalWrite(ledArriba, HIGH);                     
  digitalWrite(ledDerecha, HIGH);    
  digitalWrite(ledAbajo, HIGH);                     
  digitalWrite(ledIzquierda, HIGH);
  delay(1000);
  digitalWrite(ledArriba, LOW);   
  digitalWrite(ledDerecha, LOW); 
  digitalWrite(ledAbajo, LOW); 
  digitalWrite(ledIzquierda, LOW);
  delay(10);
  digitalWrite(ledCentro, HIGH);   
  delay(1000);                  
  digitalWrite(ledCentro, LOW);    
  delay(10); 
}