Buenos días.
Estoy haciendo un proyecto para mi instituto y quiero hacer un semáforo con paso a nivel y zumbador.
Me gustaría conectar un sensor ultrasónico para que cuando pasará el "tren" automáticamente se bajará la barrera y se encendiera el led rojo y el zumbador, pero no se como hacerlo.
Me podrían ayudar?
Este es código que tengo hecho con el zumbador, el semáforo y la barrera, me falta implementar el sensor.
#include <Servo.h> //Importamos la biblioteca Servo.h
#include <Arduino.h>
Servo barrera; //Declaramos un servo y se llama barrera, con esto vamos a trabajar
int ledv = 11; //Declaramos un led, en este caso el verde sobre el pin 11
int leda = 12;
int ledr = 13;
//Establecemos el modo de función de cada led
const int pinBuzzer = 10; // ZUMBADOR
void setup(){
pinMode(ledv, OUTPUT);
pinMode(leda, OUTPUT);
pinMode(ledr, OUTPUT);
//Asociamos el servomotor al pin 9 del Arduino
barrera.attach(9);
}
void loop(){
//Comenzamos nuestro programa encendiendo el Led rojo ya que nuestra barrera comienza con la posición 0.
//Esto es ajustable dado que nosotros decidimos las posiciones iniciales
digitalWrite(ledr, HIGH);
//Le mandamos un angulo de 10 grados a nuestro servo por errores de funcionamiento. //Recomiendo que el inicio del mismo sea en 0 grados
digitalWrite(ledr, LOW);
digitalWrite(ledv, HIGH);
delay(1000);
barrera.write(10);
//Hacemos un delay de 5 segundo antes de mandarle la siguiente instruccion
delay (5000);
digitalWrite(ledv, LOW);
delay(1000);
digitalWrite(leda, HIGH);
delay(1000);
digitalWrite(10, HIGH);//enciende zumbador
tone(10, 440, 4000);
digitalWrite(leda, LOW);
delay(1000);
digitalWrite(leda, HIGH);
delay(1000);
digitalWrite(leda, LOW);
delay(1000);
digitalWrite(leda, HIGH);
delay(1000);
digitalWrite(leda, LOW);
delay(1000);
digitalWrite(ledr, HIGH);
//Una vez ha cambiado el led a rojo, cambiamos la posición de la barrera.
barrera.write(100);
delay(5000);
digitalWrite(ledv, LOW);
}
Gracias