comofunciona

KY-050: Módulo HC-SR04 Sensor de distancia

En este tutorial veremos como programar y conectar el sensor de distancia KY-050 en la Raspberry Pi y en el Arduino.

Descripción:

Al
recibir una señal el Trigger, comenzará la medición que será
enviada como PWM-TTL por el echo.

  • Distancia
    : 2cm a 3m

  • Resolución
    de medición (error) 3mm

  • Tiempo
    mínimo entre mediciones 50 μs

Conexión Arduino:

Código Arduino:

#define Echo_Pin 7
#define Trigger_Pin 8

int rangoMax = 300; // 300 cm 
int = rangoMin = 2; // 2 cm 
long distancia;
long duracion;
 
void setup() {
 pinMode(Trigger_Pin, OUTPUT);
 pinMode(Echo_Pin, INPUT);
 Serial.begin (9600);
}
 
void loop() {

 digitalWrite(Trigger_Pin, HIGH);
 delayMicroseconds(10); 
 digitalWrite(Trigger_Pin, LOW);
  
 duracion = pulseIn(Echo_Pin, HIGH);
 
 distancia = duracion/58.2;
 
 if (distancia >= rangoMax || distancia <= rangoMin)
 {
 
      Serial.println("Fuera de rango de medición");
 }  
  
 else
 {
      Serial.print("La distancia es de: ");
      Serial.print(distancia);
      Serial.println("cm");
      Serial.println("-----------------------------------");
 }
 delay(500);
}

Conexión
Raspberry Pi:

Para poder conectar el módulo de 5V al Raspberry Pi debemos hacer un divisor resistivo. Un divisor resistivo consiste de dos resistencias (R1 y R2) en serie conectadas a un voltaje de entrada (Vin), el cual debe ser reducido a un voltaje de salida (Vout). En nuestro circuito, Vin corresponderá al ECHO, el cual requiere disminuir de 5V al Vout que necesitamos de 3.3v. El siguiente esquema muestra la disposición que deben tener las resistencias:

Formula para el calculo de las resistencias de un divisor resistivo:

Código Raspberry Pi:

import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

Trigger_Pin = 17
Echo_Pin    = 27
 
sleeptime = 0.8

GPIO.setup(Trigger_Pin, GPIO.OUT)
GPIO.setup(Echo_Pin, GPIO.IN)
GPIO.output(Trigger_Pin, False)

try:
    while True:
        GPIO.output(Trigger_Pin, True)
        time.sleep(0.00001)
        GPIO.output(Trigger_Pin, False)

        pulso_inicio = time.time()
        while GPIO.input(Echo_Pin) == 0:
            pulso_inicio = time.time() 
 
        while GPIO.input(Echo_Pin) == 1:
            pulso_fin = time.time() 

        duracion = pulso_fin - pulso_inicio
      
        distancia = (duracion * 34300) / 2
 
        if distancia < 2 or (round(distancia) > 300):
            
            print("Distancia fuera de rango")
            print("------------------------------")
        else:
            distancia = format((duracion * 34300) / 2, '.2f')
            
            print(("La distancia es de:"), distancia,("cm"))
            print("------------------------------")
 
        time.sleep(sleeptime)

except KeyboardInterrupt:
    GPIO.cleanup()
views
33

Para correr el programa abrimos Terminal y tecleamos:

  • sudo python ky-050.py

Saluda, Luciano

Gracias por leer DitecnoMakers!!!

views
33


ElectroMercado

    0 Comentarios

    Contesta

    CONTACTANOS

    Esta es su red social de tecnología para compartir tus ideas y proyectos .Puedes enviarnos un correo si tienes dudas.Nos vemos

    Enviando

    Inicia Sesión con tu Usuario y Contraseña

    o    

    ¿Olvidó sus datos?

    Create Account