Secuencias de Leds

Ejemplo 1

En una placa Arduino UNO tenemos 10 leds conectados en los pines 2,3,4,5,6,7,8,9,10,11 y dos pulsadores en los pines 12 y 13. Utilizando un objeto de la clase VUMeter podemos encender y apagar los leds de forma secuencial o todos ellos a la vez.

Hemos de utilizar la librería <BasicEducationShield.h> que se puede descargar en esta misma página.

Con cada una de las cuatro combinaciones de los dos pulsadores se ejecutan las funciones fill, scrollRight, scrollLeft y blinkAll.

#include <BasicEducationShield.h>

VUMeter tiraled;

int pins[]={2,3,4,5,6,7,8,9,10,11};

int pinCount=10;

void setup(){

pinMode(12,INPUT);

pinMode(13,INPUT);

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

tiraled.config(pinCount,pins);

tiraled.begin();

}

void loop(){

if(digitalRead(12)==LOW&&digitalRead(13)==LOW)tiraled.fill(10);

if(digitalRead(12)==HIGH&&digitalRead(13)==LOW)tiraled.scrollRight(500,0);

if(digitalRead(12)==LOW&&digitalRead(13)==HIGH)tiraled.scrollLeft(500,0);

if(digitalRead(12)==HIGH&&digitalRead(13)==HIGH)tiraled.blinkAll(500,10);

}

Ejemplo 2

En una placa Arduino UNO tenemos 10 leds conectados en los pines 2,3,4,5,6,7,8,9,10,11 y dos pulsadores en los pines 12 y 13.

Apretando cada uno de los dos pulsadores conseguimos que los leds se desplacen hacia uno y otro lado.

int pulsador1=12;

int pulsador2=13;

void setup(){

pinMode(12,INPUT);

pinMode(13,INPUT);

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

}

void loop(){

if(digitalRead(pulsador1)==HIGH){

for(int x=2;x<=11;x++){

digitalWrite(x,HIGH);

digitalWrite(x-1,LOW);

delay(1000);

}

}

if(digitalRead(pulsador2)==HIGH){

for(int x=11;x>=2;x--){

digitalWrite(x,HIGH);

digitalWrite(x+1,LOW);

delay(1000);

}

}

}

Ejemplo 3

Se trata de un programa que hace una secuencia de LEDs, encendiéndose hacia el centro.

void setup() {

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

}

void loop() {

digitalWrite(6,LOW);

digitalWrite(8,LOW);

for(int x=1;x<=5;x++){

digitalWrite(x+1,HIGH);

digitalWrite(13-x,HIGH);

digitalWrite(x,LOW);

digitalWrite(14-x,LOW);

delay(100);

digitalWrite(7,HIGH);

}

}

Ejemplo 4

Se trata de un programa que genera una secuencia de LEDs con rebote en el centro.

void setup() {

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

}

void loop() {

for(int x=1;x<=5;x++){

digitalWrite(x+1,HIGH);

digitalWrite(13-x,HIGH);

digitalWrite(x,LOW);

digitalWrite(14-x,LOW);

delay(100);

}

digitalWrite(6,LOW);

digitalWrite(8,LOW);

digitalWrite(7,HIGH);

for(int x=1;x<=5;x++){

digitalWrite(7-x,HIGH);

digitalWrite(x+7,HIGH);

digitalWrite(8-x,LOW);

digitalWrite(x+6,LOW);

delay(100);

}

}

Ejemplo 5

Se trata de un programa de secuencia de LEDs que aumenta de uno a cuatro la cantidad de LEDs que se encienden juntos.

void setup() {

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

pinMode(7,OUTPUT);

pinMode(8,OUTPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

}

void loop() {

for(int y=2;y<=12;y++){

digitalWrite(y,HIGH);

digitalWrite(y-1,LOW);

delay(100);

}

digitalWrite(12,LOW);

for(int y=2;y<=11;y++){

digitalWrite(y,HIGH);

digitalWrite(y+1,HIGH);

digitalWrite(y-2,LOW);

digitalWrite(y-1,LOW);

delay(100);

}

digitalWrite(11,LOW);

digitalWrite(12,LOW);

for(int y=2;y<=10;y++){

digitalWrite(y,HIGH);

digitalWrite(y+1,HIGH);

digitalWrite(y+2,HIGH);

digitalWrite(y-3,LOW);

digitalWrite(y-2,LOW);

digitalWrite(y-1,LOW);

delay(100);

}

digitalWrite(10,LOW);

digitalWrite(11,LOW);

digitalWrite(12,LOW);

for(int y=2;y<=9;y++){

digitalWrite(y,HIGH);

digitalWrite(y+1,HIGH);

digitalWrite(y+2,HIGH);

digitalWrite(y+3,HIGH);

digitalWrite(y-4,LOW);

digitalWrite(y-3,LOW);

digitalWrite(y-2,LOW);

digitalWrite(y-1,LOW);

delay(100);

}

digitalWrite(9,LOW);

digitalWrite(10,LOW);

digitalWrite(11,LOW);

digitalWrite(12,LOW);

for(int y=2;y<=8;y++){

digitalWrite(y,HIGH);

digitalWrite(y+1,HIGH);

digitalWrite(y+2,HIGH);

digitalWrite(y+3,HIGH);

digitalWrite(y+4,HIGH);

digitalWrite(y-5,LOW);

digitalWrite(y-4,LOW);

digitalWrite(y-3,LOW);

digitalWrite(y-2,LOW);

digitalWrite(y-1,LOW);

delay(100);

}

digitalWrite(8,LOW);

digitalWrite(9,LOW);

digitalWrite(10,LOW);

digitalWrite(11,LOW);

digitalWrite(12,LOW);

}