PRÁCTICA 9 : SEMÁFORO
Hay que construir un semáforo (3 leds) con una barrera (1 servomotor).
El funcionamiento sería el siguiente:
a) La barrera está abajo y el semáforo está en rojo (tiempo el que elijais, 5 segundos por ejemplo)
b) La barrera está abajo y el semáforo está en amarillo (tiempo el que elijais, pero menor que en rojo)
c) La barrera sube durante dos segundos (hay que calcular que avance 90º en dos segundos) y el amarillo sigue encendido
d) Llega la barrera arriba y se enciende el verde durante algun tiempo.
e)
Baja la barrera despacito (3 segundos) para no causar daños a personas o
vehículos y se enciende la luz amarilla mientras baja la barrera.
f) llega la barrera abajo y se enciende la luz roja
#define LEDROJO 12
#define LEDAMARILLO 10
#define LEDVERDE 11
#include <Servo.h>
#define PINSERVO 9
Servo myservo;
int pos=0;
void setup () {
pinMode (LEDROJO,OUTPUT);
pinMode (LEDAMARILLO,OUTPUT);
pinMode (LEDVERDE,OUTPUT);
myservo.attach(PINSERVO);
}
void loop () {
digitalWrite (LEDROJO,HIGH);
delay (5000);
digitalWrite (LEDROJO,LOW);
digitalWrite(LEDAMARILLO,HIGH);
delay (20);
for(pos=0; pos<=90; pos=pos+1);
myservo.write(pos);
delay(22.2);
digitalWrite(LEDAMARILLO,LOW);
delay(20);
digitalWrite(LEDVERDE,HIGH);
delay (130);
for(pos=90; pos>=0; pos=pos-1);
myservo.write(pos);
delay(22.2);
digitalWrite(LEDVERDE,LOW);
}
#define LEDROJO 12
#define LEDAMARILLO 10
#define LEDVERDE 11
#include <Servo.h>
#define PINSERVO 9
Servo myservo;
int pos=0;
void setup () {
pinMode (LEDROJO,OUTPUT);
pinMode (LEDAMARILLO,OUTPUT);
pinMode (LEDVERDE,OUTPUT);
myservo.attach(PINSERVO);
}
void loop () {
digitalWrite (LEDROJO,HIGH);
delay (5000);
digitalWrite (LEDROJO,LOW);
digitalWrite(LEDAMARILLO,HIGH);
delay (20);
for(pos=0; pos<=90; pos=pos+1);
myservo.write(pos);
delay(22.2);
digitalWrite(LEDAMARILLO,LOW);
delay(20);
digitalWrite(LEDVERDE,HIGH);
delay (130);
for(pos=90; pos>=0; pos=pos-1);
myservo.write(pos);
delay(22.2);
digitalWrite(LEDVERDE,LOW);
}
Comentarios
Publicar un comentario