El HC-SR04 es un sensor ultrasónico que mide la distancia con ondas de ultrasonido. Utiliza el mismo principio que un sonar que envía una onda de sonido y mide el tiempo entre la transmisión y la recepción de su eco.
Material
- Computadora
- Arduino UNO
- Cable USB para conectar Arduino a la computadora
- Sensor ultrasónico de distancia HC-SR04
Principio de funcionamiento
El módulo HC-SR04 consta de un transmisor y un receptor de ultrasonidos. El transmisor envía ondas sonoras cuando recibe una señal del mando de disparo. Estas ondas se reflejan cuando encuentran un obstáculo. El transmisor detecta estas ondas reflejadas y envía una señal de vuelta a la clavija de Eco.
N.B.: Algunas superficies reflejan mejor las ondas sonoras. Elija cuidadosamente su sensor en función de su aplicación.
Diagrama de conexión del sensor HC-SR04
Código
Según las especificationes del sensor, el HC-SR04 tiene un rango de 2 a 400 cm. Para medir una distancia, debe enviarse un pulso de 10 µs al pin de disparo (al menos cada 60 ms) y la duración del pulso de salida debe medirse desde el pin de eco. Esta duración dividida por 58 debería dar el valor en centímetros. Una función útil para medir la duración de un pulso es la función pulseIn().
#define trigPin 3 #define echoPin 2 long distance; void setup() {
#define trigPin 3 #define echoPin 2 long distance; long duration; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { distance=readUltrasonicSensor(); if (distance >= 400 || distance <= 0){ Serial.println("Unknown value"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500);// delay in milliseconds } long readUltrasonicSensor(){ // Send 10µs pulse digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Read pulse duration duration = pulseIn(echoPin, HIGH); Serial.println(duration); //Convert and return value return duration/ 58; }
N.B. : Dependiendo de dónde haya comprado su sensor y su versión, el rango y el valor de conversión pueden diferir un poco. Verifique las especificaciones de su sensor.
Biblioteca
Para simplificar el código, puede crear o descargar la biblioteca SR04.h (by mrRobot62). El código se puede volver a escribir de la siguiente manera:
#include "SR04.h" #define TRIG_PIN 3 #define ECHO_PIN 2 #define LOOPDELAY 1000 SR04 hcsr04 = SR04(ECHO_PIN,TRIG_PIN); long distance; void setup() { Serial.begin(9600); delay(LOOPDELAY); } void loop() { distance=hcsr04.Distance(); Serial.print(distance); Serial.println("cm"); delay(LOOPDELAY); }
Solicitud
Fuente
Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código