You are on page 1of 5

Juego de luces. PWM y Desplazamiento.

- Cuando pulsamos el Botn del pin8 Los LED 3, 5 y 6 (PWM), se encienden y


apagan poco a poco
Cuando pulsamos el Botn 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 estn conectados en ctodo comn, es decir todos los


ctodos estn conectados entre s. La resistencia limitadora es comn.
- Observa cmo cambia la luminosidad segn la cantidad que haya
encendido. Para evitar esto, pondramos una resistencia en cada
diodo.
/*
Juan A. Villalpando
kio4.com
agosto 2015
*/

/* Pulsamos el pulsador del pi8, los LED 3, 5 y 6, que son PWM,


encendern y apagarn poco a poco.
Pulsamos el pulsador del pi9, se irn 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 parmetros 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);
}

You might also like