El sensor de ultrasónico es un magnífico sensor capaz de alcanzar distancias entre 0 a 5 metros, pero ¿Como funciona este sensor?, el sensor envia un sonido fino y pequeño que el oido
humano no puede recibir, al hacer un chique con un objeto, se regresa al sensor que a este fenomeno se le llama eco, cuando el emisor del sensor capta el sonido, solo mide la duración del 0 y
tiempo que tardo el 1 (que es el sonid), al saber la catidad del tiempo y el número de ceros, el microcontrolador sabrá la distancia recorrida del sonido y el tiempo que tardo en regresar, a este
paso se llama "Give up" que en español es rendición.
descargar el ping.
descargar el archivo.
Comunmente llamado ping, ya que el mismo pin de señal funciona para entrada y salida, tan solo se debe de tomar en cuenta los microsegundos que estará enviando y recibiendo la señal, ya que puede arruinar tanto el sensor como Arduino.
/*uso del sensor Ultrasonico PING con Arduino.
Creado por Art Banshee*/
unsigned long pulsos; // variable para medir el pulso.
float distancia;//calcularemos la distancia.
int salida = 8; // Donde enviará el sonido.
void setup(){Serial.begin(9600);}
void loop(){
pinMode(salida,OUTPUT);//declaramos el 8 como salida.
digitalWrite(salida,HIGH);//escribiremos un 1.
delayMicroseconds(10);//esperaremos los microsegundos.
digitalWrite(salida,LOW); // escribiremos un 0.
pinMode(salida, INPUT);//lo declaramos como salida.
/*Mediremos el ancho de pulso y de espera transmitida
del eco del sonido.*/
pulsos = pulseIn(salida, HIGH);
Serial.print("Tiempo = ");
/*Lo transformamos el pulso en tiempo recibido*/
Serial.print(float(pulsos/1000.0));
Serial.print("ms, distancia = ");
//transformamos el pulso en distancia.
distancia = ((float(pulsos/1000.0))*34.32)/2;
Serial.print(distancia);
Serial.println("cm");
delay(100);
}
Conocido como sensor HC-SR04, tiene la misma función del otro sensor, pero aquí ya no tienes por preocuparte el tiempo de transmision y emision de un solo pin, este posee los pines por separado, lo unico que te debes de preocupar es el tiempo que se transmitará y el emisor cuento tiempo debe esperar.
/*Sensor de ultrasonido HC-SR04.
Creado por Art Banshee*/
long distancia;
long tiempo;
int transmisor = 9;
int emisor = 8;
void setup(){ Serial.begin(9600);
pinMode(transmisor, OUTPUT);
pinMode(emisor, INPUT);
}
void loop(){
digitalWrite(transmisor, LOW);
delayMicroseconds(5);
digitalWrite(transmisor, HIGH);
delayMicroseconds(10);
tiempo = pulseIn( emisor, HIGH);
/*Lo que hará es, el transmisor estará apagado por 5
microsegundos, después enviará un sonido por 10
microsegundos, cuando se hace el rebote del sonido,
activará la entrada del emisor y ahí medirá la longitud
del pulso.*/
distancia = int(0.017*tiempo);
// convertiremos el tiempo en distancia.
Serial.print("Distancia = ");
Serial.print(distancia);
Serial.println(" cm");
delay(100);
}
Para saber el llenado de un tanque de agua, solo se necisita saber la cantidad de litros que llevara y la resta de altura. Por ejemplo, si tenemos que el sensor ya mide distancia y tenemos un tanque de 30 cm, lo que el sensor enviará a Arduino la distancia en 30 cm, pero convertirlo a 2 litros, solo dividimos 30/15 para que marque su límite que será los 2 Lts.
Si tienen problemas con los litros está esta pequeña formula:
distancia cm 30 cm
LitrosCal = ------------ = -------- = 15
Litros deseados 2 Litros
después:
distancia 30
Litros calculados = ---------- = ---- = 2 Litros
litrosCal 15
Así con esta fórmula sabrán sacar el calculos para sus tanques, por ejemplo si mi tanque está a la mitad que son 15 cm, entonces 15/15 = 1 Litro, y si está a 1/4, 7.5/15 = 0.5 Litros(que son 500 mL).