.. note::
¡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é unirte?**
- **Soporte experto**: 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.
- **Avances exclusivos**: Obtén acceso anticipado a nuevos anuncios de 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 [|link_sf_facebook|] y únete hoy mismo!
.. _2.1.2_c_pi5:
2.1.2 Microinterruptor
==========================
Introducción
---------------
En este proyecto, aprenderemos a usar un microinterruptor. Un microinterruptor es un interruptor pequeño y muy sensible que requiere una mínima compresión para activarse. Debido a que son fiables y sensibles, los microinterruptores se utilizan a menudo como dispositivos de seguridad.
Se utilizan para evitar que las puertas se cierren si hay algo o alguien en el camino y en otras aplicaciones similares.
Componentes Necesarios
-------------------------
En este proyecto, necesitamos los siguientes componentes.
.. image:: ../img/2.1.2component.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_micro_switch`
- \-
* - :ref:`cpn_capacitor`
- |link_capacitor_buy|
Diagrama Esquemático
-------------------------
Conecta el pin izquierdo del Micro Switch a GPIO17, y dos LEDs a los pines
GPIO22 y GPIO27 respectivamente. Luego, cuando presiones y sueltes el brazo
móvil del Micro Switch, verás que los dos LEDs se encienden alternativamente.
.. image:: ../img/image305.png
.. image:: ../img/micro_Schematic.png
Procedimientos Experimentales
-----------------------------------
**Paso 1:** Construye el circuito.
.. image:: ../img/2.1.4fritzing.png
**Paso 2:** Ve a la carpeta del código.
.. raw:: html
.. code-block::
cd ~/raphael-kit/c/2.1.2
**Paso 3:** Compila el código.
.. raw:: html
.. code-block::
gcc 2.1.2_MicroSwitch.c -lwiringPi
**Paso 4:** Ejecuta el archivo compilado.
.. raw:: html
.. code-block::
sudo ./a.out
Mientras el código se está ejecutando, presiona el Micro Switch, luego el LED amarillo se encenderá; suelta el brazo móvil, el LED rojo se encenderá.
.. note::
Si no funciona después de ejecutar, 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 microPin 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(microPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
while(1){
// micro switch high, led1 on
if(digitalRead(microPin) == 1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
printf("LED1 on\n");
}
// micro switch low, led2 on
if(digitalRead(microPin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
printf(".....LED2 on\n");
}
delay(500);
}
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 brazo móvil del micro switch está suelto, el pin izquierdo se conecta al pin derecho; en este momento, se leerá un nivel alto en GPIO17, y luego se encenderá el LED1 y se apagará el LED2.
.. code-block:: c
if(digitalRead(slidePin) == 0){
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
printf(".....LED2 on\n");
}
Cuando se presiona el brazo móvil, el pin izquierdo y el pin central están conectados. En este punto se leerá un nivel bajo en GPIO17, luego se encenderá el LED2 y se apagará el LED1.
Imagen del Fenómeno
------------------------
.. image:: ../img/2.1.2micro_switch.JPG