.. note::
¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 con otros entusiastas.
**¿Por qué unirte?**
- **Soporte de expertos**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
- **Aprende y comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades.
- **Previsualizaciones exclusivas**: Obtén acceso anticipado a nuevos anuncios de productos y avances exclusivos.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
- **Promociones y sorteos festivos**: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo.
.. _2.1.4_js:
2.1.4 Interruptor Deslizante
================================
Introducción
--------------
En este proyecto, aprenderemos a usar un interruptor deslizante. Normalmente,
el interruptor deslizante se suelda en una PCB como interruptor de encendido,
pero aquí necesitamos insertarlo en la placa de pruebas, por lo que puede no estar
bien ajustado. Lo usamos en la placa de pruebas para mostrar su función.
Componentes Necesarios
-----------------------
En este proyecto, necesitamos los siguientes componentes.
.. image:: ../img/list_2.1.2_slide_switch.png
Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nombre
- ELEMENTOS EN ESTE KIT
- ENLACE
* - Kit Raphael
- 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 DEL COMPONENTE
- 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_slide_switch`
- |link_slide_switch_buy|
* - :ref:`cpn_capacitor`
- |link_capacitor_buy|
Diagrama Esquemático
------------------------
Conecta el pin central del interruptor deslizante a GPIO17, y dos LEDs a los
pines GPIO22 y GPIO27 respectivamente. Luego, cuando deslices el interruptor,
verás que los dos LEDs se encienden alternativamente.
.. image:: ../img/image305.png
.. image:: ../img/image306.png
Procedimientos Experimentales
----------------------------------
**Paso 1:** Construye el circuito.
.. image:: ../img/image161.png
**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 slide_switch.js
Mientras el código se está ejecutando, conecta el interruptor hacia la izquierda,
y el LED amarillo se encenderá; hacia la derecha, se encenderá el LED rojo.
**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 slideSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
slideSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
**Explicación del 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 slideSwitch = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
Importa el módulo pigpio y crea tres objetos led1, led2, slideSwitch,
y controla el encendido y apagado de led1 y led2 leyendo el nivel del puerto IO de slideSwitch.
.. code-block:: js
slideSwitch.on('interrupt', (level) => {
led1.digitalWrite(level);
led2.digitalWrite(!level);
});
Cuando el nivel leído del puerto IO de slideSwitch cambia,
escribe el mismo nivel en led1 y el nivel opuesto en led2.
Imagen del Fenómeno
-----------------------
.. image:: ../img/image162.jpeg