Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nueva práctica sobre encender una serie de LEDs tipo estrella fugaz,
ver Práctica 13.
// Semáforo
// declarando parametros
int led_rojo = 8;
// del botón
void setup() {
pinMode(led_verde, OUTPUT);
pinMode(led_amarillo, OUTPUT);
pinMode(led_rojo, OUTPUT);
state=1-state;
delay(10);
if (state==1){
delay(4000);
}
Algoritmo 1 Código para encender y apagar un LED utilizando un
} botón pulsador.
https://circuits.io/circuits/4125384-practica-11-encender-varios-led-a-
una-secuencia-especifica-semaforo/
11.5 Conclusión:
En esta práctica se ha introducido un suiche mediante botón pulsador
que sirve para activar o desactivar parte del código en Arduino o
comportamiento del circuito También se ha desarrollado un código que
permite encender y apagar una secuencia de LEDS lo que permitió
simular el funcionamiento del semáforo. Uno de los inconvenientes
encontrados es que para apagar el circuito es necesario presionar el
botón pulsador luego de que el LED rojo se apague. Esto debido a que
la opción delay no permite simultáneamente registrar el estado del
botón. Esto se solucionará en una nueva práctica donde el encendido
y apagado del LED se realice sin la opción delay.
Temporizador opcional
void setup(){
for(int i =0; i<5;i++){ //Configura salida de leds en pines 2, 3,4,5 y 6
como salida
pinMode(leds[i],OUTPUT);
}
pinMode(pin_boton,INPUT);
tiempo= millis();
digitalWrite(pin_boton,HIGH);
}
void loop(){
if (digitalRead(pin_boton) == LOW){ //Revisa que has presioando el boton
delay(50);
if (digitalRead(pin_boton) == LOW) { // Espera 50 milisegundos para
evitar antirrebotes.
while(pin_boton == LOW){} //Espera que sueltes el boton
if(activa==true){Activa = false;} //Si esta activo se apaga
if(activa==false){Activa = true;} // Sie sta apagado se activa
}
}
if(activa == true){ //Si esta activo llama a la fucion encender_leds();
encender_leds();
}
}
void encender_leds(){
if(millis()-tiempo>1000 && millis()-tiempo < 10000){
digitalWrite(leds[0],HIGH);
}else
if (millis()-tiempo > 10000){
digitalWrite(leds[0],LOW);
} //primer
if(millis()-tiempo>2000 && millis()-tiempo < 50000){
digitalWrite(leds[1],HIGH);
}else
if (millis()-tiempo > 5000){
digitalWrite(leds[1],LOW);
} //Segundo
if(millis()-tiempo>10000 && millis()-tiempo < 21000){
digitalWrite(leds[2],HIGH);
}else
if (millis()-tiempo > 21000){
digitalWrite(leds[2],LOW);
} //tercer
if(millis()-tiempo>500 && millis()-tiempo < 8000){
digitalWrite(leds[3],HIGH);
}else
if (millis()-tiempo > 8000){
digitalWrite(leds[3],LOW);
} //cuarto
if(millis()-tiempo>500 && millis()-tiempo < 25000){
digitalWrite(leds[4],HIGH);
}else
if (millis()-tiempo > 25000){
digitalWrite(leds[4],LOW);
tiempo= millis();
} //quinto
}