martes, 24 de mayo de 2016

Aqui tenemos el programa ya terminado

#define LED 13
#define pinIR1 3
#define pinIR2 2
boolean val;
int IR = 1;
int IR2 = 1;
int trigPin = 8;
int echoPin = 9;
int trigPin2 = 6;
int echoPin2 = 7;

long duration; //tiempo de ida/vuelta
long duration2;
int cm = 0; //Para almacenar el valor obtenido en cm valor=0
int cm2 = 0;
#include <Servo.h>
Servo myservo; // crea un objeto tipo servo para controlar el servo


/* YourDuino.com Example Software Sketch
 16 character 2 line I2C Display
 Backpack Interface labelled "A0 A1 A2" at lower right.
 ..and
 Backpack Interface labelled "YwRobot Arduino LCM1602 IIC V1"
 MOST use address 0x27, a FEW use 0x3F
 terry@yourduino.com */

/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 16 chars 2 line display
// A FEW use address 0x3F
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

/*-----( Declare Variables )-----*/
//NONE

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);
  myservo.attach(10); //conecta al pin 10
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);


  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on 

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0 
  lcd.setCursor(0,0); //Start at character 4 on line 0
  lcd.print("Bienvenido");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print("Al Parking");
  delay(2000); 

// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
    
  lcd.clear();
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("IES CPerezPastor");
  lcd.setCursor(0,1);
   
}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
 {
      IR = digitalRead(pinIR1);// digital interface will be assigned a value of 3 to read val
      IR2 = digitalRead(pinIR2);
     
     // Ultrasonido 1--------------------
        //ponemos al trigger a low para activarlo después
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      //Activar el módulo con un pulso de 10microsec.
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      //Esperamos la llegada de un pulso HIGH
      duration = pulseIn(echoPin, HIGH); // valor del pulso alto en microsegundos
      //tiempo de ida y vuelta, dividimos por 2
      duration=duration/2;
      //La velocidad del sonido es de 340 m/s
      //El pin echo entrega un pulso alto
      //de una duración de 29 microsegundos
      //por cada centímetro de distancia
      //a la que esté el objeto.
      cm = duration/ 29;
       // Nos aseguramos de que el siguiente trigger
      // y el echo actual no se mezclen (recomiendan 50 ms).
       delay(50);
    //fin Ultrasonido 1---------------------------
   
    // Ultrasonido 2--------------------
        //ponemos al trigger a low para activarlo después
      digitalWrite(trigPin2, LOW);
      delayMicroseconds(2);
      //Activar el módulo con un pulso de 10microsec.
      digitalWrite(trigPin2, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin2, LOW);
      //Esperamos la llegada de un pulso HIGH
      duration2 = pulseIn(echoPin2, HIGH); // valor del pulso alto en microsegundos
      //tiempo de ida y vuelta, dividimos por 2
      duration2=duration2/2;
      //La velocidad del sonido es de 340 m/s
      //El pin echo entrega un pulso alto
      //de una duración de 29 microsegundos
      //por cada centímetro de distancia
      //a la que esté el objeto.
      cm2 = duration2/ 29;
       // Nos aseguramos de que el siguiente trigger
      // y el echo actual no se mezclen (recomiendan 50 ms).
       delay(50);
     
      if (cm < 9 || cm2 < 9 )// Cualquiera de los dos detectan coche
      {
        myservo.write(90);
        delay(2000);
      }
     
      if (cm > 9 && cm2 > 9) // Ambos no detectan coches
      {
        myservo.write(0);
        //delay(3000);
      }

      if ((IR == 0 && IR2 == 1) || (IR == 1 && IR2 == 0)){
      lcd.clear();
      lcd.setCursor(0,0); //Start at character 0 on line 0
      lcd.print("Pl. libres = 1");
      }
      if ((IR == 1 && IR2 == 1)){
      lcd.clear();
      lcd.setCursor(0,0); //Start at character 0 on line 0
      lcd.print("Pl. libres = 2");
      }
      if ((IR == 0 && IR2 == 0)){
      lcd.clear();
      lcd.setCursor(0,0); //Start at character 0 on line 0
      lcd.print("Pl. libres = 0");
     

      }

      Serial.println(cm);
      Serial.println(cm2);
      Serial.println(IR);
      Serial.println(IR2);
      delay(500);
     
}/* --(end main loop )-- */


/* ( THE END ) */

A un paso de terminar

Ya estamos a un paso de terminar la barra de parking ya nos funciona, los infrarrojos también sólo nos falta hacer una condición para que en la pantalla se vean las plazas restantes del parking.
En las proximas entradas subiré el funcionamiento de mi parking y también un video en el que salga ya el parking finalizado.

lunes, 23 de mayo de 2016

Ultimas semanas

Resultado de imagen de sensor lcd pantallaA nuestro proyecto le hemos añadido una pantalla LCD. En esta pantalla se ve reflejado las plazas del respectivo Parking. Cuando el detector de infrarojos detecte un objeto en el la plaza del parking la pantalla pondrá las plazas restantes que quedan.


lunes, 29 de febrero de 2016

Ya esta casi

Bueno ya estamos en la quinta semana y estamos apunto de terminar el proyecto. Sólo nos falta conectar el infrarojo y ya tendriamos el proyecto de Arduino hecho, a falta de el proceso de hacer la base de madera del proyecto.
En la siguiente entrada publicaré unas fotos de algunas pruebas que hemos hecho durante estas semanas.

martes, 26 de enero de 2016

Lista de Materiales

Para realizar este trabajo vamos a utilizar la siguiente lista materiales:
 
+Madera
-Un tablero base aglomerado de 30cmx20cm.


+Arduino
-Tarjeta arduino.
-Sensores de: ultrasonido, infrarojos(x4) y un motor servomotor.
-Leds verdes(x4)
-Cables.

lunes, 25 de enero de 2016

¿Qué es?

Vamos a realizar un proyecto sobre un parking.
El parking tendrá la capacidad de almacenar cuatro vehículos en su interior, que para entrar tendrá una barrera que se levantará y bajará al pasar el coche.
También tendrá cuatro LED's que indicaran si hay coches aparcados.