ultrasonico2.py
1 |
# -*- coding: utf-8 -*-
|
---|---|
2 |
|
3 |
import RPi.GPIO as GPIO |
4 |
import time |
5 |
|
6 |
GPIO.setmode(GPIO.BCM) |
7 |
TRIG = 3 # Pin Trigger |
8 |
ECHO = 4 # Pin Echo |
9 |
|
10 |
GPIO.setup(TRIG, GPIO.OUT) |
11 |
GPIO.setup(ECHO, GPIO.IN) |
12 |
|
13 |
def medir_distancia(): |
14 |
# Asegúrate de que Trigger esté en bajo
|
15 |
GPIO.output(TRIG, False)
|
16 |
time.sleep(2)
|
17 |
|
18 |
# Enviar pulso de 10us al Trigger
|
19 |
GPIO.output(TRIG, True)
|
20 |
time.sleep(0.00001)
|
21 |
GPIO.output(TRIG, False)
|
22 |
|
23 |
# Medir tiempo de respuesta del Echo
|
24 |
while GPIO.input(ECHO) == 0: |
25 |
pulso_inicio = time.time() |
26 |
|
27 |
while GPIO.input(ECHO) == 1: |
28 |
pulso_fin = time.time() |
29 |
|
30 |
# Calcular la duración del pulso
|
31 |
duracion_pulso = pulso_fin - pulso_inicio |
32 |
|
33 |
# Calcular distancia (34300 cm/s es la velocidad del sonido)
|
34 |
distancia = duracion_pulso * 17150 # cm |
35 |
distancia = round(distancia, 2) |
36 |
|
37 |
return distancia
|
38 |
|
39 |
try:
|
40 |
while True: |
41 |
distancia = medir_distancia() |
42 |
print("Distancia:", distancia, "cm") |
43 |
time.sleep(1)
|
44 |
except KeyboardInterrupt: |
45 |
print("\nSaliendo...")
|
46 |
finally:
|
47 |
GPIO.cleanup() |