/*
Ejercicio 1.6
Modifica el programa anterior para, además de controlar el
sentido de encendido de los LEDs, controlar la velocidad de
encendido de los mismos mediante otro conmutador. Si el
conmutador está a 0, el tiempo de encendido de cada LED será
de 150ms, mientras que si está a 1, el tiempo será de 50ms.
NOTA: Para realizar este programa de forma eficiente, no se debe
escribir dos veces la misma secuencia, con dos retardos diferentes,
sino que se debe emplear una variable para generar los retardos.
*/
/*
Ejercicio 1.5
Realiza un programa para que el microcontrolador genere una
secuencia de encendido de 8 LEDs, con una velocidad de encendido
de cada LED de 100ms, de forma que se pueda elegir el sentido
de la secuencia mediante un conmutador.
Si el conmutador está a nivel bajo, los LEDs se irán encendiendo
de derecha a izquierda, mientras que si está a nivel alto, lo harán de
izquierda a derecha.
Siempre que se encienda un LED, el anterior se mantendrá también
encendido, hasta que queden los 8 LEDs encendidos. Entonces se apagarán
todos los LEDs y la secuencia comenzará de nuevo, con el sentido de
encendido que indique el conmutador.
*/
#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define LED5 9
#define LED6 8
#define LED7 7
#define LED8 6
#define CONMUT 5
#define VEL 4
byte retardo;
int i;
int tempo1= 500;
int tempo2 = 250;
void setup()
{
for (i=6;i<=13;i++)
{
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
}
void loop()
{
if (digitalRead(CONMUT)==0)
{
/*
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
*/
for (i=6;i<=13;i++)
{
digitalWrite(i,HIGH);
delay(tempo1);
digitalWrite(i+1,HIGH);
delay(tempo1);
}
}
if (digitalRead(CONMUT)==1)
{
/*digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
*/
for (i=13;i>=6;i--)
{
digitalWrite(i,HIGH);
delay(tempo1);
digitalWrite(i-1,HIGH);
delay(tempo1);
}
}
}
/* Tarea 5
#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define LED5 9
#define LED6 8
#define LED7 7
#define LED8 6
#define CONMUT 5
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(CONMUT, INPUT);
}
void loop() {
if (digitalRead(CONMUT)==0) {
//Comenzamos a encender cada LED secuencialmente, de DERECHA
//a IZQUIERDA
digitalWrite(LED1, HIGH);
delay(100);
digitalWrite(LED2, HIGH);
delay(100);
digitalWrite(LED3, HIGH);
delay(100);
digitalWrite(LED4, HIGH);
delay(100);
digitalWrite(LED5, HIGH);
delay(100);
digitalWrite(LED6, HIGH);
delay(100);
digitalWrite(LED7, HIGH);
delay(100);
digitalWrite(LED8, HIGH);
delay(100);
}
else {
//Comenzamos a encender cada LED secuencialmente, de
//IZQUIERDA a DERECHA
digitalWrite(LED8, HIGH);
delay(100);
digitalWrite(LED7, HIGH);
delay(100);
digitalWrite(LED6, HIGH);
delay(100);
digitalWrite(LED5, HIGH);
delay(100);
digitalWrite(LED4, HIGH);
delay(100);
digitalWrite(LED3, HIGH);
delay(100);
digitalWrite(LED2, HIGH);
delay(100);
digitalWrite(LED1, HIGH);
delay(100);
}
}
*/
/*
#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define LED5 9
#define LED6 8
#define LED7 7
#define LED8 6
#define CONMUT 5
#define VEL 4
byte retardo;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(CONMUT, INPUT);
pinMode(VEL, INPUT);
}
void loop() {
if (digitalRead(VEL)==0)
retardo=150;
else
retardo=50;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
if (digitalRead(CONMUT)==0) {
//Comenzamos a encender cada LED secuencialmente, de DERECHA
//a IZQUIERDA
digitalWrite(LED1, HIGH);
delay(retardo);
digitalWrite(LED2, HIGH);
delay(retardo);
digitalWrite(LED3, HIGH);
delay(retardo);
digitalWrite(LED4, HIGH);
delay(retardo);
digitalWrite(LED5, HIGH);
delay(retardo);
digitalWrite(LED6, HIGH);
delay(retardo);
digitalWrite(LED7, HIGH);
delay(retardo);
digitalWrite(LED8, HIGH);
delay(retardo);
}
else {
//Comenzamos a encender cada LED secuencialmente, de
//IZQUIERDA a DERECHA
digitalWrite(LED8, HIGH);
delay(retardo);
digitalWrite(LED7, HIGH);
delay(retardo);
digitalWrite(LED6, HIGH);
delay(retardo);
digitalWrite(LED5, HIGH);
delay(retardo);
digitalWrite(LED4, HIGH);
delay(retardo);
digitalWrite(LED3, HIGH);
delay(retardo);
digitalWrite(LED2, HIGH);
delay(retardo);
digitalWrite(LED1, HIGH);
delay(retardo);
}
}
*/