Tutorial de Arduino y sensor ultrasónico HC-SR04 // Arduino and HC-SR04 Ultrasonic Sensor Tutorial

¡Hola, compañeros de Hive! En esta ocasión, me complace compartir con ustedes un proyecto en el que he estado trabajando junto a mis alumnos de 3er año de la escuela técnica. Este proyecto ha sido una maravillosa oportunidad para aplicar nuestros conocimientos en electrónica y programación.

sensor1.png

Listado de componentes utilizados:
-Arduino Uno
-Un protoboard
-Un sensor de ultrasonido HC-SR04: Este sensor es fundamental para nuestro proyecto, ya que nos permite medir distancias con gran precisión utilizando ondas de sonido. El HC-SR04 emite un pulso ultrasónico y mide el tiempo que tarda en reflejarse de vuelta al sensor después de golpear un objeto. Esta información es enviada al Arduino, que la procesa para determinar la distancia entre el sensor y el objeto en cuestión.
-Tres Leds de distintos colores con sus respectivas resistencias, estos Leds son utilizados para proporcionar una indicación visual basada en la distancia medida por el sensor de ultrasonido. Dependiendo de la distancia detectada, los Leds se encenderán de diferentes maneras para alertar a los usuarios sobre la proximidad de un objeto.
Por ejemplo, un LED puede encenderse para distancias largas, dos Leds para distancias medias y los tres Leds para distancias cortas, creando una señal visual clara y efectiva.
-Un zumbador, que actúa como una señal auditiva complementaria a las indicaciones visuales proporcionadas por los Leds. El zumbador emite un sonido cuando la distancia medida cae dentro de un rango crítico, alertando de manera audible a los usuarios sobre la cercanía de un objeto. Este componente es especialmente útil en entornos donde las señales visuales pueden no ser suficientes o pueden pasar desapercibidas.
-Cables varios

En resumen, este proyecto combina el uso del Arduino Uno, un sensor de ultrasonido HC-SR04, tres Leds y un zumbador para crear un sistema de medición de distancia eficiente y multifuncional. Mis alumnos y yo hemos disfrutado mucho trabajando en este proyecto, además grabamos un video para que puedan ver el funcionamiento de este proyecto que integra los conocimientos vistos de programación y electrónica.

También incluyo el código de programación que utilicé como referencia. Con conocimientos básicos, pueden modificar este código para ajustar el comportamiento del circuito según las distancias detectadas. Esto incluye controlar el encendido de los Leds o alterar la frecuencia del zumbador para emitir sonidos más graves o agudos según sea necesario.

sensor.png
Sensor de ultrasonido HC-SR04

Programación:

const float sonido = 22500.0;
const float Normal = 200.0;
const float Despacio = 150.0;
const float STOP = 100.0;
void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT); // LED Verde
pinMode(10, OUTPUT); // LED Amarillo
pinMode(11, OUTPUT); // LED Rojo
pinMode(2, INPUT); // ECHO
pinMode(3, OUTPUT); // TRIGGER
pinMode(6, OUTPUT); // PIEGO o BUZZER
apagarLEDs();
}
void loop() {
iniciarTrigger();
float distancia = calcularDistancia();
apagarLEDs();
if (distancia < Normal){
alertas(distancia);
} }
void apagarLEDs(){
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void alertas(float distancia){
if (distancia < Normal && distancia >= Despacio){
digitalWrite(9, HIGH);
tone(6, 2000, 200);
}
else if (distancia < Despacio && distancia > STOP){
digitalWrite(10, HIGH);
tone(6, 2500, 200);
}
else if (distancia <= STOP){
digitalWrite(11, HIGH);
tone(6, 3000, 200);
} }
float calcularDistancia(){
unsigned long tiempo = pulseIn(2, HIGH);
float distancia = tiempo * 0.000001 * sonido / 2.0;
Serial.print(distancia);
Serial.print("cm");
Serial.println();
delay(500);
return distancia;
}
void iniciarTrigger(){
digitalWrite(3, LOW);
delayMicroseconds(5);
digitalWrite(3, HIGH);
delayMicroseconds(15);
digitalWrite(3, LOW);
}

Esta programación es orientativa y el funcionamiento no es idéntico al video pero se puede lograr modificando un par de líneas de código.
Espero les haya gustado este post , cualquier pregunta o duda sobre este proyecto pueden consultar en los comentarios.
Un saludo compañeros.


Hello fellow Hive members! On this occasion, I am pleased to share with you a project that I have been working on with my 3rd year students. This project has been a wonderful opportunity to apply our knowledge in electronics and programming.

sensor1.png

List of components used:
-Arduino Uno
-A breadboard
-An HC-SR04 ultrasound sensor: This sensor is essential for our project, since it allows us to measure distances with great precision using sound waves. The HC-SR04 emits an ultrasonic pulse and measures the time it takes to reflect back to the sensor after hitting an object. This information is sent to the Arduino, which processes it to determine the distance between the sensor and the object in question.
-Three LEDs of different colors with their respective resistances, these LEDs are used to provide a visual indication based on the distance measured by the ultrasound sensor. Depending on the distance detected, the LEDs will light up in different ways to alert users to the proximity of an object.
For example, one LED can light up for long distances, two LEDs for medium distances and all three LEDs for short distances, creating a clear and effective visual signal.
-A buzzer, which acts as a complementary auditory signal to the visual indications provided by the LEDs. The buzzer beeps when the measured distance falls within a critical range, audibly alerting users to the proximity of an object. This component is especially useful in environments where visual cues may not be sufficient or may go unnoticed.
-Various cables

In summary, this project combines the use of the Arduino Uno, an HC-SR04 ultrasound sensor, three LEDs and a buzzer to create an efficient and multifunctional distance measurement system. My students and I have really enjoyed working on this project. We also recorded a video so that they can see how this project works, which integrates the knowledge of programming and electronics.

I also include the programming code I used for reference. With basic knowledge, you can modify this code to adjust the behavior of the circuit based on the detected distances. This includes controlling the lighting of the LEDs or altering the frequency of the buzzer to emit lower or higher sounds as necessary.

sensor.png
**HC-SR04 Ultrasonic Sensor **

Programming:

const float sonido = 22500.0;
const float Normal = 200.0;
const float Despacio = 150.0;
const float STOP = 100.0;
void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT); // LED Verde
pinMode(10, OUTPUT); // LED Amarillo
pinMode(11, OUTPUT); // LED Rojo
pinMode(2, INPUT); // ECHO
pinMode(3, OUTPUT); // TRIGGER
pinMode(6, OUTPUT); // PIEGO o BUZZER
apagarLEDs();
}
void loop() {
iniciarTrigger();
float distancia = calcularDistancia();
apagarLEDs();
if (distancia < Normal){
alertas(distancia);
} }
void apagarLEDs(){
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void alertas(float distancia){
if (distancia < Normal && distancia >= Despacio){
digitalWrite(9, HIGH);
tone(6, 2000, 200);
}
else if (distancia < Despacio && distancia > STOP){
digitalWrite(10, HIGH);
tone(6, 2500, 200);
}
else if (distancia <= STOP){
digitalWrite(11, HIGH);
tone(6, 3000, 200);
} }
float calcularDistancia(){
unsigned long tiempo = pulseIn(2, HIGH);
float distancia = tiempo * 0.000001 * sonido / 2.0;
Serial.print(distancia);
Serial.print("cm");
Serial.println();
delay(500);
return distancia;
}
void iniciarTrigger(){
digitalWrite(3, LOW);
delayMicroseconds(5);
digitalWrite(3, HIGH);
delayMicroseconds(15);
digitalWrite(3, LOW);
}

This programming is indicative and the operation is not identical to the video but can be achieved by modifying a couple of lines of code.
I hope you liked this post, if you have any questions or doubts about this project you can ask in the comments.
Greetings colleagues.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now