Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Medición de distancia usando Arduino y sensor ultrasónico

Proyecto de medición de distancia ultrasónica usando Arduino

Últimamente, la medición de distancia ultrasónica es una herramienta útil en varias aplicaciones. Se puede utilizar en diversas aplicaciones, como posicionamiento, localización, dimensionamiento, selección, medición de nivel, control y perfilado. Al hacer algunos cálculos matemáticos con los valores de salida, también podemos medir la velocidad y otras dimensiones físicas. El dispositivo también tiene aplicaciones en el campo de la robótica.

Entonces, teniendo en cuenta estas aplicaciones, el sensor ultrasónico es una excelente herramienta para medir distancias sin hacer ningún contacto físico en distancias pequeñas. Utilizan el concepto de ECHO para medir la distancia. En este proyecto, aprenderemos a medir la distancia conectando el módulo sensor HC-SR04 con Arduino y mostraremos la distancia en una pantalla LCD de 16×2.

Diagrama de circuito del proyecto de medición de distancia

La interfaz es realmente simple. Solo necesitas seguir el diagrama del circuito. Entonces, en primer lugar, los pines Trig y Echo del sensor ultrasónico están conectados a A4 y A5 de Arduino UNO y VCC y GND están conectados a 5V y GND de Arduino.

Ahora, vamos a mostrar la distancia en una pantalla LCD de 16×2 que está conectada con el Arduino. Conecte los pines RS y EN al pin digital 12 y al pin digital 11 de Arduino respectivamente. Ahora conecte D4-D7 de LCD al pin digital 5-2 de Arduino. También hemos conectado un potenciómetro de 10K para controlar el contraste de la pantalla LCD como se muestra en el diagrama del circuito.

Componentes necesarios

Módulo de sensor ultrasónico

El módulo sensor utilizado aquí es HC-SR04 , que es un dispositivo de medición ultrasónica sin contacto. Este pequeño módulo es capaz de medir la distancia dentro del rango de 2 cm a 400 cm. Es un sensor realmente preciso, puede medir hasta 3 mm.

El sensor consta de un transmisor ultrasónico y un receptor ultrasónico. El principio de funcionamiento es realmente simple. En primer lugar, el disparador IO envía una señal de alto nivel durante 10 μs. Luego, el módulo del sensor envía ocho ciclos de 40 kHz de sonido ultrasónico y detecta si la señal del pulso se recibe o no. Y si se recibe la señal, a través de un nivel alto, la duración del tiempo durante el cual el activador de E/S permanece alto es el tiempo desde el envío hasta la recepción de la señal.

Distancia =(Tiempo de nivel alto x Velocidad del sonido en el aire (340 M/s))/2

Diagrama de tiempo

Como se discutió anteriormente, el módulo funciona con el ECHO del sonido. Para la activación del módulo, se envía un pulso durante unos 10 μs. Después de este proceso, el módulo envía ocho ciclos de 40 kHz de sonido ultrasónico y verifica su reflejo. Entonces, si hay algún obstáculo, la señal golpea con él y regresa al receptor. Y ahora la distancia se calcula mediante una fórmula simple discutida anteriormente. Lo hemos dividido por 2 porque este tiempo es el tiempo total para alcanzar el obstáculo y volver al receptor, por lo que el tiempo necesario para alcanzar el obstáculo es la mitad del tiempo total. El diagrama de tiempos de este sensor se muestra a continuación:

Especificaciones técnicas
Patillas de salida del sensor ultrasónico HC-SR04

Como se discutió anteriormente, el módulo funciona según el principio de ECHO de sonido. Entonces, cuando conectamos el módulo con cualquier microcontrolador, primero el módulo se activa a través del pin Trig y se envía un pulso de alto nivel durante 10 μs. Luego, esperamos recibir el ECHO. El microcontrolador puede calcular el tiempo. Y luego la distancia se calcula mediante la fórmula discutida anteriormente.

Arduino UNO

Arduino es un microcontrolador de código abierto ampliamente utilizado en muchos proyectos integrados de pequeña y gran escala. El Arduino que se utiliza en este proyecto es Arduino-UNO. La razón para usar este Arduino es que es más barato y fácil de interconectar. La placa proporciona 14 pines de E/S digitales y 6 pines analógicos. El microcontrolador es de código abierto, por lo que depende del usuario cómo quiere usarlo. Puede modificar la placa y el software según las necesidades.

