.. note::
¡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é unirte?**
- **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.
- **Avances exclusivos**: Obtén acceso anticipado a anuncios de nuevos productos y adelantos.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes.
- **Promociones y sorteos festivos**: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo.
.. _2.2.4_js:
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.
.. image:: ../img/2.2.4reed_switch.png
:width: 300
:align: center
Componentes Necesarios
---------------------------
En este proyecto, necesitamos los siguientes componentes.
.. image:: ../img/2.2.4component.png
:width: 700
:align: center
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nombre
- ITEMS IN THIS KIT
- ENLACE
* - Raphael Kit
- 337
- |link_Raphael_kit|
También puedes comprarlos por separado en los enlaces a continuación.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCCIÓN DE COMPONENTES
- ENLACE DE COMPRA
* - :ref:`cpn_gpio_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_led`
- |link_led_buy|
* - :ref:`cpn_reed_switch`
- |link_reed_switch_buy|
Diagrama Esquemático
--------------------------
============ ======== ======== ===
Nombre físico wiringPi BCM
T-Board
GPIO17 Pin 11 0 17
GPIO27 Pin 13 2 27
GPIO22 Pin 15 3 22
============ ======== ======== ===
.. image:: ../img/reed_schematic.png
:width: 400
:align: center
.. image:: ../img/reed_schematic2.png
:width: 400
:align: center
Procedimientos Experimentales
-------------------------------
**Paso 1:** Construye el circuito.
.. image:: ../img/2.2.4fritzing.png
:width: 700
:align: center
**Paso 2:** Ve a la carpeta del código.
.. raw:: html
.. code-block::
cd ~/raphael-kit/nodejs/
**Paso 3:** Ejecuta el código.
.. raw:: html
.. code-block::
sudo node reed_switch_module.js
El LED verde se encenderá cuando el código se ejecute. Si se coloca un imán cerca del módulo del interruptor reed, el LED rojo se encenderá; al retirar el imán, el LED verde se encenderá nuevamente.
**Código**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const led1 = new Gpio(22, {mode: Gpio.OUTPUT});
const led2 = new Gpio(27, {mode: Gpio.OUTPUT});
const reedSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
reedSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
**Explicación del Código**
.. code-block:: js
const Gpio = require('pigpio').Gpio;
const reedSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Importa el módulo pigpio, crea un objeto ReedPin para controlar el puerto IO, configúralo en modo de entrada, con resistencia pull-down (inicialmente nivel bajo), y establece una interrupción.
.. code-block:: js
const led1 = new Gpio(22, {mode: Gpio.OUTPUT});
const led2 = new Gpio(27, {mode: Gpio.OUTPUT});
Crea dos objetos led1 y led2 para controlar los puertos IO Gpio22 y Gpio27, y configúralos en modo de salida.
.. code-block:: js
reedSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Cuando se activa la interrupción, escribe el mismo nivel en led1 y el nivel opuesto en led2.
Foto del Fenómeno
------------------------
.. image:: ../img/2.2.4reed_switch.JPG
:width: 500
:align: center