.. 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é unirse?** - **Soporte de Expertos**: 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**: Accede anticipadamente a nuevos anuncios de productos y vistas previas. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **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_c_pi5: 2.1.4 Interruptor Deslizante =============================== Introducción ---------------- En este proyecto, aprenderemos a usar un interruptor deslizante. Usualmente, 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 utilizamos 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í está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ARTÍCULOS 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, podrás ver los dos LEDs encenderse alternativamente. .. image:: ../img/image305.png .. image:: ../img/image306.png Procedimientos Experimentales -------------------------------- **Paso 1:** Monta el circuito. .. image:: ../img/image161.png **Paso 2:** Ve a la carpeta del código. .. raw:: html .. code-block:: cd ~/raphael-kit/c/2.1.4 **Paso 3:** Compila el código. .. raw:: html .. code-block:: gcc 2.1.4_Slider.c -lwiringPi **Paso 4:** Ejecuta el archivo compilado. .. raw:: html .. code-block:: sudo ./a.out Mientras el código se está ejecutando, si el interruptor está conectado a la izquierda, el LED amarillo se encenderá; si está a la derecha, el LED rojo se encenderá. .. note:: Si no funciona después de ejecutarlo, o aparece un mensaje de error: \"wiringPi.h: No such file or directory\", por favor consulta :ref:`install_wiringpi_pi5`. **Código** .. code-block:: c #include #include #define slidePin 0 #define led1 3 #define led2 2 int main(void) { // When initialize wiring failed, print message to screen if(wiringPiSetup() == -1){ printf("setup wiringPi failed !"); return 1; } pinMode(slidePin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); while(1){ // slide switch high, led1 on if(digitalRead(slidePin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("LED1 on\n"); } // slide switch low, led2 on if(digitalRead(slidePin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); printf(".....LED2 on\n"); } } return 0; } **Explicación del Código** .. code-block:: c if(digitalRead(slidePin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("LED1 on\n"); } Cuando el interruptor deslizante se mueve a la derecha, el pin central y el derecho están conectados; la Raspberry Pi lee un nivel alto en el pin central, por lo que el LED1 se enciende y el LED2 se apaga. .. code-block:: c if(digitalRead(slidePin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); printf(".....LED2 on\n"); } Cuando el interruptor deslizante se mueve a la izquierda, el pin central y el izquierdo están conectados; 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