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.2 RGB LED

Einführung

In diesem Projekt werden wir eine RGB-LED steuern, um verschiedene Farben blinken zu lassen.

Benötigte Komponenten

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

../_images/list_rgb_led1.png

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

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

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

KOMPONENTENVORSTELLUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

RGB LED

KAUFEN

Schaltplan

Nachdem die Pins von R, G und B mit einem strombegrenzenden Widerstand verbunden sind, schließen Sie sie jeweils an die GPIO17, GPIO18 und GPIO27 an. Der längste Pin (GND) der LED wird mit dem GND des Raspberry Pi verbunden. Wenn den drei Pins unterschiedliche PWM-Werte gegeben werden, zeigt die RGB-LED verschiedene Farben an.

../_images/rgb_led_schematic1.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/image611.png

Schritt 2: Gehen Sie zum Ordner des Codes.

cd ~/raphael-kit/nodejs/

Schritt 3: Starten Sie den Code.

sudo node rgb_led.js

Nachdem der Code ausgeführt wurde, werden Sie sehen, dass die RGB-LED rot, grün, blau, gelb, rosa und cyan anzeigt.

Code

const Gpio = require('pigpio').Gpio;
const ledred = new Gpio(17, { mode: Gpio.OUTPUT });
const ledgreen = new Gpio(18, { mode: Gpio.OUTPUT });
const ledblue = new Gpio(27, { mode: Gpio.OUTPUT });

function colorset(r, g, b) {
    ledred.pwmWrite(r);
    ledgreen.pwmWrite(g);
    ledblue.pwmWrite(b);
}

var color_index = -1;

setInterval(() => {
color_index += 1;
switch (color_index) {
    case 0:
        colorset(0xff, 0x00, 0xFF);
        break;
    case 1:
        colorset(0x00, 0xff, 0x00);
        break;
    case 2:
        colorset(0x00, 0x00, 0xff);
        break;
    case 3:
        colorset(0xff, 0xff, 0x00);
        break;
    case 4:
        colorset(0xff, 0x00, 0xff);
        break;
    case 5:
        colorset(0xc0, 0xff, 0x3e);
        break;
    default:
        color_index=-1;
    }
}, 500);

Code-Erklärung

const ledred = new Gpio(17,{mode: Gpio.OUTPUT});
const ledgreen = new Gpio(18,{mode: Gpio.OUTPUT});
const ledblue = new Gpio(27,{mode: Gpio.OUTPUT});

Initialisieren Sie die Pins 17, 18 und 27 im Ausgabemodus und weisen Sie sie den Konstanten ledred, ledgreen und ledblue zu.

function colorset(r,g,b){
    ledred.pwmWrite(r);
    ledgreen.pwmWrite(g);
    ledblue.pwmWrite(b);
}

Implementieren Sie eine colorset(r,g,b) Funktion, die dazu dient, Puls-Werte an die Pins 17, 18 und 27 zu schreiben. Die Gpio-Bibliothek kapselt die Funktion pwmWrite() ein, um Puls-Werte an Pins zu schreiben. Der Wert reicht von 0x00 bis 0xff. Mit der Funktion colorset(r,g,b) können Sie dann RGB-Werte an die RGB-LED schreiben, sodass sie verschiedene Farben anzeigen kann.

Bemerkung

Bei Fragen zu RGB verweisen wir auf die Webseite: https://www.rapidtables.com/web/color/RGB_Color.html

var color_index = -1;

setInterval(() => {
color_index += 1;
switch (color_index) {
    case 0:
        colorset(0xff, 0x00, 0xFF);
        break;
    case 1:
        colorset(0x00, 0xff, 0x00);
        break;
    case 2:
        colorset(0x00, 0x00, 0xff);
        break;
    case 3:
        colorset(0xff, 0xff, 0x00);
        break;
    case 4:
        colorset(0xff, 0x00, 0xff);
        break;
    case 5:
        colorset(0xc0, 0xff, 0x3e);
        break;
    default:
        color_index=-1;
    }
}, 500);

Die RGB-LED wird durch colorset() gesteuert, das alle 500ms ausgeführt wird. Hier wird ein Switch-Case verwendet, um die von den RGB-LEDs ausgestrahlte Farbe auszuwählen. Da color_index in jedem Zyklus um eins geändert wird, ändert sich die Farbe dieser RGB-LED in der Reihenfolge.

Phänomen-Bild

../_images/image621.jpeg