Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Tutoriales / Fragmentos / Arduino / HC-SR04 sensor de ultrasonidos con Arduino

HC-SR04 sensor de ultrasonidos con Arduino

Luis del Valle Hernández

En este fragmento de código vamos a tratar un tema muy curioso, vamos a ver como leer y entender un HC-SR04 sensor de ultrasonidos con Arduino. Como ya os hemos dicho en más de un fragmento de código y en el capítulo 48. Sensor de temperatura en Arduino, antes de empezar con un sensor debemos de mirar la ficha técnica del dispositivo. Este dispositivo tiene la referencia HC-SR04. Hacemos un resumen de las características técnicas más importantes:

  • Voltaje de trabajo 5 V
  • Corriente de trabajo 15 mA
  • Rango de precisión entre 3 cm y 400 cm
  • La precisión puede llegar a 3 mm en su máximo valor
  • Angulo de medición 15º

Además de las características técnicas nos facilitan el conexionado que os lo pongo a continuación.

ultrasonic-arduino
Conexiones ultasonido

Es importante fijarse en las patillas que tiene el sensor. Por un lado las típicas GND (tierra) y Vcc (alimentación 5 V) y por otro lado tiene dos patillas que son el Trigger (disparo) y Echo (eco). Estas dos patillas son las importantes. Estas las tenemos que conectar a las entradas/salidas digitales. Por un lado Trigger va a funcionar en modo salida y por otro lado Echo va a funcionar en modo entrada.

Antes de continuar aclarar como funciona un sonar, más concreto el HC-SR04. El Trigger manda un pulso de ultrasonidos y el Echo se encarga en recibirlo. Por lo tanto tenemos el tiempo que tarda en recibirlo y la velocidad, la del sonido, así de fácil. Como hemos tenido que ir hasta el objeto y volver lo estamos calculando por dos así que hay que dividir por dos. Esta fórmula la tenemos también en la ficha técnica.

Distancia = (Tiempo en estado HIGH * Velocidad del sonido) / 2

En el caso de este sensor, hay que iniciar la comunicación entre el Trigger y el Echo para ello debemos mandar un pulso de 10 ms (milisegundos).

Veamos entonces el código que vamos a necesitar

/*
  Creado: Luis del Valle (ldelvalleh@programarfacil.com)
  https://programarfacil.com
*/

// Configuramos los pines del sensor Trigger y Echo
const int PinTrig = 2;
const int PinEcho = 3;

// Constante velocidad sonido en cm/s
const float VelSon = 34000.0;

float distancia;

void setup()
{
  // Iniciamos el monitor serie para mostrar el resultado
  Serial.begin(9600);
  // Ponemos el pin Trig en modo salida
  pinMode(PinTrig, OUTPUT);
  // Ponemos el pin Echo en modo entrada
  pinMode(PinEcho, INPUT);
}
void loop()
{
  iniciarTrigger();
  
  // La función pulseIn obtiene el tiempo que tarda en cambiar entre estados, en este caso a HIGH
  unsigned long tiempo = pulseIn(PinEcho, HIGH);
  
  // Obtenemos la distancia en cm, hay que convertir el tiempo en segudos ya que está en microsegundos
  // por eso se multiplica por 0.000001
  distancia = tiempo * 0.000001 * VelSon / 2.0;
  Serial.print(distancia);
  Serial.print("cm");
  Serial.println();
  delay(1000);
}

// Método que inicia la secuencia del Trigger para comenzar a medir
void iniciarTrigger()
{
  // Ponemos el Triiger en estado bajo y esperamos 2 ms
  digitalWrite(PinTrig, LOW);
  delayMicroseconds(2);
  
  // Ponemos el pin Trigger a estado alto y esperamos 10 ms
  digitalWrite(PinTrig, HIGH);
  delayMicroseconds(10);
  
  // Comenzamos poniendo el pin Trigger en estado bajo
  digitalWrite(PinTrig, LOW);
}

Como compruebas en el código, hay que hacer unos ajustes con las unidades. Por un lado la velocidad del sonido pasar de m/s a cm/s. Por otro lado la función pulseIn que se encarga de medir el tiempo que tarda un pin en cambiar de estado devuelve microsegundos y hay que pasarlo a segundos multiplicando por 0.000001. Con esto ya tenemos nuestro sonar totalmente operativo.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.