int pinArray [] = { 2,3,4,5,6,7,8,9,10,11,12,13,A1,A2,A3,A4,A5}; // Declaración de los PIN-es mediante un array
int controlLed = 1; // LED de control
int waitNextLed = 100; // Tiempo antes de encender el siguiente LED
int tailLength = 1; // Número de LED-s que permanecen encendidos antes de empezar a apagarlos para formar la cola
int lineSize = 17; // Número de LED-s conectados (que es también el tamaño del array)
const int inPin = 0;
void setup() // Configuración de los PIN-es como salida digital
{
int i;
Serial.begin(9600);
pinMode (controlLed, OUTPUT);
for (i=0; i< lineSize; i++)
{
pinMode(pinArray[i], OUTPUT);
}
}
void loop()
{
int i;
int tailCounter = tailLength; // Se establece la longitud de la cola en un contador
for (i=0; i<lineSize; i++) // Se enciende el LED de control para indicar el inicio del loop
{
digitalWrite(pinArray[i],HIGH); // Se encienden consecutivamente los LED
int value = analogRead(inPin); //Lee entrada analogica 1
Serial.println(value);
if (value <= 250)
{
value = 250;
}
waitNextLed=value/10;
delay(waitNextLed); // Esta variable de tiempo controla la velocidad a la que se mueve la estrella
if (tailCounter == 0)
{
digitalWrite(pinArray[i-tailLength],LOW); // Se apagan los LED-s en función de la longitud de la cola.
}
else
if (tailCounter > 0)
tailCounter--;
}
for (i=(lineSize-tailLength); i<lineSize; i++)
{
digitalWrite(pinArray[i],LOW); // Se apagan los LED
delay(waitNextLed); // Esta variable de tiempo controla la velocidad a la que se mueve la estrella
}
// Desde aca la rutina para volver
for (i=lineSize; i>=0; i--) // Se enciende el LED de control para indicar el inicio del loop
{
digitalWrite(pinArray[i],HIGH); // Se encienden consecutivamente los LED
delay(waitNextLed); // Esta variable de tiempo controla la velocidad a la que se mueve la estrella
if (tailCounter == 0)
{
digitalWrite(pinArray[i+tailLength],LOW); // Se apagan los LED-s en función de la longitud de la cola.
}
else
if (tailCounter > 0)
tailCounter--;
}
for (i= 2; i>=0; i--)
{
digitalWrite(pinArray[i],LOW); // Se apagan los LED
delay(waitNextLed); // Esta variable de tiempo controla la velocidad a la que se mueve la estrella
}
}