Ir al contenido principal

Secuenciador de 7 canales y 5 efectos con Arduino



En esta entrada se muestra el código con el cual se programó un secuenciador utilizando una placa Arduino Uno, cada diodo led tiene una resistencia limitadora de corriente conectada entre su cátodo y GND


/*SECUENCIADOR 7 CANALES Y 5 EFECTOS*/

/*Pines donde van conectados los led*/
int pinled0 = 0;
int pinled1 = 2;
int pinled2 = 4;
int pinled3 = 6;
int pinled4 = 8;
int pinled5 = 10;
int pinled6 = 12;
/*corresponden a los pines digitales 0,2,4,6,8,10,12 , si se quieren cambiar los pines
 en los cuales se conectan los leds se deben modificar las sentencias anteriores */

void setup() {
 /*AQUI VAN LAS CONFIGURACIONES DE LOS PINES*/
  pinMode(pinled0,OUTPUT); /*se configuran los pines digitales como salidas*/
  pinMode(pinled1,OUTPUT);
  pinMode(pinled2,OUTPUT);
  pinMode(pinled3,OUTPUT);
  pinMode(pinled4,OUTPUT);
  pinMode(pinled5,OUTPUT);
  pinMode(pinled6,OUTPUT);
}

void loop() {
  /*EL SECUENCIADOR*/
  /*con los bucles for se controlan las repeticiones de cada efecto*/
  for (int rep0=0;rep0<=2;rep0++){
    efecto1();
    };
  apagado();
  for (int rep1=0;rep1<=3;rep1++){
        efecto2();
    };
  apagado();
  for(int rep2=0;rep2<=6;rep2++){
    efecto3();
  }
  apagado();
  for(int rep3=0;rep3<=20;rep3++){
    efecto4();
    }
  apagado();
  for(int rep4=0;rep4<=2;rep4++){
    efecto5();
    }
   apagado();
}
/*FUNCION APAGADO*/
void apagado(){
  digitalWrite(pinled0,LOW);
  digitalWrite(pinled1,LOW);
  digitalWrite(pinled2,LOW);
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,LOW);
  digitalWrite(pinled5,LOW);
  digitalWrite(pinled6,LOW);
  delay(50);
  }
/*FIN FUNCION APAGADO*/
/*DEFINICION DE EFECTOS*/
void efecto1(){
  digitalWrite(pinled0,HIGH);/*enciendo led*/
  digitalWrite(pinled1,LOW);
  digitalWrite(pinled2,HIGH);
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,HIGH);
  digitalWrite(pinled5,LOW);
  digitalWrite(pinled6,HIGH);
  delay(300);/*espero*/
  digitalWrite(pinled0,LOW);/*apago led*/
  digitalWrite(pinled1,HIGH);
  digitalWrite(pinled2,LOW);
  digitalWrite(pinled3,HIGH);
  digitalWrite(pinled4,LOW);
  digitalWrite(pinled5,HIGH);
  digitalWrite(pinled6,LOW);
  delay(300);/*espero*/
  }
 void efecto2(){
  int k,l = 0;
  while(k<=7){
  digitalWrite(pinled0,HIGH);
  digitalWrite(pinled1,HIGH);
  digitalWrite(pinled2,HIGH);
  delay(50);
  digitalWrite(pinled0,LOW);
  digitalWrite(pinled1,LOW);
  digitalWrite(pinled2,LOW);
  delay(50);
  k++;
 }
 while(l<=7){
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,HIGH);
  digitalWrite(pinled5,HIGH);
  digitalWrite(pinled6,HIGH);
  delay(50);
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,LOW);
  digitalWrite(pinled5,LOW);
  digitalWrite(pinled6,LOW);
  delay(50);
  l++;
 }
  }
 void efecto3(){
    int i=0;
  while(i<=12){
   digitalWrite(pinled6,LOW);
  digitalWrite(i,HIGH);
  delay(50);
  digitalWrite(i-2,LOW);
  i=i+2;
  };

  int j=12;
  while(j>=0){
   digitalWrite(pinled0,LOW);
  digitalWrite(j,HIGH);
  delay(50);
  digitalWrite(j+2,LOW);
  j=j-2;
  };
  }
 void efecto4(){
  digitalWrite(pinled0,HIGH);
  digitalWrite(pinled1,HIGH);
  digitalWrite(pinled2,HIGH);
  digitalWrite(pinled3,HIGH);
  digitalWrite(pinled4,HIGH);
  digitalWrite(pinled5,HIGH);
  digitalWrite(pinled6,HIGH);
  delay(50);
  digitalWrite(pinled0,LOW);
  digitalWrite(pinled1,LOW);
  digitalWrite(pinled2,LOW);
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,LOW);
  digitalWrite(pinled5,LOW);
  digitalWrite(pinled6,LOW);
  delay(50);
  }
  void efecto5(){
    digitalWrite(pinled6,LOW);
  digitalWrite(pinled0,HIGH);
  delay(300);
  digitalWrite(pinled1,HIGH);
  delay(300);
  digitalWrite(pinled2,HIGH);
  delay(300);
  digitalWrite(pinled0,LOW);
  digitalWrite(pinled1,LOW);
  digitalWrite(pinled2,LOW);
  digitalWrite(pinled3,HIGH);
  delay(300);
  digitalWrite(pinled4,HIGH);
  delay(300);
  digitalWrite(pinled5,HIGH);
  delay(300);
  digitalWrite(pinled3,LOW);
  digitalWrite(pinled4,LOW);
  digitalWrite(pinled5,LOW);
  digitalWrite(pinled6,HIGH);
  delay(300);
  }
  /*FIN DEFINICION DE EFECTOS*/

Comentarios

Entradas más populares de este blog

Valores comerciales de resistencias

*La tabla anterior corresponde a resistencias con tolerancia de +/-5% y +/- 10%, para resistencias de precisión se pueden encontrar otros valores.

Equivalencias métricas entre fracciones de pulgadas y milímetros

En la siguiente tabla se muestra la conversión entre las fracciones de pulgadas de uso común, y su valor expresado en milímetros:

Tabla de consulta de diodos zener

La siguiente tabla cumple la función de una tabla de consulta para diodos zener de potencia igual a 1 watt: