.. note:: Hola, ¡bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas. **¿Por qué unirse?** - **Soporte de expertos**: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo. - **Aprende y Comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Avances exclusivos**: Accede anticipadamente a anuncios de nuevos productos y adelantos. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones y sorteos festivos**: Participa en sorteos y promociones especiales por festividades. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo. .. _ar_reversing_aid: 3.1 Asistente de Reversa ========================== Descripción general ----------------------- Con el avance de la ciencia y la tecnología, muchos productos de alta tecnología se han incorporado en los automóviles, entre los cuales el sistema de asistencia de reversa es uno de ellos. Aquí utilizamos sensores ultrasónicos, una pantalla LCD, un LED y un zumbador para construir un sistema simple de asistencia de reversa basado en ultrasonidos. Componentes necesarios ------------------------- .. image:: img/Part_three_1.png :align: center * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_buzzer` * :ref:`cpn_i2c_lcd1602` * :ref:`cpn_ultrasonic` Circuito Fritzing ---------------------- En este ejemplo, el esquema de conexión se muestra a continuación. .. image:: img/image264.png :align: center Diagrama esquemático ---------------------- .. image:: img/image265.png :align: center Código ------------- .. note:: * Puedes abrir el archivo ``3.1_reversingAid.ino`` en la ruta ``sunfounder_vincent_kit_for_arduino\code\3.1_reversingAid`` directamente. * Aquí se utiliza la librería ``LiquidCrystal I2C``, que puedes instalar desde el **Administrador de Librerías**. .. image:: img/lib_liquidcrystal_i2c.png :align: center .. raw:: html Explicación del Ejemplo ------------------------ Este código nos ayuda a crear un dispositivo simple de medición de distancia que mide la distancia entre objetos y proporciona retroalimentación mediante una pantalla LCD y un zumbador. La función ``loop()`` contiene la lógica principal del programa y se ejecuta continuamente. Analicemos más a fondo la función ``loop()``. #. Bucle para leer distancia y actualizar parámetros En el ``loop``, el código primero lee la distancia medida por el módulo ultrasónico y actualiza el parámetro de intervalo en función de la distancia. .. code-block:: arduino // Actualizar la distancia distance = readDistance(); // Actualizar los intervalos según la distancia if (distance <= 10) { intervals = 300; } else if (distance <= 20) { intervals = 500; } else if (distance <= 50) { intervals = 1000; } else { intervals = 2000; } #. Verificar si es tiempo de activar el zumbador El código calcula la diferencia entre el tiempo actual y el tiempo del último pitido. Si la diferencia es mayor o igual al intervalo establecido, activa el zumbador y actualiza el tiempo del último pitido. .. code-block:: arduino unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= intervals) { Serial.println("Beeping!"); beep(); previousMillis = currentMillis; } #. Actualizar la pantalla LCD El código limpia la pantalla LCD y luego muestra "Dis:" junto con la distancia actual en centímetros en la primera línea. .. code-block:: arduino lcd.clear(); lcd.setCursor(0, 0); lcd.print("Dis: "); lcd.print(distance); lcd.print(" cm"); delay(100);