Go Down

Topic: Ayuda proyecto flash led (Read 328 times) previous topic - next topic

borjadfm

Hola, estoy haciendo unas luces tipo disco y tal y por ahora me las he apañado para hacer 3 efectos diferentes, pero el problema esta en que me gustaría cargarlos al arduino y con pulsadores, interruptores o l o que sea poder cambiar la función, como  poderia hacerlo?
Aqui os dejo un ejemplo de uno de los 3 programas que tengo realizado

int ledDelay = 60; // delay by 50ms
int l1 = 2;
int l2 = 3;
int l3 = 4;
int l4 = 7;
int l5 = 8;
int l6 = 9;

void setup() {
pinMode(l1, OUTPUT);
pinMode(l2, OUTPUT);
pinMode(l3, OUTPUT);
pinMode(l4, OUTPUT);
pinMode(l5, OUTPUT);
pinMode(l6, OUTPUT);
}

void loop() {

digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
digitalWrite(l3, HIGH);
delay (ledDelay);

digitalWrite(l1, LOW);
digitalWrite(l2, LOW);
digitalWrite(l3, LOW);
delay(ledDelay);

digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
digitalWrite(l3, HIGH);
delay (ledDelay);

digitalWrite(l1, LOW);
digitalWrite(l2, LOW);
digitalWrite(l3, LOW);
delay(ledDelay);

digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
digitalWrite(l3, HIGH);
delay (ledDelay);

digitalWrite(l1, LOW);
digitalWrite(l2, LOW);
digitalWrite(l3, LOW);

digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);
digitalWrite(l3, HIGH);
delay (ledDelay);

digitalWrite(l1, LOW);
digitalWrite(l2, LOW);
digitalWrite(l3, LOW);
delay(ledDelay);


digitalWrite(l4, HIGH);
digitalWrite(l5, HIGH);
digitalWrite(l6, HIGH);
delay (ledDelay);

digitalWrite(l4, LOW);
digitalWrite(l5, LOW);
digitalWrite(l6, LOW);
delay(ledDelay);

digitalWrite(l4, HIGH);
digitalWrite(l5, HIGH);
digitalWrite(l6, HIGH);
delay (ledDelay);

digitalWrite(l4, LOW);
digitalWrite(l5, LOW);
digitalWrite(l6, LOW);
delay(ledDelay);

digitalWrite(l4, HIGH);
digitalWrite(l5, HIGH);
digitalWrite(l6, HIGH);
delay (ledDelay);

digitalWrite(l4, LOW);
digitalWrite(l5, LOW);
digitalWrite(l6, LOW);
delay(ledDelay);

digitalWrite(l4, HIGH);
digitalWrite(l5, HIGH);
digitalWrite(l6, HIGH);
delay (ledDelay);

digitalWrite(l4, LOW);
digitalWrite(l5, LOW);
digitalWrite(l6, LOW);
delay(ledDelay);

}


Code: [Select]
int efecto = 1;
#define ultEfecto 3
#define pinPulsador 7


void efecto1()
{
   // Codigo del efecto 1
}

void efecto2()
{
   // Codigo del efecto 2
}

void efecto3()
{
   // Codigo del efecto 3
}


void setup()
{
   pinMode(pinPulsador, INPUT);
}

void loop()
{
   if( digitalRead(pinPulsador) )
   {
      while( digitalRead(pinPulsador) );
   
      if( efecto < ultEfecto )
         efecto++;
      else
         efecto = 1;
   }


   switch(efecto)
   {
      case 1: efecto1(); break;
      case 2: efecto2(); break;   
      case 3: efecto3(); break;         
   }
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.

Go Up