Skip to content

Latest commit

 

History

History
155 lines (101 loc) · 5.15 KB

ar_rgb.rst

File metadata and controls

155 lines (101 loc) · 5.15 KB

Note

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 [] und treten Sie heute bei!

2.4 - Farbenfrohes Licht

Wie wir wissen, kann Licht überlagert werden. Zum Beispiel ergibt die Mischung aus blauem und grünem Licht Zyan-Licht, rotes und grünes Licht ergibt gelbes Licht. Dies wird als "additive Farbmischung" bezeichnet.

Basierend auf dieser Methode können wir mit den drei Grundfarben Licht in jeder sichtbaren Farbe erzeugen, je nach spezifischem Mischungsverhältnis. Zum Beispiel lässt sich Orange durch mehr Rot und weniger Grün erzeugen.

In diesem Kapitel werden wir die Geheimnisse der additiven Farbmischung mit einer RGB-LED ergründen!

Eine RGB-LED ist im Grunde eine Kapselung einer roten, einer grünen und einer blauen LED unter einer Lampenkappe; alle drei LEDs teilen sich einen gemeinsamen Kathodenpin. Da jedem Anodenpin ein elektrisches Signal zugeführt wird, kann das Licht der entsprechenden Farbe angezeigt werden. Durch Veränderung der elektrischen Signalstärke an jedem Anodenpin können diverse Farben erzeugt werden.

  • cpn_rgb

Benötigte Komponenten

Für dieses Projekt werden die folgenden Komponenten benötigt.

Ein Komplettset ist natürlich praktisch, hier ist der Link dazu:

Name ARTIKEL IM SET KAUF-LINK
Kepler Kit 450+

Sie können die Teile auch einzeln über die folgenden Links kaufen.

SN KOMPONENTENBESCHREIBUNG ANZAHL KAUF-LINK
1 cpn_pico_w 1
2 Micro-USB-Kabel 1
3 cpn_breadboard 1
4 cpn_wire Mehrere
5 cpn_resistor 3(1-330Ω, 2-220Ω)
6 cpn_rgb 1

Schaltplan

Die PWM-Pins GP13, GP14 und GP15 steuern die roten, grünen und blauen Pins der RGB-LED. Der gemeinsame Kathodenpin ist mit GND verbunden. So kann die RGB-LED durch Überlagerung des Lichts an diesen Pins mit unterschiedlichen PWM-Werten eine spezifische Farbe anzeigen.

Verkabelung

Eine RGB-LED hat 4 Pins: Der längste Pin ist der gemeinsame Kathodenpin, der normalerweise mit GND verbunden ist. Der linke Pin neben dem längsten Pin ist Rot, die beiden Pins rechts sind Grün und Blau.

Code

Hier können wir unsere Lieblingsfarbe in einer Zeichensoftware (wie Paint) auswählen und sie mit der RGB-LED darstellen.

Note

  • Sie können die Datei 2.4_colorful_light.ino im Verzeichnis kepler-kit-main/arduino/2.4_colorful_light öffnen.
  • Oder kopieren Sie diesen Code in die Arduino IDE.
  • Vergessen Sie nicht, das Board (Raspberry Pi Pico) und den richtigen Port auszuwählen, bevor Sie auf die Upload-Schaltfläche klicken.

Tragen Sie den RGB-Wert in color_set() ein, dann wird die RGB-LED die gewünschten Farben leuchten.

Funktionsweise

In diesem Beispiel ist die Funktion zum Zuweisen von Werten an die drei Pins der RGB-LED in einer eigenständigen Unterfunktion color() verpackt.

void color (unsigned char red, unsigned char green, unsigned char blue)
{
    analogWrite(redPin, red);
    analogWrite(greenPin, green);
    analogWrite(bluePin, blue);
}

In loop(), dient der RGB-Wert als Eingabeargument, um die Funktion color() aufzurufen und damit die RGB-LED in verschiedenen Farben leuchten zu lassen.

void loop() 
{    
    color(255, 0, 0); // Rot
    delay(1000); 
    color(0, 255, 0); // Grün
    delay(1000);  
    color(0, 0, 255); // Blau
    delay(1000);
}