Ejemplo simple de Arduino y HC-SR04

Después de comprar un HC-SR04 de Amazon, no pude hacerlo funcionar de inmediato. No queriendo admitir que tenía un sensor DOA en mis manos, busqué una configuración de ejemplo simple. Después de pasar demasiado tiempo en esto de lo que sentí que necesitaba, decidí hacer esto instructable para ayudar a otros fabricantes emergentes a poner en marcha su proyecto.

Admito que este ejemplo es más que simple porque tiene LED, pero esto me permite probarlo sin necesidad de una PC para mostrar la distancia y verificar la precisión del sensor.

Paso 1: Lista de piezas

Arduino UNO R3 (uso el montaje Adafruit)
Un (1) sensor ultrasónico HC-SR04
Un (1) LED rojo
Un (1) LED verde
Dos (2) resistencias de 560 ohmios (verde, azul, marrón, dorado)
Medio tablero
Ocho (8) cables de conexión macho / macho
Una regla que mide centímetros (o usa el monitor en serie)

Paso 2: conecta los componentes

Conecte los componentes y cables como se muestra en las dos imágenes.

Paso 3: sube el boceto

Copie el boceto a su Arduino y observe las luces parpadeantes.


/ *
Sensor de distancia de ping HC-SR04]
VCC a arduino 5v GND a arduino GND
Eco al pin 13 de Arduino Disparo al pin 12 de Arduino
POS rojo al pin 11 de Arduino
POS verde a pin Arduino 10
Resistencia de 560 ohmios al riel de alimentación LED NEG y GRD
Más información en: //goo.gl/kJ8Gl
Mejoras en el código original del boceto Ping procedente de Trollmaker.com
Algún código y cableado inspirados en //en.wikiversity.org/wiki/User:Dstaub/robotcar
* /

#definir trigPin 13
#define echoPin 12
#define led 11
#define led2 10

configuración nula () {
Serial.begin (9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode (led, SALIDA);
pinMode (led2, OUTPUT);
}

bucle vacío () {
larga duración, distancia;
digitalWrite (trigPin, LOW); // Se agregó esta línea
delayMicroseconds (2); // Se agregó esta línea
digitalWrite (trigPin, HIGH);
// delayMicroseconds (1000); - Eliminada esta línea
delayMicroseconds (10); // Se agregó esta línea
digitalWrite (trigPin, LOW);
duración = pulseIn (echoPin, HIGH);
distancia = (duración / 2) / 29.1;
if (distancia <4) {// Aquí es donde ocurre el LED de encendido / apagado
digitalWrite (led, ALTO); // Cuando se cumple la condición roja, el LED verde debería apagarse
digitalWrite (led2, BAJO);
}
más {
digitalWrite (led, BAJO);
digitalWrite (led2, ALTO);
}
if (distancia> = 200 || distancia <= 0) {
Serial.println ("Fuera de rango");
}
más {
Serial.print (distancia);
Serial.println ("cm");
}
retraso (500);
}

Archivos adjuntos

  • Code.txt Descargar

Artículos Relacionados