Sensor ultrasónico de distancia

El módulo de ultrasonido HC-SR04 es un dispositivo popular utilizado para medir distancias utilizando ondas ultrasónicas. Consiste en un transmisor y un receptor ultrasónicos que trabajan en conjunto para calcular la distancia entre el módulo y un objeto.

El transductor ultrasónico emisor convierte una señal eléctrica en una onda ultrasónica, que es inaudible para los humanos debido a su alta frecuencia. Esta onda ultrasónica se emite desde el sensor y se propaga en el aire en forma de un «chirrido» o «clic» de corta duración.

Cuando la onda ultrasónica choca con un objeto en su camino, se refleja y regresa al sensor. El transductor ultrasónico receptor recibe esta onda ultrasónica reflejada y la convierte de nuevo en una señal eléctrica.

El sensor mide el tiempo transcurrido desde que se emitió la señal ultrasónica hasta que se recibió su eco. Basándose en el tiempo de ida y vuelta y la velocidad conocida del sonido en el aire, el sensor puede calcular la distancia al objeto utilizando la fórmula: distancia = (velocidad del sonido x tiempo de ida y vuelta) / 2.

Es importante tener en cuenta que la velocidad del sonido en el aire puede variar ligeramente según la temperatura y la humedad, por lo que se utiliza un valor aproximado de 343 metros por segundo para el cálculo.

El sensor HC-SR04 se conecta a una placa Arduino u otro microcontrolador, y a través de programación, se puede leer la señal de eco recibida y realizar los cálculos necesarios para obtener la distancia al objeto.

Este tipo de sensor se utiliza ampliamente en proyectos de robótica, sistemas de seguridad, sistemas de navegación y muchas otras aplicaciones donde se requiere medir distancias de manera precisa y sin contacto.

Aquí tienes un ejemplo más simple que muestra la distancia medida por el sensor HC-SR04 en el monitor serial:

#define TRIG_PIN 2
#define ECHO_PIN 3
void setup() {
  Serial.begin(9600);
}
void loop() {
  long duration, distance;
  
  // Generar un pulso de 10 microsegundos en el pin Trig
  pinMode(TRIG_PIN, OUTPUT);
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  // Medir la duración del pulso en el pin Echo
  pinMode(ECHO_PIN, INPUT);
  duration = pulseIn(ECHO_PIN, HIGH);

  // Calcular la distancia en centímetros
  distance = duration * 0.034 / 2;

  // Mostrar la distancia en el monitor serial
  Serial.print("Distancia: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(1000);
}



Que es y para que sirve un «Delay»

En Arduino, el delay se utiliza para pausar la ejecución de un programa durante un período de tiempo específico. Su función principal es introducir una demora controlada entre instrucciones o secciones de código.

void setup() {
// Configuración inicial
}

void loop() {
// Realizar alguna tarea

delay(1000); // Pausa durante 1 segundo (1000 milisegundos)
}

En este caso, después de realizar la tarea dentro de la función loop(), el programa se pausará durante 1 segundo antes de repetir el ciclo.




¿Que son las variables en Arduino?

Las variables en Arduino son contenedores que se utilizan para almacenar valores, como números, texto o datos de sensores. Las variables en Arduino pueden ser de diferentes tipos, como int (entero), float (punto flotante), char (carácter) y boolean (verdadero/falso).

Aquí te dejo un ejemplo de cómo se declara y se utiliza una variable int en Arduino:


int ledPin = 13; // Declarar una variable int llamada "ledPin" y asignarle el valor 13
int sensorValue; // Declarar una variable int llamada "sensorValue"



Sentencias basicas en Arduino

Las sentencias básicas en Arduino son las siguientes:

  1. setup(): Esta función se ejecuta una vez al inicio del programa y se utiliza para configurar los pines y otras variables que se necesitan para el funcionamiento del programa.
  2. loop(): Esta función se ejecuta continuamente después de setup(). Es el núcleo del programa y se utiliza para realizar las tareas principales, como leer sensores, controlar actuadores, enviar datos a una pantalla, etc.
  3. pinMode(): Esta función se utiliza para configurar un pin como entrada o salida.
  4. digitalWrite(): Esta función se utiliza para escribir un valor digital (0 o 1) en un pin configurado como salida.
  5. analogRead(): Esta función se utiliza para leer el valor analógico de un pin configurado como entrada analógica.
  6. analogWrite(): Esta función se utiliza para escribir un valor analógico (PWM) en un pin configurado como salida PWM.
  7. if(): Esta sentencia se utiliza para realizar una acción si se cumple una condición.