.. note:: Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché Unirsi?** - **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team. - **Impara e Condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze. - **Anteprime Esclusive**: Accedi in anteprima agli annunci dei nuovi prodotti. - **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri nuovi prodotti. - **Promozioni Festive e Omaggi**: Partecipa a omaggi e promozioni speciali per le festività. 👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti subito! 1.1.1 LED Lampeggiante ========================= Introduzione ----------------- In questo progetto, impareremo a far lampeggiare un LED tramite la programmazione. Con le impostazioni giuste, il tuo LED può produrre una serie di effetti interessanti. Ora, cominciamo. Componenti ------------------ .. image:: img/blinking_led_list.png :width: 800 :align: center Schema Elettrico --------------------- In questo esperimento, collega una resistenza da 220Ω all'anodo (il pin lungo del LED), quindi collega la resistenza a 3,3 V e collega il catodo (il pin corto) del LED al GPIO17 del Raspberry Pi. Per accendere un LED, dobbiamo impostare il livello di GPIO17 a basso (0V). Possiamo ottenere questo effetto programmando. .. image:: img/image48.png :width: 800 :align: center Procedura Sperimentale ----------------------------- **Passo 1:** Costruisci il circuito. .. image:: img/image49.png :width: 800 :align: center **Passo 2:** Vai alla cartella del codice. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/nodejs/ .. note:: Cambia directory al percorso del codice in questo esperimento tramite ``cd``. **Passo 3:** Esegui il codice. .. raw:: html .. code-block:: sudo node blink.js .. note:: Qui sudo - superuser do, e python significa eseguire il file con Python. Dopo l'esecuzione del codice, vedrai il LED lampeggiare. **Passo 4:** Se desideri modificare il file blink.js, premi ``Ctrl + C`` per interrompere l'esecuzione del codice. Poi digita il seguente comando per aprire blink.js: .. raw:: html .. code-block:: nano blink.js .. note:: nano è un editor di testo. Il comando viene utilizzato per aprire il file del codice blink.js con questo strumento. Premi ``Ctrl+X`` per uscire. Se hai modificato il codice, apparirà un messaggio che chiede se salvare le modifiche o meno. Digita ``Y`` (salva) o ``N`` (non salvare). Quindi premi ``Enter`` per uscire. Digita di nuovo nano blink.js per vedere l'effetto dopo la modifica. **Codice** Di seguito il codice del programma: .. code-block:: js const Gpio = require('pigpio').Gpio; const led = new Gpio(17,{mode: Gpio.OUTPUT}); var led_state = 0; function blink_led(){ led.digitalWrite(led_state); led_state = !led_state; } setInterval(blink_led,300); In alternativa, scrivi il codice come funzione arrow specifica per js: .. code-block:: js const Gpio = require('pigpio').Gpio; const led = new Gpio(17,{mode: Gpio.OUTPUT}); var led_state = 0; setInterval(() => { led.digitalWrite(led_state); led_state = !led_state; }, 300); **Spiegazione del Codice** .. code-block:: js const Gpio = require('pigpio').Gpio; Importa il costruttore Gpio dal pacchetto pigpio in questo modo, e poi definisci una costante ``Gpio`` per rappresentare questo costruttore. Grazie a vari costruttori, possiamo utilizzare js per controllare dispositivi elettronici. ``pigpio`` può essere utilizzato per implementare GPIO veloci, PWM, controllo del servo, notifiche di cambio di stato e gestione delle interruzioni. * `pigpio - github `_ .. A wrapper for the pigpio C library to enable fast GPIO, PWM, servo control, .. state change notification and interrupt handling with JS on the Raspberry Pi Zero, .. 1, 2, 3 or 4. .. code-block:: js const led = new Gpio(17,{mode: Gpio.OUTPUT}); La parola chiave ``new`` viene utilizzata per costruire oggetti istanziati della classe. Collega il LED al GPIO17 della scheda di espansione a forma di T, imposta la modalità del LedPin su output e assegnala alla costante ``led``, ovvero costruisci un oggetto GPIO17 ``led``, e la sua modalità è di uscita. Esistono due modi per numerare i pin IO sul Raspberry Pi: numero BOARD e numero BCM. Nel nostro progetto, utilizziamo il numero BCM. È necessario impostare ogni canale utilizzato come ingresso o uscita. .. code-block:: js function blink_led(){ led.digitalWrite(led_state); led_state = !led_state; } setInterval(blink_led,300); Il metodo ``setInterval()`` può chiamare funzioni o eseguire espressioni a un intervallo specificato (in millisecondi). Qui cambiamo lo stato operativo del LED con un intervallo di 300ms. * `setInerval `_ Il metodo ``gpio.digitalWrite(level)`` imposta il livello del gpio a 1 o 0. .. code-block:: js var led_state = 0; setInterval(() => { led.digitalWrite(led_state); led_state = !led_state; }, 300); Riscrivi il codice come funzione arrow per renderlo più conciso. * `Arrow Functions `_ Immagine del Fenomeno ------------------------- .. image:: img/image54.jpeg :width: 800 :align: center