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

Entradas populares de este blog

Cruce de semáforos con pulsador paso de peatones y detector de vehículos.

Motor paso a paso con Arduino

Sensor de agua con Arduino