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.

../_images/2.2.4reed_switch.png

Componentes necesarios

En este proyecto, necesitamos los siguientes componentes.

../_images/2.2.4component.png

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Raphael Kit

337

Raphael Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DE COMPONENTES

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

LED

COMPRAR

Módulo de Interruptor Reed

COMPRAR

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

../_images/reed_schematic.png ../_images/reed_schematic2.png

Procedimientos experimentales

Paso 1: Monta el circuito.

../_images/2.2.4fritzing.png

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.

Imagen del fenómeno

../_images/2.2.4reed_switch.JPG