Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
11.- Juego de luces.
- Aprovechamos el circuito anterior 10.- Cuenta arriba abajo, para realizar un juego de luces.
- Cuando pulsamos el Botón del pin8 se presenta un juego de luces.
Cuando pulsamos el Botón del pin9 se presenta otro juego de luces.
- Los botones deben mantenerse pulsados (uno u otro, los dos no) para que se realice los juegos de luces.
- Un juego de luces es ir enciéndolas una a una y luego ir apagándolas, también una a una.
- El otro juego de luces en un parpadeo de todas encendidad y luego todas apagadas.
- Los diodos están conectados en cátodo común, es decir todos los cátodos están conectados entre sí. La resistencia limitadora es común.
- Observa cómo cambia la luminosidad según la cantidad que haya encendido. Para evitar esto, pondríamos una resistencia en cada diodo.
- Se ha realizado mediante Subrutinas:
void juego1();
void juego2();
Código |
/*
Juan A. Villalpando
kio4.com
agosto 2015
*/
/* Al pulsar el pulsador del pin8 se ejecuta un juego de luces.
Al pulsar el pulsador del pin9 se ejecuta otro juego de luces.
juego1(), las luces se encienden y apagan secuencialmente.
juego2(), las luces se encienden todas y luego se apagan todas a la vez.
*/
#define pin8 8 // Al terminal 8 lo llamamos pin8. Aquí irá un pulsador.
#define pin9 9 // Al terminal 9 lo llamamos pin9. Aquí irá otro pulsador.
#define LED2 2
#define LED3 3
#define LED4 4
#define LED5 5
#define LED6 6
int luces1, luces2; // Variables enteras.
int contador=0; // Variable contador igual a cero
int cambio=3;
int s=1;
// En el setup establecemos los parámetros iniciales.
void setup() {
pinMode(pin8, INPUT); // El pin8 será entrada. Pulsador.
pinMode(pin9, INPUT); // El pin9 será entrada. Pulsador.
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
void juego1();
void juego2();
Serial.begin(9600); // Para ver información en el Seria Monitor.
}
void loop() {
luces1 = digitalRead(pin8); // Lee el contador del pin8 y se lo asigna a luces1. (Puede ser 0 o 1)
luces2 = digitalRead(pin9); // Lee el contador del pin9 y se lo asigna a luces2. (Puede ser 0 o 1)
if (luces1 == HIGH) {
contador = contador + s;
if (contador > 15) { contador=15; s = -1; }
if (contador < 0) { contador=0; s=1; }
juego1();
}
if (luces2 == HIGH) {
juego2();
}
}
////////////////////////////////////////////////
// Subrutina juego1()
void juego1(){
Serial.print(contador);
if (contador >= cambio*1){ // 3
digitalWrite(LED2, HIGH);
}
else
{
digitalWrite(LED2, LOW);
}
if (contador >= cambio*2){ // 6
digitalWrite(LED3, HIGH);
}
else
{
digitalWrite(LED3, LOW);
}
if (contador >= cambio*3){ // 9
digitalWrite(LED4, HIGH);
}
else
{
digitalWrite(LED4, LOW);
}
if (contador >= cambio*4){ // 12
digitalWrite(LED5, HIGH);
}
else
{
digitalWrite(LED5, LOW);
}
if (contador >= cambio*5){ // 15
digitalWrite(LED6, HIGH);
}
else
{
digitalWrite(LED6, LOW);
}
delay(100); // Retardo entre pulsaciones.
}
////////////////////////////////////////////////
// Subrutina juego2()
void juego2(){
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
delay(500);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
delay(500);
} |
- Fíjate que he puesto varios comandos en la misma línea del if. Separados por punto y coma.
if (contador > 15) { contador=15; s = -1; }
_________________
- Propuestas.
- Diseña otros juego de luces. Utiliza más pulsadores.
________________________________
|