Medir distancias con Arduino, sensor US-100 o HC-SR04 (p2)

Hola, voy a explicar como realizar una sencilla alarma con el programa de la entrada anterior, esta alarma sonará cuando la distancia leída baje de un determinado limite que estableceremos con un potenciómetro.

Para usar el sensor de ultrasonidos como una alarma, que se active cuando la distancia baja de un determinado umbral establecido con un potenciómetro tendremos que añadir al circuito de la entrada anterior un altavoz piezoeléctrico y un potenciómetro.

Las conexiones serían las siguientes:

En el código del programa tendremos que añadir la lectura de la entrada analógica del potenciómetro y su adaptación de bits (0-1023) a metros (0-3). También tendremos que configurar una salida pwm que haga sonar el altavoz.

//http://zygzax.com/webproyectos/websensorus-100/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int trigger=10;
const int echo=13;
const int altavoz=9;
const int potAlarma=0;

float distance;
int val;
float lim;

void setup(){
  Serial.begin(9600);
  pinMode(trigger,OUTPUT);
  pinMode(echo,INPUT);
  lcd.begin(16,2);
}

void loop(){
  //Leemos el valor del potenciometro que nos indica el limite de la alarma
  val=analogRead(potAlarma);
  lim=val*0.00293;
  //Inicializamos el sensor
  digitalWrite(trigger,LOW);
  delayMicroseconds(5);
  // Comenzamos las mediciones
  // Enviamos una señal activando la salida trigger durante 10 microsegundos
  digitalWrite(trigger,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger,LOW);
  // Adquirimos los datos y convertimos la medida a metros
  distance=pulseIn(echo,HIGH); // Medimos el ancho del pulso
  // (Cuando la lectura del pin sea HIGH medira
  // el tiempo que transcurre hasta que sea LOW
  distance=distance*0.0001657;
  //Alarma
  if(distance<lim){
    analogWrite(altavoz,100);
  }else{
    analogWrite(altavoz,0);
  }
  // Enviamos los datos medidos a traves del puerto serie y al display LCD
  Serial.println(distance);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Distancia:");
  lcd.setCursor(12,0);
  lcd.print(distance);
  lcd.setCursor(0,1);
  lcd.print("Limite:");
  lcd.setCursor(9,1);
  lcd.print(lim);
  delay(50);
}

 

Ir a la página del proyecto: “Medir distancias con sensor US-100 o HC-SR04 para Arduino” –>

2 pensamientos en “Medir distancias con Arduino, sensor US-100 o HC-SR04 (p2)

  1. Manolo

    Si pretendiera controlar la distancia en varias direcciones (ejem Norte,Sur,Este,Oeste) con 4 sensores y una sola placa arduino.

    Podría conectar en paralelo además de Vcc y GND, las salidas “trig y echo ” de los sensores con ayuda de diodos ?

    La alarma debería saltar si la distancia es menor a 2 metros en cualquier direccion

Los comentarios están cerrados.