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.3 Barra LED
Introduzione
In questo progetto, accenderemo progressivamente le luci della Barra LED.
Componenti
Schema Elettrico
Procedura Sperimentale
Passo 1: Costruisci il circuito.
Nota
Presta attenzione alla direzione durante il collegamento. Se la colleghi al contrario, non si accenderà.
Passo 2: Vai alla cartella del codice.
cd ~/davinci-kit-for-raspberry-pi/nodejs/
Passo 3: Compila il codice.
sudo node led_bar_graph.js
Dopo aver eseguito il codice, vedrai i LED sulla barra accendersi e spegnersi regolarmente.
Codice
const Gpio = require('pigpio').Gpio;
var pins = [17, 18, 27, 22, 23, 24, 25, 2, 3, 8];
var leds = [];
for (let i = 0; i < pins.length; i++) {
leds[i] = new Gpio(pins[i], { mode: Gpio.OUTPUT });
}
function oddLedBarGraph() {
for (let i = 0; i < leds.length; i++) {
if (i % 2 == 1) {
leds[i].digitalWrite(1);
} else {
leds[i].digitalWrite(0);
}
}
}
function evenLedBarGraph() {
for (let i = 0; i < leds.length; i++) {
if (i % 2 == 0) {
leds[i].digitalWrite(1);
} else {
leds[i].digitalWrite(0);
}
};
}
var odd_even = 0;
setInterval(() => {
odd_even = (odd_even + 1) % 2;
if (odd_even == 1) {
oddLedBarGraph();
} else {
evenLedBarGraph();
}
}, 500);
Spiegazione del Codice
var pins = [17,18,27,22,23,24,25,2,3,8];
Poiché la barra LED utilizza più pin, creiamo un array costante pins per memorizzarli in gruppo.
var leds = [];
for (let i = 0; i < pins.length; i++) {
leds[i] = new Gpio(pins[i], { mode: Gpio.OUTPUT });
}
Istanziamo questi pin come oggetti leds utilizzando un ciclo for.
function oddLedBarGraph() {
for (let i = 0; i < leds.length; i++) {
if (i % 2 == 1) {
leds[i].digitalWrite(1);
} else {
leds[i].digitalWrite(0);
}
}
}
Implementa una funzione oddLedBarGraph() per accendere i LED nelle
posizioni dispari della barra.
function evenLedBarGraph() {
for (let i = 0; i < leds.length; i++) {
if (i % 2 == 0) {
leds[i].digitalWrite(1);
} else {
leds[i].digitalWrite(0);
}
};
}
Implementa una funzione evenLedBarGraph() per accendere i LED nelle
posizioni pari della barra.
var odd_even = 0;
setInterval(() => {
odd_even = (odd_even + 1) % 2;
if (odd_even == 1) {
oddLedBarGraph();
} else {
evenLedBarGraph();
}
}, 500);
Lo stato operativo dei LED viene alternato ogni 500 ms.
Immagine del Fenomeno