TUTORIAL SENSOR ULTRASÓNICO HC-SR04

Paso 1: Descripción

El sensor ultrasónico HC-SR04 utiliza la velocidad del sonido para determinar la distancia a un objeto. Ofrece un excelente rango de medición con alta precisión y lecturas estables en un chip fácil de usar. La distancia medida va desde los 2 cm hasta los 400 cms.

La operación no se ve afectada por la luz solar o materiales negros (aunque los materiales blandos o telas acústicamente rugosas pueden ser difíciles de detectar). Este sensor cuenta con un emisor ultrasónico y el módulo receptor.

Paso 2: Características

  • Fuente de alimentación: + 5V DC
  • Corriente en reposo: < 2 mA
  • Corriente Nominal: 15mA
  • Ángulo Eficaz: <15 °
  • Rango de Distancia: 2 cm – 400 cm / 1 – 13 pies
  • Resolución: 0.3 cm
  • Medición de ángulo: 30 grados
  • Ancho de pulso de entrada: 10uS
  • Dimensiones: 45mm x 20mm x 15mm

Paso 3: Pines a Conectar

  • VCC: +5VDC
  • Trig : Trigger (INPUT)
  • Echo: Echo (OUTPUT)
  • GND: GND

Paso 4: Actividad

Este sensor es muy fácil de utilizar y muy amigable con el Arduino. La actividad a realizar es leer y escribir la distancia con el sensor ultrasónico y desplegar mediante 2 LEDs la proximidad de un objeto. Ejemplo: Se prende el primer LED cuando la distancia es menor a 10cm. Arriba de 10cm se prende el segundo LED. La distancia actual se verá reflejada en el Serial Monitor del programa Arduino.

Paso 5: Hardware

 

Paso 6: Software


#define trigPin 7
#define echoPin 8
#define led 11
#define led2 10

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}

void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;

if (distance < 10) {                          // This is where the LED On/Off happens
digitalWrite(led,HIGH);               // When the Red condition is met, the Green LED should turn off
digitalWrite(led2,LOW);
} else {
digitalWrite(led,LOW);
digitalWrite(led2,HIGH);
}

if (distance >= 400 || distance <= 0){
Serial.println("Out of range");
} else {
Serial.print(distance);
Serial.println(" cm");
}

delay(500);
}