Bemerkung

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

Warum beitreten?

  • Expertenunterstützung: Lösen Sie nach dem Kauf auftretende Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

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

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

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

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

👉 Bereit, mit uns zu entdecken und zu kreieren? Klicken Sie auf [hier] und treten Sie noch heute bei!

1.1.3 LED-Bargraph

Einführung

In diesem Projekt werden wir die Lichter auf dem LED-Bargraph nacheinander zum Leuchten bringen.

Komponenten

../_images/list_led_bar2.png

Schaltplan

../_images/schematic_led_bar2.png

Experimentelle Vorgehensweise

Schritt 1: Bauen Sie die Schaltung auf.

Bemerkung

Achten Sie auf die Richtung beim Anschließen. Wenn Sie es rückwärts anschließen, leuchtet es nicht.

../_images/image662.png

Schritt 2: Gehen Sie zum Ordner des Codes.

cd ~/davinci-kit-for-raspberry-pi/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-Bar 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 das LED-Bargraph mehrere Pins verwendet, erstellen wir ein konstantes Array pins, um sie in Gruppen zu speichern.

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

Instanziieren Sie diese Pins als LEDs-Objekte mit einer for-Schleife.

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

Implementieren Sie eine oddLedBarGraph()-Funktion, um die LEDs auf den ungeraden Ziffern des LED-Bargraphs zum Leuchten zu bringen.

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

Implementieren Sie eine evenLedBarGraph()-Funktion, um die LEDs auf den geraden Ziffern des LED-Bargraphs zum Leuchten zu bringen.

var odd_even = 0;

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

Der Betriebszustand der LED wird alle 500 ms gewechselt.

Phänomenbild

../_images/image671.jpeg