Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

1.1.3 LED-Lichtleiste

Einführung

In diesem Projekt beleuchten wir nacheinander die Lichter auf der LED-Lichtleiste.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/list_led_bar1.png

Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können diese auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

LED-Balkendiagramm

-

Schaltplan

../_images/schematic_led_bar1.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

Bemerkung

Achten Sie beim Verbinden auf die Richtung. Wenn Sie es verkehrt herum verbinden, wird es nicht leuchten.

../_images/image661.png

Schritt 2: Wechseln Sie in den Ordner mit dem Code.

cd ~/raphael-kit/nodejs/

Schritt 3: Kompilieren Sie den Code.

sudo node led_bar_graph.js

Nachdem der Code ausgeführt wurde, sehen Sie, dass die LEDs auf der LED-Lichtleiste regelmäßig ein- und ausgeschaltet werden.

Code

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);

Code-Erklärung

var pins = [17,18,27,22,23,24,25,2,3,8];

Da die LED-Lichtleiste mehrere Pins verwendet, erstellen wir ein konstantes Array pins, um sie in Chargen zu speichern.

var leds = [];
for (let i = 0; i < pins.length; i++) {
    leds[i] = new Gpio(pins[i], { mode: Gpio.OUTPUT });
}

Mit einer for-Schleife werden diese Pins als leds-Objekte instanziiert.

function oddLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 1) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    }
}

Implementiere eine Funktion oddLedBarGraph(), um die LEDs an den ungeraden Positionen der LED-Lichtleiste aufleuchten zu lassen.

function evenLedBarGraph() {
    for (let i = 0; i < leds.length; i++) {
        if (i % 2 == 0) {
            leds[i].digitalWrite(1);
        } else {
            leds[i].digitalWrite(0);
        }
    };
}

Implementiere eine Funktion evenLedBarGraph(), um die LEDs an den geraden Positionen der LED-Lichtleiste aufleuchten zu lassen.

var odd_even = 0;

setInterval(() => {
    odd_even = (odd_even + 1) % 2;
    if (odd_even == 1) {
        oddLedBarGraph();
    } else {
        evenLedBarGraph();
    }
}, 500);

Der Arbeitszustand der LED wird alle 500ms umgeschaltet.

Phänomen-Bild

../_images/image671.jpeg