Módulo LCD de 16×2

Estos módulos se usan comúnmente en muchos lugares en proyectos integrados, porque son más económicos y fáciles de conectar con los microcontroladores. Es posible que haya visto este tipo de pantalla en calculadoras, mustímetros, etc. El módulo LCD que se usa aquí puede mostrar 16 caracteres seguidos y tiene dos filas. Entonces, básicamente tiene 16 columnas y 2 filas. Cada carácter mostrado se compone de 5×8 píxeles (matriz de píxeles).

Si calcula el total de píxeles en toda la pantalla LCD, el resultado es 5x8x16x2=1280 píxeles. Que es un numero grande. Ahora, para mostrar algo en la pantalla LCD, también debemos especificar la posición de los caracteres. Entonces, es realmente algo difícil de hacer. Entonces, para administrar el funcionamiento adecuado, se usa un IC llamado HD44780. Este IC obtiene los datos y los comandos del microcontrolador y luego realiza un procesamiento para que la salida deseada se pueda imprimir en la pantalla LCD. Este IC hace que la interfaz de LCD sea muy fácil. Podemos usar LCD en muchos de nuestros proyectos para mostrar la salida a través de los sensores o de cualquier otro módulo. Echemos un vistazo a algunas de las especificaciones técnicas del módulo LCD.

Veamos una configuración de pines de LCD.

Distribución de pines LCD 16×2 y descripción

Número PIN Nombre Descripción
1 VSS Es la tierra y está conectado a tierra del circuito.
2 VDD Fuente de alimentación para la pantalla LCD (4,7 V a 5,3 V), normalmente 5 V
3 VE Este pin se utiliza para manipular el contraste de la pantalla LCD. Para hacerlo, necesitamos conectar un potenciómetro con este pin. Entonces, al ajustar la perilla del potenciómetro, podemos obtener diferentes niveles de contraste en la pantalla.
4 RS Seleccionar Registro. Este pin se usa para cambiar entre comando y registro de datos. Este pin está conectado al microcontrolador
5 RW Lectura/Escritura. Este pin se utiliza para leer o escribir en la pantalla LCD. Generalmente está conectado a tierra para escribir los datos.
6 ES Habilitar pin. Este pin está conectado con el microcontrolador y se le asigna 1 o 0 para confirmar los datos.
7 Pines de datos (0-7) Estos pines se utilizan para enviar datos de 8 bits a la pantalla LCD desde el microcontrolador. Esta pantalla LCD también se puede utilizar en modo de 4 bits. Para esto solo necesitas conectar 4 pines de datos.
8 A Ánodo. Este pin es un pin positivo para la luz de fondo de la pantalla LCD. Es completamente opcional usar este pin. Úselo si necesita la luz de fondo. El consumo de corriente se reduce mucho si no utiliza la luz de fondo como se muestra en las especificaciones técnicas.
9 K Cátodo. Este pin es un pin negativo para la luz de fondo de la pantalla LCD.

Veamos la interfaz básica de LCD con Arduino. Imprimiremos algo de texto en la pantalla LCD escribiendo un código simple. En primer lugar, conecte el pin RS y EN al pin digital 12 y 11 de Arduino. Ahora conecte los pines D4-D7 de la pantalla LCD a los pines digitales 5-2 de Arduino. Ahora conecte RW, VSS y K con tierra y VDD y A con 5V de Arduino. Conecte un potenciómetro con VE como se muestra en el diagrama del circuito para controlar el contraste de la pantalla LCD.

Ahora ven a la parte de codificación. Primero, debemos incluir la biblioteca LiquidCrystal.h para la pantalla LCD.

#include

Ahora, en las próximas dos líneas, hemos definido variables para los pines de datos de LCD conectados con Arduino y luego los pasamos como argumento en la función lcd para que podamos enviar los datos desde Arduino a LCD.

const int rs =12, en =11, d4 =5, d5 =4, d6 =3, d7 =2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

En la función de configuración, hemos inicializado la pantalla LCD usando la función lcd.begin(). Hemos pasado 16 y 2 porque el LCD que estamos usando tiene 16 columnas y 2 filas y también estamos usando todo el LCD. Si solo necesita una parte de LCD, puede pasar los argumentos en consecuencia.

