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);
}