.. note:: ¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Profundiza en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas. **¿Por qué unirte?** - **Soporte experto**: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Avances exclusivos**: Accede anticipadamente a anuncios de nuevos productos y vistas previas. - **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. 2.1.3 Interruptor de inclinación ================================== Introducción --------------- Este es un interruptor de inclinación con una bola metálica en su interior. Se utiliza para detectar inclinaciones de un pequeño ángulo. Componentes ------------- .. image:: img/list_2.1.3_tilt_switch.png Principio ------------ **Interruptor de inclinación** El principio es muy simple. Cuando el interruptor se inclina a un cierto ángulo, la bola en su interior rueda y toca los dos contactos conectados a los pines externos, activando así los circuitos. De lo contrario, la bola se mantendrá alejada de los contactos, interrumpiendo así los circuitos. .. image:: img/image167.png Diagrama Esquemático ------------------------ .. image:: img/image307.png .. image:: img/image308.png Procedimientos Experimentales ------------------------------------ **Paso 1:** Construir el circuito. .. image:: img/image169.png :width: 800 **Paso 2:** Cambiar de directorio. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/c/2.1.3/ **Paso 3:** Compilar. .. raw:: html .. code-block:: gcc 2.1.3_Tilt.c -lwiringPi **Paso 4:** Ejecutar. .. raw:: html .. code-block:: sudo ./a.out Coloca el interruptor en posición horizontal, y el LED verde se encenderá. Si lo inclinas, se imprimirá "¡Inclinación!" en la pantalla y se encenderá el LED rojo. Colócalo nuevamente en posición horizontal, y el LED verde se encenderá de nuevo. .. note:: Si no funciona después de ejecutarlo, o si aparece un mensaje de error: \"wiringPi.h: No such file or directory", consulta :ref:`faq_c_nowork`. **Código** .. code-block:: c #include #include #define TiltPin 0 #define Gpin 2 #define Rpin 3 void LED(char* color) { pinMode(Gpin, OUTPUT); pinMode(Rpin, OUTPUT); if (color == "RED") { digitalWrite(Rpin, HIGH); digitalWrite(Gpin, LOW); } else if (color == "GREEN") { digitalWrite(Rpin, LOW); digitalWrite(Gpin, HIGH); } else printf("LED Error"); } int main(void) { // Cuando la inicialización falla, imprime un mensaje en pantalla if(wiringPiSetup() == -1){ printf("setup wiringPi failed !"); return 1; } pinMode(TiltPin, INPUT); LED("GREEN"); while(1){ // Indica que el botón ha sido presionado if(0 == digitalRead(TiltPin)){ delay(10); if(0 == digitalRead(TiltPin)){ LED("RED"); printf("Tilt!\n"); delay(100); } } else if(1 == digitalRead(TiltPin)){ delay(10); if(1 == digitalRead(TiltPin)){ LED("GREEN"); } } } return 0; } **Explicación del Código** .. code-block:: c void LED(char* color) { pinMode(Gpin, OUTPUT); pinMode(Rpin, OUTPUT); if (color == "RED") { digitalWrite(Rpin, HIGH); digitalWrite(Gpin, LOW); } else if (color == "GREEN") { digitalWrite(Rpin, LOW); digitalWrite(Gpin, HIGH); } else printf("LED Error"); } Cuando el interruptor de inclinación está inclinado hacia la derecha, el pin del medio y el de la derecha están conectados; 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:: c while(1){ if(0 == digitalRead(TiltPin)){ delay(10); if(0 == digitalRead(TiltPin)){ LED("RED"); printf("Tilt!\n"); } } else if(1 == digitalRead(TiltPin)){ delay(10); if(1 == digitalRead(TiltPin)){ LED("GREEN"); } } } Cuando el interruptor de inclinación está inclinado hacia la izquierda, el pin del medio y el de la izquierda están conectados; la Raspberry Pi lee un nivel bajo, por lo que el LED2 se enciende y el LED1 se apaga.