A continuación, estamos imprimiendo '¡Hola, mundo!' en la siguiente línea. Puede imprimir cualquier mensaje personalizado que desee imprimir, pero tenga en cuenta que el mensaje que exceda el tamaño de la pantalla se imprimirá en la siguiente línea. Por lo tanto, manipule su mensaje en consecuencia.

lcd.begin(16, 2);

lcd.print(“¡Hola, mundo!”);

En la función de bucle hemos puesto el cursor en la posición (0,1) usando la función lcd.setCursor(). Después de esto, estamos imprimiendo el tiempo durante el cual se está imprimiendo el mensaje.

lcd.setCursor(0, 1);

lcd.print(millis() / 1000);

Después de escribir el código, súbalo a la placa Arduino y verá que el mensaje se imprime en la pantalla. Puede cambiar el contraste girando la perilla del potenciómetro conectado.

Programación de Arduino para medición de distancia de sensores ultrasónicos

La parte de codificación es realmente muy fácil para este proyecto. Comience por incluir el archivo de encabezado para LCD.

#include <LiquidCrystal.h>

En las siguientes dos líneas, hemos definido macros para el pin A4 (pin 18) y A5 (pin 19) de Arduino para que podamos usar esos nombres en lugar de usar el pin números.

#define trig 18
#define echo 19

Ahora, en las siguientes líneas, definimos las variables para diferentes pines de LCD conectados a Arduino y luego las pasamos a la función lcd para que podamos inicializar la pantalla LCD.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Ahora hemos definido la variable de distancia 'd' y la variable de tiempo 't' y las inicializamos con 0.

float t=0,d=0;

Ahora ven a la función de configuración. En la primera línea, hemos inicializado la pantalla LCD usando lcd.begin() y luego, en las siguientes dos líneas, hemos definido los modos de pin para los pines de disparo y eco como salida y entrada respectivamente.

void setup()
{
 lcd.begin(16,2);
 pinMode(trig,OUTPUT);
 pinMode(echo,INPUT);
}

A continuación, vaya a la función de bucle. Primero, borramos la pantalla LCD con la función lcd.clear() para que después de cada iteración del bucle, la salida anterior no afecte la salida actual. Ahora, en las próximas seis líneas, estamos inicializando nuestro sensor ultrasónico enviando el pulso de alto nivel durante 10 μs. Y como sabemos que después de esto, el sensor envía automáticamente ocho ciclos de 40kHz de sonido ultrasónico y comprueba su reflejo. Entonces, en la siguiente línea, hemos obtenido la hora del sensor. Entonces estamos calculando la distancia. Lo hemos dividido por 10000 porque la velocidad está en metros/seg, así que tenemos que convertirlo en centímetros.

void loop() 
{
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  t = pulseIn(echo, HIGH);
  d = t * 0.0340 / 2;
  d = t * 0.01330 / 2;
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(d);
  lcd.print(" cm");
  delay(1000); 
}

Funcionamiento del circuito de medición de distancia

Después de escribir el código, súbalo a Arduino y estará listo. Ahora lleve cualquier objeto o su mano frente al sensor. Compruebe la distancia en la pantalla LCD. Siga cambiando la distancia del objeto desde el sensor y obtendrá una buena distancia precisa.

Cuando inicializamos el sensor enviando el pulso de alto nivel durante 10 μs, el sensor envía ocho ciclos ultrasónicos de 40 kHz y si estos ciclos se reflejan en algún obstáculo, se reflejan de vuelta al receptor. Ahora, el sensor da el tiempo que tarda en viajar la señal ultrasónica desde el transmisor hasta el obstáculo y desde el obstáculo hasta el receptor. Entonces, usamos este tiempo para calcular la distancia entre el sensor y el obstáculo.


Tecnología Industrial

  1. Qué es un sensor de distancia en funcionamiento y sus aplicaciones
  2. Sensor Arduino - Tipos y aplicaciones
  3. Módulo y circuito del sensor PIR funcionando
  4. Sensor de temperatura Python y Raspberry Pi
  5. Máquina de LEVITACIÓN ULTRASÓNICA usando ARDUINO
  6. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  7. IOT - Smart Jar usando ESP8266, Arduino y sensor ultrasónico
  8. Medición de frecuencia y ciclo de trabajo con Arduino
  9. Radio FM usando Arduino y RDA8057M
  10. Mini radar con Arduino
  11. Luz controlada por toque usando Arduino