.. note:: Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché unirti a noi?** - **Supporto esperto**: Risolvi i problemi post-vendita e le sfide tecniche con l'aiuto della nostra community e del nostro team. - **Impara e condividi**: Scambia consigli e tutorial per migliorare le tue competenze. - **Anteprime esclusive**: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime. - **Sconti speciali**: Godi di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni festive e giveaway**: Partecipa a concorsi e promozioni durante le festività. 👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso! .. _2.1.4_js: 2.1.4 Interruttore a Scorrimento ======================================= Introduzione ------------------- In questo progetto, impareremo a usare un interruttore a scorrimento. Solitamente, l'interruttore a scorrimento viene saldato su PCB come interruttore di alimentazione, ma qui dobbiamo inserirlo nella breadboard, quindi potrebbe non essere ben fissato. Lo usiamo sulla breadboard per mostrare il suo funzionamento. Componenti necessari -------------------------- In questo progetto, abbiamo bisogno dei seguenti componenti. .. image:: ../img/list_2.1.2_slide_switch.png È sicuramente conveniente acquistare un kit completo, ecco il link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nome - OGGETTI IN QUESTO KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Puoi anche acquistarli separatamente dai link sottostanti. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUZIONE AI COMPONENTI - LINK PER L'ACQUISTO * - :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| Schema elettrico ------------------------ Collega il pin centrale dell'interruttore a scorrimento a GPIO17 e due LED rispettivamente ai pin GPIO22 e GPIO27. Poi, quando fai scorrere l'interruttore, vedrai i due LED accendersi alternativamente. .. image:: ../img/image305.png .. image:: ../img/image306.png Procedure sperimentali ----------------------------- **Passo 1:** Costruisci il circuito. .. image:: ../img/image161.png **Passo 2**: Vai alla cartella del codice. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Passo 3:** Esegui il codice. .. raw:: html .. code-block:: sudo node slide_switch.js Mentre il codice è in esecuzione, collega l'interruttore a sinistra, il LED giallo si accenderà; collegalo a destra, si accenderà il LED rosso. **Codice** .. 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); }); Spiegazione del Codice --------------------------------- .. 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 }); Importa il modulo pigpio, crea tre oggetti led1, led2 e slideSwitch, e controlla l'accensione e lo spegnimento di led1 e led2 leggendo il livello della porta IO di slideSwitch. .. code-block:: js slideSwitch.on('interrupt', (level) => { led1.digitalWrite(level); led2.digitalWrite(!level); }); Quando il livello della porta IO di slideSwitch cambia, scrivi lo stesso livello su led1 e il livello opposto su led2. Immagine del fenomeno ------------------------------ .. image:: ../img/image162.jpeg