Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Profundiza 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.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y adelantos exclusivos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.2.4 Módulo de Interruptor Reed
Introducción
En este proyecto, aprenderemos sobre el interruptor reed, que es un interruptor eléctrico que opera mediante un campo magnético aplicado.
Componentes necesarios
En este proyecto, necesitamos 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 DE COMPONENTES |
ENLACE DE COMPRA |
|---|---|
Diagrama esquemático
Nombre T-Board |
física |
wiringPi |
BCM |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO27 |
Pin 13 |
2 |
27 |
GPIO22 |
Pin 15 |
3 |
22 |
Procedimientos experimentales
Paso 1: Monta el circuito.
Paso 2: Cambia de directorio.
cd ~/raphael-kit/python/
Paso 3: Ejecuta.
sudo python3 2.2.4_ReedSwitch.py
El LED verde se encenderá cuando se ejecute el código. Si se coloca un imán cerca del módulo de interruptor reed, el LED rojo se enciende; retira el imán y el LED verde se vuelve a encender.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes, debes 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
import time
ReedPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) #
GPIO.setup(Gpin, GPIO.OUT) # Configurar el pin del LED verde como salida
GPIO.setup(Rpin, GPIO.OUT) # Configurar el pin del LED rojo como salida
GPIO.setup(ReedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Configurar el pin del interruptor reed como entrada y activar la resistencia pull-up (3.3V)
GPIO.add_event_detect(ReedPin, 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 detect(self):
Led(GPIO.input(ReedPin))
def loop():
while True:
pass
def destroy():
GPIO.output(Gpin, GPIO.HIGH) # Encender LED verde
GPIO.output(Rpin, GPIO.LOW) # Apagar LED rojo
GPIO.cleanup() # Liberar recursos
if __name__ == '__main__': # El programa empieza aquí
setup()
detect()
try:
loop()
except KeyboardInterrupt: # Cuando se presiona 'Ctrl+C', se ejecuta destroy()
destroy()
Explicación del código
ReedPin = 17
Gpin = 27
Rpin = 22
def setup():
GPIO.setmode(GPIO.BCM) #
GPIO.setup(Gpin, GPIO.OUT) # Configurar el pin del LED verde como salida
GPIO.setup(Rpin, GPIO.OUT) # Configurar el pin del LED rojo como salida
GPIO.setup(ReedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Configurar el pin del interruptor reed como entrada y activar la resistencia pull-up (3.3V)
GPIO.add_event_detect(ReedPin, GPIO.BOTH, callback=detect, bouncetime=200)
Configura los modos GPIO en numeración BCM. ReedPin, Gpin y Rpin se conectan a GPIO17, GPIO27 y GPIO22 respectivamente.
GPIO.add_event_detect() se usa para agregar un evento que se activa por un cambio en el valor (nivel) de ReedPin, momento en el cual se llama a 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)
Define una función Led() para encender o apagar los dos LEDs. Si x=0, se enciende el LED rojo; de lo contrario, se encenderá el LED verde.
def detect(self):
Led(GPIO.input(ReedPin))
En esta función de callback, el valor del interruptor reed se usa para controlar los dos LEDs.