Imos ordenar que se acendan e se apaguen unha serie de LEDs un a un, de forma consecutiva.
No primeiro programa iremos sempre no mesmo sentido, e no segundo iremos primeiro cara adiante e despois cara atrás.
Programas:
1. LEDs consecutivos
[WikiFisica2013, CC BySA]1. LEDs consecutivos: Neste programa utilizamos a función for para:
Configurar como saída os pins do 7 ao 13, evitando ter que facelo un a un.
Ordenar que se acendan e se apaguen os LEDs un a un, de forma consecutiva.
// Declaración de variables:
int tempo = 200; // Definimos a variable tempo cun valor de 200ms
// Configuración:
void setup() {
for (int n=7;n<=13;n++) { // Repítese desde o 7 ata o 13 o seguinte:
pinMode(n, OUTPUT); // Imos configurando os pins como saída
}
}
// Programa
void loop() {
for (int n=7;n<=13;n++) { // Repítese desde 7 ata 13 o seguinte:
digitalWrite(n, HIGH);
delay(tempo);
digitalWrite(n, LOW);
delay(tempo);
}
}
2. Coche fantástico
2. Coche fantástico: Para conseguir o efecto do coche fantástico engadimos un bucle descendente ao programa anterior.
// Declaración de variables:
int tempo = 150; // Definimos a variable tempo cun valor de 200ms
// Configuración:
void setup() {
for (int n=7;n<=13;n++) {
pinMode(n, OUTPUT); // Imos configurando os pins como saída desde o 7 ata o 13
}
}
// Programa:
void loop() {
for (int n=7;n<=13;n++) { // Repítese desde 7 ata 13 o seguinte:
digitalWrite(n,HIGH);
delay(tempo);
digitalWrite(n,LOW);
delay(tempo);
}
for (int n=12;n>=8;n--) { // Repítese desde 12 ata 8 o seguinte:
digitalWrite(n,HIGH);
delay(tempo);
digitalWrite(n,LOW);
delay(tempo);
}
}
Propostas:
Sen apagarse: Fai que os LEDs se vaian acendendo consecutivamente sen apagarse, e despois se vaian apagando un a un, no mesmo sentido ou en sentido contrario.
De dento a fóra. A ver se es quen de facer que os LEDs se vaian acendendo desde o centro ata o exterior e despois se vaian apagando en sentido contrario.
Control de velocidade con potenciómetro: Conecta un potenciómetro a unha entrada analóxica e fai que ao variar a posición do cursor vaia aumentando ou diminuíndo a velocidade das luces do coche fantástico.
Utiliza a función map: tempo=map(pot, 0, 1023, tempo1, tempo2);
Visualizador de LEDs: Conecta un potenciómetro e fai que a medida que imos xirando se vaian acendendo cada vez máis LEDs facendo unha visualización do nivel.
Utiliza a función map. Para 7 LEDs sería: nivel = map(pot, 0, 1023, 0, 7)
Extras:
[By MichaelFrey CC BY-SA via Wikimedia Commons]Con barras de LEDs: Para que os efectos de xogos de luces queden ben xeitosos podemos utilizar unha ou dúas barras de leds como as da imaxe da dereita. Só hai que conectar a cada pin unha resistencia de protección. Proba facer un coche fantástico con 10 Leds!
Como queiras: Fai un xogo de luces diferente a estes e que quede chulo.