Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
12.- Juego de luces. PWM y Desplazamiento.
- Aprovechamos el circuito anterior 10.- Cuenta arriba abajo, para realizar un juego de luces.
- Cuando pulsamos el Botón del pin8 Los LED 3, 5 y 6 (PWM), se encienden y apagan poco a poco
Cuando pulsamos el Botón del pin9 se ilumina un LED de izquierda a derecha y luego de derecha a izquierda.
Cuando pulsamos los dos Botones, parpadeará el LED2.
- Los botones deben mantenerse pulsados para que se realice los juegos de luces.
- 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.
Código |
/*
Juan A. Villalpando
kio4.com
agosto 2015
*/
/* Pulsamos el pulsador del pi8, los LED 3, 5 y 6, que son PWM, encenderán y apagarán poco a poco.
Pulsamos el pulsador del pi9, se irán iluminando los LED uno a uno a izquierda y luego a derecha.
Pulsamos a la vez los dos pulsadores, el LED 2 parpadeará. Se deben mantener pulsados. */
#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 // PWM
#define LED4 4
#define LED5 5 // PWM
#define LED6 6 // PWM
int luces1, luces2; // Variables enteras.
int tiempo=100;
// 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 desplazamiento();
}
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 && luces2 == LOW) {
for (int contador=0; contador<=255; contador++){
analogWrite(LED3, contador);
analogWrite(LED5, contador);
analogWrite(LED6, contador);
delay(10);
}
for (int contador=255; contador>=0; contador--) {
analogWrite(LED3, contador);
analogWrite(LED5, contador);
analogWrite(LED6, contador);
delay(10);
}
}
//////////////////////////////////////////////
if (luces1 == LOW && luces2 == HIGH) {
desplazamiento();
}
//////////////////////////////////////////////
if (luces1 == HIGH && luces2 == HIGH) {
digitalWrite(LED2, HIGH);
delay(50);
digitalWrite(LED2, LOW);
delay(50);
}
}
////////////////////////////////////////////////
// Subrutina desplazamiento()
void desplazamiento(){
digitalWrite(LED2, HIGH);
delay(tiempo);
digitalWrite(LED2, LOW);
delay(tiempo);
digitalWrite(LED3, HIGH);
delay(tiempo);
digitalWrite(LED3, LOW);
delay(tiempo);
digitalWrite(LED4, HIGH);
delay(tiempo);
digitalWrite(LED4, LOW);
delay(tiempo);
digitalWrite(LED5, HIGH);
delay(tiempo);
digitalWrite(LED5, LOW);
delay(tiempo);
digitalWrite(LED6, HIGH);
delay(tiempo);
digitalWrite(LED6, LOW);
delay(tiempo);
digitalWrite(LED5, HIGH);
delay(tiempo);
digitalWrite(LED5, LOW);
delay(tiempo);
digitalWrite(LED4, HIGH);
delay(tiempo);
digitalWrite(LED4, LOW);
delay(tiempo);
digitalWrite(LED3, HIGH);
delay(tiempo);
digitalWrite(LED3, LOW);
delay(tiempo);
digitalWrite(LED2, HIGH);
delay(tiempo);
digitalWrite(LED2, LOW);
delay(tiempo);
} |
_________________
- Propuestas.
- Diseña otros juego de luces. Utiliza más pulsadores.
________________________________
|