1- Funcionamiento:
El sensor dispone de un emisor y un receptor.
*No se cual es cual exactamente ,quedaros con que tiene un receptor y un emisor.
El pin Trig controla el emisor y el Echo el receptor, la distancia que tarda es el tiempo que tarada en ir y venir/2/29, se divide entre dos por que la onda sale del Emisor(Trig) y vuelve por el receptor(Echo).
Nosotros solo queremos la distancia hacia el objeto, una vez dividido el resultado lo dividimos entre la velocidad del sonido en cm/microsegundos es decir 29.
2-Caractersitcas:
- Número de pines 4:
TRIG: Trigger entrada (input) del sensor (TTL)
ECHO: Echo salida (output) del Sensor (TTL)
GND
- Corriente de reposo: < 2mA.
- Corriente de trabajo: 15mA.
- Ángulo de medición: 30º (Efectivo: < 15º).
- Detección de 2cm a 400cm (Sirve a más de 4m, pero no se garantiza una buena medición).
- La precisión puede variar entre los 3mm o 0.3cm.
- Dimensiones: 45mm x 20mm x 15mm.
- Frecuencia de trabajo: 40KHz.
3-Conexion:
1-Conectamos GND de Arduino a el GND del sensor y lo mismo con 5v.
2-Ahora conectamos el trig y el echo a a 2 pines digitales (en mi caso 2 y 3).
Ya esta ¿era simple no?.
4-Codigo para Arduino sin libreria:
*El código esta configurado para mandarte la medición si solo la quieres para las condicionales(If) puedes quitar lo que este en *
//Usamos define para hacer una constante que no guarda datos
#define Trig 2 //Definimos el pin Trig
#define Echo 3 //Definimos el pin Echo
int duracion; //Creamos una variable para guardar la duracion del pulso
int distancia; //Creamos una variable para guardar la distancia
void setup() {
Serial.begin(9600); //*
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
}
void loop() {
digitalWrite(Trig, LOW); //Apagamos Trig para comprobar que esta apagado
delayMicroseconds(2); //Esperamos
digitalWrite(Trig, HIGH); //Enecendemos Trig
delayMicroseconds(10); //Esperamos
digitalWrite(Trig, LOW); //Apagamos Trig
duracion = pulseIn(Echo, HIGH); //Leemos el tiempo que tardo la onda con pulseIn()
distancia = duracion / 2 / 29 ; //Hacemos una operación para pasarlo a una distancia(Cm)
delay(1000); //* Esperamos
Serial.print("distancia"); //*
Serial.print(distancia); //*
Serial.println("cm"); //*
Serial.println(); //*
}
5-Codigo para Arduino con librería NewPing.
Si no la tienes la puedes descargar aquí.
Con la libreria es muy fácil, solo hay que poner 15 lineas de código.
*El código esta configurado para mandarte la medición si solo la quieres para las condicionales(If) puedes quitar lo que este en *
#include <NewPing.h> //Incluimos la libreria
int Trig = 2; //Declaramos Trig.
int Echo = 3; //Declaramos Echo.
NewPing Sonar(trig,echo,500); //Ponemos nombre al sensor (sonar),definimos a que pin corresponden (Trig y Echo) y la distancia maxima que pueda leer.
int distancia; //Creamos una variable para la distancia.
void setup(){
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
Serial.begin(9600); //Iniciamos la comunicación serial.*
}
void loop(){
distancia = Sonar.ping_cm(); //Distancia sera igual a el valor del Sonar en Cm.
Serial.print("Distancia"); //*
Serial.print(distancia); //*
Serial.println("cm"); //*
Serial.println(); //*
delay(1000); //*
}