Nota
¡Hola! Bienvenidos a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones y sorteos festivos: Participa en sorteos y promociones durante las festividades.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.2.6 Módulo Sensor de Velocidad
Introducción
En este proyecto, aprenderemos el uso del módulo sensor de velocidad. Un módulo sensor de velocidad es un tipo de tacómetro que se utiliza para medir la velocidad de un objeto rotativo como un motor.
Componentes Necesarios
En este proyecto, necesitaremos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Raphael Kit |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
Diagrama Esquemático
Procedimientos Experimentales
Paso 1: Construye el circuito.
Paso 2: Cambia de directorio.
cd ~/raphael-kit/python
Paso 3: Ejecuta.
sudo python3 2.2.6_speed_sensor_module.py
Después de ejecutar el código, el LED verde se encenderá. Si colocas un obstáculo en la ranura del módulo sensor de velocidad, se imprimirá «luz bloqueada» en la pantalla y se encenderá el LED rojo. Retira el obstáculo y el LED verde se encenderá nuevamente.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
import RPi.GPIO as GPIO
speedPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) #
GPIO.setup(Gpin, GPIO.OUT) # Configura el modo del pin del LED verde como salida
GPIO.setup(Rpin, GPIO.OUT) # Configura el modo del pin del LED rojo como salida
GPIO.setup(speedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Configura el modo del pin de velocidad como entrada y conéctalo a un nivel alto (3.3V)
GPIO.add_event_detect(speedPin, GPIO.BOTH, callback=detect, bouncetime=200)
def Led(x):
if x == 0:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
if x == 1:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
print ('Light was blocked')
def detect(chn):
Led(GPIO.input(speedPin))
def loop():
while True:
pass
def destroy():
GPIO.output(Gpin, GPIO.LOW) # Apaga el LED verde
GPIO.output(Rpin, GPIO.LOW) # Apaga el LED rojo
GPIO.cleanup() # Libera recursos
if __name__ == '__main__': # El programa empieza aquí
setup()
try:
loop()
except KeyboardInterrupt: # Cuando se presiona 'Ctrl+C', el programa hijo ejecutará destroy().
destroy()
Explicación del Código
GPIO.add_event_detect(speedPin, GPIO.BOTH, callback=detect, bouncetime=200)
Añade un evento aquí, activado por un cambio en el nivel de speedPin y llama a detect() para controlar el encendido y apagado de los 2 LEDs.
def Led(x):
if x == 0:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
if x == 1:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
print ('Light was blocked')
Define una función Led() que enciende el LED rojo e imprime La luz fue bloqueada cuando el parámetro es 1; enciende el LED verde cuando el parámetro es 0.
def detect(chn):
Led(GPIO.input(speedPin))
Define una función de callback donde el valor de speedPin controlará el encendido o apagado de los 2 LEDs.