.. note:: Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés. **Pourquoi rejoindre ?** - **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe. - **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences. - **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus. - **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents. - **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances. 👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui ! .. _2.1.4_js: 2.1.4 Interrupteur à glissière ================================== Introduction -------------- Dans ce projet, nous apprendrons à utiliser un interrupteur à glissière. Habituellement, l'interrupteur à glissière est soudé sur un PCB en tant qu'interrupteur d'alimentation, mais ici nous devons l'insérer dans la plaque d'expérimentation, il peut donc ne pas être bien fixé. Nous l'utilisons sur la plaque d'expérimentation pour montrer sa fonction. Composants nécessaires ------------------------- Dans ce projet, nous avons besoin des composants suivants : .. image:: ../img/list_2.1.2_slide_switch.png Il est certainement pratique d'acheter un kit complet, voici le lien : .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nom - ÉLÉMENTS DANS CE KIT - LIEN * - Kit Raphael - 337 - |link_Raphael_kit| Vous pouvez également les acheter séparément via les liens ci-dessous. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCTION DES COMPOSANTS - LIEN D'ACHAT * - :ref:`cpn_gpio_extension_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| Schéma de câblage -------------------- Connectez la broche centrale de l'interrupteur à glissière à GPIO17, et deux LEDs aux broches GPIO22 et GPIO27 respectivement. Ensuite, lorsque vous actionnez la glissière, vous pouvez voir les deux LEDs s'allumer alternativement. .. image:: ../img/image305.png .. image:: ../img/image306.png Procédures expérimentales ----------------------------- **Étape 1 :** Construisez le circuit. .. image:: ../img/image161.png **Étape 2 :** Accédez au dossier du code. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Étape 3 :** Exécutez le code. .. raw:: html .. code-block:: sudo node slide_switch.js Pendant l'exécution du code, lorsque l'interrupteur est connecté à gauche, la LED jaune s'allume ; lorsqu'il est connecté à droite, la LED rouge s'allume. **Code** .. 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); }); **Explication du code** .. 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 }); Importez le module pigpio et créez trois objets led1, led2, slideSwitch, pour contrôler l'allumage et l'extinction de led1 et led2 en lisant le niveau du port IO de slideSwitch. .. code-block:: js slideSwitch.on('interrupt', (level) => { led1.digitalWrite(level); led2.digitalWrite(!level); }); Lorsque le niveau lu du port IO de slideSwitch change, écrivez le même niveau à led1 et le niveau opposé à led2. Image du phénomène --------------------- .. image:: ../img/image162.jpeg