Tutorial: Sensor ultrasónico (Modo 1: Método GPIO)

Introducción

En este tutorial usaremos la última versión 2021 del popular sensor ultrasónico HC-SR04 y lo conectaremos al Arduino Nano usando un simple script IDE. Es importante tener en cuenta que esta versión 2021 del sensor es diferente de manera notable en comparación con las versiones anteriores que han inundado el mercado. La primera diferencia es que el voltaje de entrada aceptado ahora oscila entre 2,8 V y 5,5 V. Esto es conveniente si desea alimentar el sensor con un microcontrolador, ya que funcionará con un microcontrolador de 3,3 V o con un microcontrolador de 5 V. En este tutorial usaremos el Arduino Nano común de 5 V, pero usaremos el pin de 3,3 V para alimentar el sensor, ya que esto reducirá el consumo de corriente. Hablando de eso, este sensor es bastante bueno cuando el presupuesto de energía se está agotando, ya que la corriente consumida puede ser tan baja como 2 mA mientras está activo.

La segunda diferencia importante es la forma en que el sensor puede comunicarse con el microcontrolador. La versión anterior solo puede usar los pines de entrada/salida de uso general (GPIO), mientras que esta última versión 2021 se puede conectar de cuatro maneras diferentes. A saber:

Modo 1: GPIO
Modo 2: I2C
Modo 3: 1 cable
Modo 4: UART

En este tutorial nos centraremos en el método común del Modo 1: GPIO. Los otros tres métodos requieren que el usuario suelde un puente a través de un par de conexiones en la parte posterior del sensor para seleccionar el modo deseado. No entraremos en este detalle aquí ya que estos otros tres métodos se cubrirán en diferentes tutoriales.

Hardware requerido

Configurando el hardware

Usar los pines GPIO (Modo 1) para comunicarse con el Nano es bastante sencillo. Realice las siguientes cuatro conexiones, como se muestra en la siguiente imagen:

  • pin VCC en el sensor al pin 3.3V en el Nano.
  • Pin GND en el sensor al pin GND en el Nano.
  • Conecte el pin del sensor al pin D7 del Nano.
  • Pin de eco en el sensor al pin D6 en el Nano.

Conexión del sensor ultrasónico al Nano.

Quizás se pregunte por qué utilizamos el pin de 3,3 V para alimentar el sensor. La versión 2021 permite como voltaje de entrada un mínimo de 2,8V y un máximo de 5,5V. De nuestra experimentación encontramos que el consumo de corriente versus el voltaje VCC es el siguiente: VCC [V] Consumo de corriente [mA] 3,0 2,0 3,3 2,3 5,0 3,6 Tabla 1: Consumo de corriente con diferentes voltajes de entrada. Podemos ver que el menor consumo de corriente es cuando el sensor está conectado a 3V. Sin embargo, el regulador de voltaje integrado en el Nano genera 3,3 V, no 3,0 V. Por lo tanto, elegimos ese voltaje porque está fácilmente disponible. Configuración del software Se supone que el usuario ya ha instalado el software IDE y está familiarizado con cómo seleccionar la configuración correcta para cargar scripts en el Nano. Si el usuario no está familiarizado con estos pasos, consulte nuestro tutorial sobre el uso por primera vez del microcontrolador Nano. Simplemente copie el siguiente script en el software IDE.

// Título del proyecto: "Tutorial: Sensor ultrasónico (Modo 1: Método GPIO)"

// Fecha de la última edición: 4 de diciembre de 2021, PTSolns

// Para errores o preguntas, envíenos un correo electrónico a contact@PTSolns.com

// Descripción general: este es el script para interconectar el sensor ultrasónico (versión 2021) en Modo 1 (GPIO) // Tutorial: https://ptsolns.com/ultrasonic-sensor-tutorial-GPIO/

// Establecer pines de disparo y eco

constante int trig_pin = 7;

constante int echo_pin = 6;

configuración vacía() { Serial.begin(9600); // Iniciando terminal serie }

bucle vacío() { larga duración, pulgadas, cm; pinMode(trig_pin, SALIDA);

escritura digital (trig_pin, BAJO);

retrasoMicrosegundos(2);

escritura digital (trig_pin, ALTA); retrasoMicrosegundos(10); // El sensor ultrasónico HC-SR04 requiere solo un pulso de disparo de 10us.

Esto activa el módulo para enviar 8 pulsos a 40 kHz.

escritura digital (trig_pin, BAJO);

pinMode(echo_pin, ENTRADA); // Escuche el pin de eco.

duración = pulseIn(echo_pin, ALTA); // La duración es el tiempo entre el envío de los 8 pulsos y el retorno de los 8 pulsos.

// Convertir duración a distancia (pulgadas y cm) pulgadas = duración / 74,0 / 2,0; cm = duración / 29,0 / 2,0;

// Imprimir resultados para monitorear Serial.print(inches);

Serial.print("en, ");

Impresión.serie(cm);

Serie.print("cm");

Serie.println();

retraso(100); }

Resultados y conclusión

Al abrir el monitor en serie después de cargar exitosamente el script, podemos ver un flujo constante de valores. La salida está presente tanto en pulgadas como en cm. Juegue con el sensor colocando diferentes objetos a distintas distancias del sensor. Tenga en cuenta que algunos objetos proporcionan mejores resultados que otros. Las telas, alfombras y otros objetos/materiales que tienden a absorber la señal ultrasónica de 40 kHz dan peores resultados a la hora de determinar la distancia correcta. También tenga en cuenta que el sensor tiene una extensión de aproximadamente 15 grados en forma cónica. Esto podría proporcionar una lectura incorrecta cuando hay varios objetos delante del sensor y a diferentes distancias a lo largo de la forma cónica. Con este sencillo tutorial podrás avanzar a proyectos más complicados. No es necesario que utilices el pin de 3,3 V en el Nano, ni siquiera tienes que utilizar el Nano. El siguiente paso que se podría dar es agregar una pantalla LCD e imprimir los resultados allí, en lugar de en el monitor serie. Se pueden realizar proyectos más complicados agregando un sensor ultrasónico adicional y obteniendo resultados más precisos. Finalmente, tenga en cuenta que existen otros tres métodos para conectar el sensor al microcontrolador. Aquí examinamos sólo el método GPIO, pero los otros tres métodos pueden ser de interés para el lector. Los enlaces son los siguientes: Tutorial: Sensor ultrasónico (Modo 2: Método I2C)... Próximamente Tutorial: Sensor ultrasónico (Modo 3: Método de 1 cable)... Próximamente Tutorial: Sensor ultrasónico (Modo 4: Método UART)... Próximamente FacebookLinkedIn