4 feb. 2015

SENSOR DE APARCAMIENTO CON ARDUINO

Con esta práctica vamos a desarrollar un sistema de ayuda al estacionamiento (PARKTRONIC) , donde mediante un sensor de distancia por ultrasonidos vamos a emitir un pitido con mayor frecuencia conforme nos acercamos al obeto.

¿Qué son los ultrasonidos?

Un ultrasonido es una onda acústica o sonora cuya frecuencia está por encima del espectro audible del oído humano (aproximadamente 20.000 Hz).
Sabiendo esto, veamos como es y como funciona el sensor utilizado:
El sensor HC-SR04 
Como componente principal del proyecto, utilizaré un sensor de ultrasonidos HC-SR04. Este sensor contiene un emisor y un receptor de ondas de ultrasonidos, y funciona a modo de sonar, de tal forma que el emisor lanza un tren de pulsos ultrasónicos – de 40 kHz en este caso – y el receptor espera el “eco” de dicho tren de pulsos en algún objeto.

En el datasheet del sensor podemos ver que la distancia medida es proporcional a la amplitud del eco de la señal enviada, y para calcular dicha distancia, nos remitimos a la formula “Distancia = Velocidad x Tiempo”.


MATERIAL NECESARIO


1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Buzzer o altavoz
1 – Sensor de ultrasonidos HC-SR04
4 - Conectores macho-hembra
   – Cables para conexiones


CONEXIONADO EN PLACA PROTOBOARD



CÓDIGO
 /* Programa que simula el funcionamiento de un sensor de aparcamiento,
pitando con una frecuencia mayor conforme nos aproximamos al objeto */

int speakerPin = 8;
long distancia;
long tiempo;
int j;
void setup(){
  Serial.begin(9600);
  pinMode(6, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
  pinMode(7, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}

void loop(){
  digitalWrite(6,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);
  digitalWrite(6, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);
  tiempo=pulseIn(7, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
  del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
  deja de hacerlo, LOW, la longitud del pulso entrante*/
  distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
  /*Monitorización en centímetros por el monitor serial*/
  Serial.println("Distancia ");
  Serial.println(distancia);
  Serial.println(" cm");
  //delay(1000);
  if(distancia<=40)
  {
  if(distancia >=0 && distancia<=3)
    j = 1;
  if(distancia >3 && distancia<=8)
    j = 50;
  if(distancia >8 && distancia<=20)
    j = 300;
  if(distancia >20 && distancia<=30)
    j = 600;
  if(distancia >30 && distancia<=40)
    j = 900;
  if(distancia >40)
    j = 1200;
  tone(speakerPin,349);
    delay(j);
    noTone(speakerPin);
    delay(100);
  }
  else
  {
   noTone(speakerPin);
  }

}



No hay comentarios:

Publicar un comentario