Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete en el mundo de 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.
Preestrenos 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 festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!
2.1.2 Microinterruptor
Introducción
En este proyecto, aprenderemos cómo usar un microinterruptor. Un microinterruptor es un pequeño interruptor muy sensible que requiere una compresión mínima para activarse. Debido a que son fiables y sensibles, los microinterruptores se utilizan a menudo como dispositivos de seguridad.
Se utilizan para evitar que las puertas se cierren si algo o alguien está en el camino y en otras aplicaciones similares.
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
Conecta el pin izquierdo del microinterruptor a GPIO17, y dos LEDs a los pines GPIO22 y GPIO27 respectivamente. Luego, cuando presionas y sueltas el brazo móvil del microinterruptor, puedes ver los dos LEDs encenderse alternativamente.
Procedimientos Experimentales
Paso 1: Monta el circuito.
Paso 2: Accede a la carpeta del código.
cd ~/raphael-kit/python-pi5
Paso 3: Ejecuta.
sudo python3 2.1.2_MicroSwitch_zero.py
Mientras el código se está ejecutando, presiona el brazo móvil, entonces el LED amarillo se enciende; suelta el brazo móvil, el LED rojo se enciende.
Advertencia
Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.
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-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
from gpiozero import LED, Button # Importar clases LED y Button de gpiozero
from time import sleep # Importar función sleep para retrasos
# Inicializar el microinterruptor en el pin GPIO 17 sin activar el resistor pull-up
micro_switch = Button(17, pull_up=False)
# Inicializar LED1 conectado al pin GPIO 22
led1 = LED(22)
# Inicializar LED2 conectado al pin GPIO 27
led2 = LED(27)
try:
# Comprobar continuamente el estado del microinterruptor y controlar los LEDs en consecuencia
while True:
if micro_switch.is_pressed: # If the micro switch is pressed
print('LED1 ON') # Print a message to the console
led1.on() # Turn on LED1
led2.off() # Turn off LED2
else: # If the micro switch is not pressed
print(' LED2 ON') # Print a message to the console
led1.off() # Turn off LED1
led2.on() # Turn on LED2
sleep(0.5) # Pausar 0.5 segundos antes de comprobar el interruptor nuevamente
except KeyboardInterrupt:
# Manejar KeyboardInterrupt (Ctrl+C) para salir del bucle de forma segura
pass
Explicación del Código
Esta línea configura el script para ejecutarse con Python 3. Importa
LEDyButtondegpiozeropara controlar dispositivos GPIO, ysleepdetimepara retrasos.#!/usr/bin/env python3 from gpiozero import LED, Button # Importar las clases LED y Button de gpiozero from time import sleep # Importar la función sleep para retrasos
Inicializa un microinterruptor conectado al pin GPIO 17 con la resistencia pull-up deshabilitada, y dos LEDs conectados a los pines GPIO 22 y 27.
# Inicializar el microinterruptor en el pin GPIO 17 sin activar la resistencia pull-up micro_switch = Button(17, pull_up=False) # Inicializar LED1 conectado al pin GPIO 22 led1 = LED(22) # Inicializar LED2 conectado al pin GPIO 27 led2 = LED(27)
En el bucle principal, se verifica el estado del microinterruptor. Si está presionado, el LED1 se enciende y el LED2 se apaga. Si no está presionado, el LED1 se apaga y el LED2 se enciende. El bucle se repite cada 0.5 segundos. Captura un KeyboardInterrupt (como Ctrl+C) para permitir la terminación segura del script.
try: # Comprobar continuamente el estado del microinterruptor y controlar los LEDs en consecuencia while True: if micro_switch.is_pressed: # If the micro switch is pressed print('LED1 ON') # Print a message to the console led1.on() # Turn on LED1 led2.off() # Turn off LED2 else: # If the micro switch is not pressed print(' LED2 ON') # Print a message to the console led1.off() # Turn off LED1 led2.on() # Turn on LED2 sleep(0.5) # Pausar por 0.5 segundos antes de verificar el interruptor nuevamente except KeyboardInterrupt: # Manejar KeyboardInterrupt (Ctrl+C) para salir del bucle de forma segura pass