Nota

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 [Qui] 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

../_images/blinking_led_list2.png

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.

../_images/image482.png

Procedura Sperimentale

Passo 1: Costruisci il circuito.

../_images/image492.png

Passo 2: Vai alla cartella del codice.

cd ~/davinci-kit-for-raspberry-pi/nodejs/

Nota

Cambia directory al percorso del codice in questo esperimento tramite cd.

Passo 3: Esegui il codice.

sudo node blink.js

Nota

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:

nano blink.js

Nota

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:

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:

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

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.

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.

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.

Il metodo gpio.digitalWrite(level) imposta il livello del gpio a 1 o 0.

var led_state = 0;

setInterval(() => {
   led.digitalWrite(led_state);
   led_state = !led_state;
}, 300);

Riscrivi il codice come funzione arrow per renderlo più conciso.

Immagine del Fenomeno

../_images/image541.jpeg