Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previews 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 festivas.
👉 ¿Listo para explorar y crear con nosotros? ¡Haz clic en [Aquí] y únete hoy!
2.1.5 Interruptor de Inclinación
Introducción
Este es un interruptor de inclinación de bola con una bola metálica en su interior. Se utiliza para detectar inclinaciones de un pequeño ángulo.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN AL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
Diagrama Esquemático
Procedimientos Experimentales
Paso 1: Construir el circuito.
Paso 2: Cambiar el directorio.
cd ~/raphael-kit/python/
Paso 3: Ejecutar.
sudo python3 2.1.5_Tilt.py
Coloca el interruptor de inclinación verticalmente y el LED verde se encenderá. Si lo inclinas, se imprimirá «¡Inclinación!» en la pantalla y el LED rojo se encenderá. Vuelve a colocarlo verticalmente y el LED verde se encenderá de nuevo.
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.
import RPi.GPIO as GPIO
TiltPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) # Numerar GPIOs por ubicación física
GPIO.setup(Gpin, GPIO.OUT) # Establecer el modo del pin del LED verde como salida
GPIO.setup(Rpin, GPIO.OUT) # Establecer el modo del pin del LED rojo como salida
GPIO.setup(TiltPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Establecer el modo del pin de inclinación como entrada y activar resistencia pull-up
GPIO.add_event_detect(TiltPin, GPIO.BOTH, callback=detect, bouncetime=200)
def Led(x):
if x == 0:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
if x == 1:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
def Print(x):
if x == 0:
print (' *************')
print (' * Tilt! *')
print (' *************')
def detect(chn):
Led(GPIO.input(TiltPin))
Print(GPIO.input(TiltPin))
def loop():
while True:
pass
def destroy():
GPIO.output(Gpin, GPIO.HIGH) # Apagar LED verde
GPIO.output(Rpin, GPIO.HIGH) # Apagar LED rojo
GPIO.cleanup() # Liberar recursos
if __name__ == '__main__': # El programa empieza aquí
setup()
try:
loop()
except KeyboardInterrupt: # Cuando se presiona 'Ctrl+C', se ejecutará la función destroy()
destroy()
Explicación del Código
GPIO.add_event_detect(TiltPin, GPIO.BOTH, callback=detect, bouncetime=200)
Configurar la detección en TiltPin, y la función de callback detect.
def Led(x):
if x == 0:
GPIO.output(Rpin, 1)
GPIO.output(Gpin, 0)
if x == 1:
GPIO.output(Rpin, 0)
GPIO.output(Gpin, 1)
Definir una función Led() para encender o apagar los dos LEDs. Si x=0, el LED rojo se enciende; de lo contrario, el LED verde se encenderá.
def Print(x):
if x == 0:
print (' *************')
print (' * Tilt! *')
print (' *************')
Crear una función Print() para imprimir los caracteres en la pantalla.
def detect(chn):
Led(GPIO.input(TiltPin))
Print(GPIO.input(TiltPin))
Definir una función de callback para la inclinación. Obtener el valor leído del interruptor de inclinación, luego la función Led() controla el encendido o apagado de los dos LEDs dependiendo del valor leído del interruptor de inclinación.
Imagen del Fenómeno