//Definimos la constante maxleds que tendrá el máximo de leds que son 8
#define maxleds 8
//Definimos la constante del primer puerto donde irá el primer potenciómetro que será A1
#define pot1 A1
//Definimos la constante del primer puerto donde irá el segundo potenciómetro que será A2
#define pot2 A2
//Definimos un array que contendrá los pines en los que estarán los leds a utilizar
int led[maxleds] = {2,3,4,5,6,7,8,9};
void setup ()
{
//Abrimos el serial de comunicaciones y esperamos que el puerto se abra
Serial.begin(9600);
//Recorremos el array led que contiene los pines
//para después decirle que al arduino que son de salida
for (int i=0;i<maxleds;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
for (int i=0;i<=maxleds;i++)
{
//Primero se lee el valor del primer potenciómetro
int timeon = analogRead(pot1);
//Realiza el mapeo (conversión) de los valores que envía el primer potenciómetro
int t1=map(timeon, 0, 1023, 0, 1000);
//Ahora lee el valor del segundo potenciómetro
int timeoff = analogRead(pot2);
//Realiza el mapeo (conversión) de los valores que envía el segundo potenciómetro
int t2=map(timeoff, 0, 1023, 0, 1000);
//Llamamos la funcion para encender el led ingresando los parametros
prender(led[i],t1);
//Llamamos la funcion para apagar el led ingresando los parametros
apagar(led[i],t2);
}
//Como estamos devolviéndonos para encender los leds ahora
//recorremos nuevamente los leds pero de atrás hacia adelante
for (int i=maxleds;i>=0;i--)
{
//Primero se lee el valor del primer potenciómetro
int timeon = analogRead(pot1);
//Realiza el mapeo (conversión) de los valores que envía el primer potenciómetro
int t1=map(timeon, 0, 1023, 0, 1000);
//Ahora lee el valor del segundo potenciómetro
int timeoff = analogRead(pot2);
//Realiza el mapeo (conversión) de los valores que envía el segundo potenciómetro
int t2=map(timeoff, 0, 1023, 0, 1000);
//Llamamos la funcion para encender el led ingresando los parametros
prender(led[i],t1);
//Llamamos la funcion para apagar el led ingresando los parametros
apagar(led[i],t2);
}
}
//Funcion para enceder el led enviado por parámetros
void prender(int i, int t)
{
//Se enciende el led i con HIGHT
digitalWrite(i, HIGH);
//Con el tiempo de encendido t
delay(t);
}
//Funcion para apagar el led enviado por parámetros
void apagar(int i, int t)
{
//Se enciende el led i con LOW
digitalWrite(i, LOW);
//Con el tiempo de apagado t
delay(t);
}