1
resposta

Código de medição não está rodando

Boa Tarde, estou com o código de medição com o sensor mas ele não roda... não estou sabendo o que fazer, quando eu dou o comando para executar o arquivo, o prompt apenas congela e não me retorna as medições.

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

ECHO = 29
TRIG = 31

def setup_sensor():
    GPIO.setup(ECHO, GPIO.IN)
    GPIO.setup(TRIG, GPIO.OUT)

def roda_medicao():
    global distancia_cm
    distancia_cm = 0
    while True:
        time.sleep(2)
        GPIO.output(TRIG, GPIO.HIGH)
        time.sleep (0.000010)
        GPIO.output(TRIG, GPIO.LOW)
        while GPIO.input(ECHO) == 0:
            pulso_inicial = time.time()
        while GPIO.input(ECHO) == 1:
            pulso_final = time.time()
        duracao_pulso = pulso_final - pulso_inicial
        distancia_cm =  34300 * (duracao_pulso/2)
        distancia_cm = round(distancia_cm, 0)
        print(distancia_cm, 'cm   ',end="\r")

setup_sensor()
roda_medicao()

Quando eu aperto Ctrl + C para sair do programa o prompt me retorna essa mensagem :

File "distancia.py", line 32, in <module>
    roda_medicao()
File "distancia.py", line 23, in roda_medicao
    pulso_inicial = time.time()
1 resposta

Joao, com relação ao código utilizado no curso podemos partir dele pois foi testado e validado. Eu começaria investigando a parte física e depois alguns detalhes. Existe uma diferença em BOARD e BCM a primeira se refere ao número dos pinos na placa e a segunda ao número do GPIO. Está tudo conectado corretamente ?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software