domingo, 7 de febrero de 2010

Uso de vectores

En el siguiente ejemplo utilizaremos 10 LEDs y un botón. El conjunto de los 10 LEDs formarán parte de un vector que nos crearemos para poder controlarlos de forma mas cómoda.
El programa encenderá y apagará un LED por cada intervalo de tiempo. Cada vez que presionemos el botón los LEDs se encenderán o apagarán hasta el último, si en el momento que se están encendiendo volvemos a presionar el botón los LEDs que han quedado encendidos comenzarán a apagarse.

+ Botón al pin 2 (digital)
+ 5V al lado positivo del botón
- Boton a ground

+ Lado positivo LEDs a los pines 4,7,6,9,10,11,12,13,8 (digitales)
- Lado negativo LEDs a ground






const int pinesLed[10]={4,7,6,9,10,11,12,13,8};
const int pinBoton=2;

int aux=0;
int i=0;
int contadorBoton=0;
int lastState=0;
int state=0;

int ultimoTiempo=0;//Auxiliar para la comprobacion de tiempo
int tiempo=100;//Tiempo que hace cada comprobacion iterativamente

void setup()
{
for(i=0; i<10; i++)
{
pinMode(pinesLed[i], OUTPUT);
}
pinMode(pinBoton, INPUT);
}

void loop()
{
state=digitalRead(pinBoton);
if(state!=lastState)
{
if(state==HIGH)
{
contadorBoton++;
}
lastState=state;
}
if(contadorBoton%2==1)
{
for(i=0; i<10; i++)
{
if(millis()-ultimoTiempo>tiempo)//Cada 'tiempo' controlamos el valor del sensor
{
ultimoTiempo=millis();
digitalWrite(pinesLed[i], HIGH);
}
}
}
if(contadorBoton%2==0)
{
for(i=0; i<10; i++)
{
if(millis()-ultimoTiempo>tiempo)//Cada 'tiempo' controlamos el valor del sensor
{
ultimoTiempo=millis();
digitalWrite(pinesLed[i], LOW);
}
}
}
}

No hay comentarios:

Publicar un comentario