.. note::
¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Sumérgete en 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.
- **Previsualizaciones exclusivas**: 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 navideñas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo.
.. _2.1.4_py:
2.1.4 Interruptor Deslizante
===============================
Introducción
----------------
En este proyecto, aprenderemos a usar un interruptor deslizante.
Por lo general, el interruptor deslizante se suelda en PCB como
interruptor de encendido, pero aquí necesitamos insertarlo en la
placa de pruebas, por lo que puede no estar apretado. Y lo usamos
en la placa de pruebas para mostrar su función.
Componentes Requeridos
---------------------------------
En este proyecto, necesitamos los siguientes componentes.
.. image:: ../img/list_2.1.2_slide_switch.png
Es definitivamente conveniente comprar un kit completo, aquí está 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 al 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**: Ingresa en la carpeta del código.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python
**Paso 3**: Ejecuta.
.. raw:: html
.. code-block::
sudo python3 2.1.4_Slider.py
Mientras el código se está ejecutando, mueve el interruptor hacia la izquierda, entonces
el LED amarillo se encenderá; hacia la derecha, el LED rojo se encenderá.
**Código**
.. note::
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``. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
.. raw:: html
.. code-block:: python
import RPi.GPIO as GPIO
import time
# Establece GPIO17 como pin del interruptor deslizante, GPIO22 como pin del led1, GPIO27 como pin del led2
slidePin = 17
led1Pin = 22
led2Pin = 27
# Define una función de configuración para algunas configuraciones
def setup():
# Configura los modos GPIO a Numeración BCM
GPIO.setmode(GPIO.BCM)
# Configura slidePin como entrada
# Configura ledPin como salida,
# y nivel inicial a Alto (3.3v)
GPIO.setup(slidePin, GPIO.IN)
GPIO.setup(led1Pin, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(led2Pin, GPIO.OUT, initial=GPIO.HIGH)
# Define una función principal para el proceso principal
def main():
while True:
# interruptor deslizante alto, led1 encendido
if GPIO.input(slidePin) == 1:
print (' LED1 ON ')
GPIO.output(led1Pin, GPIO.LOW)
GPIO.output(led2Pin, GPIO.HIGH)
# interruptor deslizante bajo, led2 encendido
if GPIO.input(slidePin) == 0:
print (' LED2 ON ')
GPIO.output(led2Pin, GPIO.LOW)
GPIO.output(led1Pin, GPIO.HIGH)
time.sleep(0.5)
# Define una función de destrucción para limpiar todo después de
# que el script haya terminado
def destroy():
# Apaga el LED
GPIO.output(led1Pin, GPIO.HIGH)
GPIO.output(led2Pin, GPIO.HIGH)
# Libera los recursos
GPIO.cleanup()
# Si ejecutas este script directamente, haz:
if __name__ == '__main__':
setup()
try:
main()
# Cuando se presiona 'Ctrl+C', se ejecutará el programa
# destroy().
except KeyboardInterrupt:
destroy()
**Explicación del Código**
.. code-block:: python
if GPIO.input(slidePin) == 1:
GPIO.output(led1Pin, GPIO.LOW)
GPIO.output(led2Pin, GPIO.HIGH)
Cuando el interruptor deslizante se mueve hacia la derecha,
el pin del medio y el derecho se conectan; la Raspberry Pi
lee un nivel alto en el pin del medio, por lo que el LED1
se enciende y el LED2 se apaga.
.. code-block:: python
if GPIO.input(slidePin) == 0:
GPIO.output(led2Pin, GPIO.LOW)
GPIO.output(led1Pin, GPIO.HIGH)
Cuando el interruptor deslizante se mueve hacia la izquierda, el
pin del medio y el izquierdo se conectan; la Raspberry Pi lee un
nivel bajo, por lo que el LED2 se enciende y el LED1 se apaga.
Imagen del Fenómeno
------------------------
.. image:: ../img/image162.jpeg