Proyecto 26 - Parking Sensor
En el siguiente tutorial veremos como hacer un sensor de aparcamiento para el coche.
Utilizaremos un sensor de ultrasonidos para medir la distancia y con un zumbador piezoeléctrico y dos leds haremos señales sonoras y luminosas.
Este proyecto está basado en el original de tek.no
Podéis consultar el original aquí, en noruego :-)
Esquema
Sketch - Parking Sensor
/*
Based on the origianl sketch from tek.no
http://www.tek.no/artikler/guide-slik-lager-du-din-egen-ryggesensor-med-arduino/185196?key=z4INTnz4
Modified by Angel M. Muñoz
https://sites.google.com/site/angmuz/home/proyecto-26
*/
#define echoPin 2
#define trigPin 3
#define piezo 9
#define led1 10
#define led2 12
float maximumRange = 20;
float minimumRange = 0;
long duration;
int cm;
float aux;
int pause_ms;
long unsigned int forrige_beep;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(piezo, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
//Leer distancia para valores iniciales
int avstand = lesAvstand();
pause_ms = avstand * 2;
}
//Función que mide la distancia en cm
int lesAvstand() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
cm = duration/58.2;
return cm;
}
void loop() {
// Almacena el número de milisegundos desde el Arduino empezó
forrige_beep = millis();
// Actualiza la medición de distancia
while (millis() - forrige_beep < pause_ms) {
int avstand = lesAvstand();
pause_ms = (avstand*2)+10;
}
//Asegura pitidos no mas largos de 500 ms
int pip_ms = pause_ms;
if (pip_ms > 1000)
{
pip_ms = 1000;
}
Serial.println(cm);
//Si la distancia es mayor de 5cm creamos un bip
if (cm < 4)
{
analogWrite(piezo, 16);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
else
{
analogWrite(piezo, 16);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(pip_ms);
digitalWrite(piezo, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
}
Links
Yvind Nydal Dahl: www.tek.no