Entrada y salida parking con ARDUINO
Conexiones
Código
#define Trig 6 //Defino los pines 5 y 6
#define Echo 5 // para el sensor ultrasonido
#include <Servo.h> // incluimos la libreria del servomotor
Servo servoMotor;
#include <LiquidCrystal.h> // incluimos la libreria de la pantalla LCD
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
Serial.begin(9600); // comunicacion placa/ordenador
lcd.begin(16,2); //iniciamos monitar serie para mostrr el resultador
servoMotor.attach(2);// declaramos el pin por el que el servo empezara ha trabajar
pinMode(Trig,OUTPUT);// declaramos el pin Trig de salida
pinMode(Echo,INPUT);// declaramos el pin Echo de entrada
pinMode(4,INPUT);// declaramos el pin cuartro de entrada (Sensor infrarrojos)
pinMode(1,OUTPUT); // declaro de salida los pines de los leds
pinMode(3,OUTPUT);
pinMode(13,OUTPUT);
}
void loop() {
//servoMotor.write(0);//iniciamos servo en 0º
int Infrarrojo=digitalRead(4); // Variable Infrarrojos lee la tension del pin 4
digitalWrite(Trig,LOW); // apagamos el ultrasonido
digitalWrite(Trig,HIGH); // encendemos ultrasonido
delayMicroseconds(10); // esperamos 10 micosegundos
digitalWrite(Trig,LOW); // apagamos ultrasonido
float tiempo=pulseIn(Echo,HIGH); // declaramos variable tiempo
float distancia =float (tiempo*0.0343/2); // hacemos los calculos para calcular la distancia
// Empezamos a programar el funcionamiento de entrada
if(distancia <8){ // si la distancia es menor que 8
lcd.home(); // nos aseguramos de que en la pantalla LCD no aparece nada
lcd.print(" - STOP! - "); // en la primera linea del LCD aparecera - STOP! -
lcd. setCursor(0,1); // pasamos a escribir en la segunda linea del LCD
lcd.print(" "); // la segunda linea se queda en blanco
delay(2000); // esperamos 2s
lcd.home(); // nos aseguramos de que en la pantalla LCD no aparece nada
lcd.print(" - BIENVENIDO - "); // en la primera linea del LCD mostramos - BIENVENIDO -
lcd. setCursor(0,1); // pasamos a escribir en la segunda linea del LCD
lcd.print("<<<<<< PARKING"); // y en la segunda aparecera <<<<<<PARKING
servoMotor.write(0); //ponemos el servo en 0º
delay(500); // esperamos 0,5s
digitalWrite(1,HIGH); // y encendemos progresivamente los Leds
delay(800);
digitalWrite(3,HIGH);
delay(800);
digitalWrite(13,HIGH);
delay(4000); //y se mantendra el servo abierto y los leds encendidos durante 4s
}
else{ // si no
servoMotor.write(90); // la barrera se cierra - el servo en 90º
lcd.home(); // nos aseguramos de que en la pantalla LCD no aparece nada
lcd.print("PARKING "); // en laprimera linea pondremos PARKING
lcd. setCursor(0,1); // pasmos a escribir en la segunda linea del LCD
lcd.print(" GRATUITO");// y el la segunda linea aparecera GRATUITO
digitalWrite(1,LOW); // y mantenemos los Leds apagados
digitalWrite(3,LOW);
digitalWrite(13,LOW);
}
// programamos para la salida
if(Infrarrojo==LOW){ // si el infrarrojo detecta
servoMotor.write(0); //abrimos la barrera - servo a posicion 0º
digitalWrite(1,HIGH); // y encendemos los Leds
digitalWrite(3,HIGH);
digitalWrite(13,HIGH);
delay(4000); // y la barrera se amntiene abierta y los leds encendidos durante 4s
}
if(Infrarrojo==HIGH){ // Y si el infrarroro no detecta nada
servoMotor.write(90); } // la barrera cerrada - servo en 90º
}
Comentarios
Publicar un comentario