2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Neste instrutível, vamos construir um sensor de parque. A ideia desse sensor de estacionamento é mostrar verde quando você tem espaço suficiente para puxar seu carro para frente no estacionamento e, em seguida, ficar amarelo quando você se aproxima da posição totalmente para frente e, em seguida, vermelho quando você deve parar. Vamos construir este sistema com nosso Raspberry Pi e usar algumas distâncias que podemos testar facilmente.
Etapa 1: Coisas que você vai precisar
Você precisará dos seguintes componentes, além da configuração do Raspberry Pi.
- Sensor de distância ultrassônico HC-SR04
- Led (X3)
- Resistor 330Ω (X3)
- Resistor 10KΩ (x2)
- Fios de jumper macho-macho / macho-fêmea
- Tábua de pão
Etapa 2: faça a fiação
- O gatilho para o sensor de distância é GPIO 4, o eco é GPIO 18, a luz verde é 17, a luz amarela é 27 e a luz vermelha é 22.
- Os resistores de 330 ohms são para os leds e se conectam à perna positiva dos leds e depois ao GPIO.
- Os resistores de 10K ohm são para o pino de eco do sensor de distância e se conectam ao GPIO.
Etapa 3: Código
importar RPi. GPIO como GPIOimport time
GPIO.setwarnings (False)
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM)
TRIG = 4
ECHO = 18
VERDE = 17
AMARELO = 27
VERMELHO = 22
GPIO.setup (TRIG, GPIO. OUT)
GPIO.setup (ECHO, GPIO. IN)
GPIO.setup (VERDE, GPIO. OUT)
GPIO.setup (AMARELO, GPIO. OUT)
GPIO.setup (RED, GPIO. OUT)
def green_light ():
GPIO.output (GREEN, GPIO. HIGH)
GPIO.output (AMARELO, GPIO. LOW)
GPIO.output (RED, GPIO. LOW)
def yellow_light ():
GPIO.output (VERDE, GPIO. LOW)
GPIO.output (YELLOW, GPIO. HIGH)
GPIO.output (RED, GPIO. LOW)
def red_light (): GPIO.output (GREEN, GPIO. LOW)
GPIO.output (AMARELO, GPIO. LOW)
GPIO.output (RED, GPIO. HIGH)
def get_distance ():
GPIO.output (TRIG, True)
time.sleep (0,00001)
GPIO.output (TRIG, False)
enquanto GPIO.input (ECHO) == False: start = time.time ()
enquanto GPIO.input (ECHO) == True: end = time.time ()
signal_time = end-start
distance = signal_time / 0,000058
distância de retorno
enquanto verdadeiro:
distance = get_distance ()
tempo.sono (0,05)
imprimir (distância)
se distância> = 25:
luz verde()
elif 25> distância> 10:
luz amarela()
distância elif <= 5:
luz vermelha()
Se a distância for maior ou igual a 25 cm, mostramos uma luz verde. Se estiver entre 10 e 25 cm, ficaremos amarelos e depois ficaremos vermelhos por menos ou igual a 10 cm.