RGB-LED-Leuchten
Inhaltsverzeichnis
RGB ist ein Farbmodell, das häufig in Farbdisplays und digitalen Bildgebungstechnologien verwendet wird. RGB stellt die Kombination der Farben „Rot“, „Grün“ und „Blau“ dar. Diese drei Grundfarben können in Kombination mit unterschiedlichen Intensitäten weitere Farben ergeben. Das RGB-Modell wird verwendet, um die Farbe eines Pixels zu beschreiben, wobei jede Farbe einen Wert zwischen 0 und 255 darstellt. Verschiedene Kombinationen dieser Werte werden verwendet, um Millionen verschiedener Farbtöne zu erzeugen und spielen eine grundlegende Rolle bei der Erstellung digitaler Bilder.
Dieses Projekt ermöglicht die Farbsteuerung mit Potentiometern mithilfe eines RGB-LED. In diesem mit PicoBricks realisierten Projekt steuern drei Potentiometer die RGB-Komponenten (Rot, Grün, Blau) unabhängig voneinander. Jede Potentiometer Passt die Helligkeit der entsprechenden Farbkomponente an. Mit dem Projekt können Sie ganz einfach verschiedene Farben und Schattierungen erstellen. Die Anschlüsse und der Code der RGB-LED sind einfach und ideal zum Anpassen des Projekts oder zum Erstellen einer grundlegenden Grundlage für komplexere Anwendungen. Es bietet die Möglichkeit, die Farbe der LED in Echtzeit durch Drehen der Potentiometer zu ändern.
Durch den Einsatz von RGB-LEDs und Potentiometern lernen Sie, analoge und digitale Ein-/Ausgänge zu steuern. Es bietet auch eine praktische Gelegenheit, die Programmierkenntnisse zu verbessern. Das Verstehen und Anpassen des Projekts hilft beim Erlernen der Funktionsweise elektronischer Schaltkreise und der Verwendung der Komponenten. Projekte dieser Art sind ein guter Ausgangspunkt für die MINT-Ausbildung (Naturwissenschaften, Technik, Ingenieurwesen und Mathematik) und bieten eine interessante Erfahrung für diejenigen, die ihre Elektronik- und Programmierkenntnisse verbessern möchten.
Die LED-Technologie hat die Beleuchtung verändert und bietet grenzenlose Möglichkeiten für eine fantasievolle und dynamische Beleuchtung. In Bereichen wie Innenarchitektur, Unterhaltung und dem täglichen Gebrauch bieten RGB-LEDs die Möglichkeit, die Atmosphäre zu bestimmen, eindrucksvolle Bilder zu schaffen und unsere Umgebung zu personalisieren. Je weiter wir ihr Potenzial entdecken, desto offensichtlicher wird, dass RGB-LEDs heute in der modernen Beleuchtung unverzichtbar sind und unserem Leben Farbe, Vitalität und Anpassungsfähigkeit verleihen. Angesichts der kontinuierlichen Fortschritte in diesem Bereich verspricht die Zukunft weitere spannende Möglichkeiten für RGB-LEDs, sich hervorzutun.
Wenn Sie detailliertere Informationen zu RGB-LEDs erhalten möchten, können Sie dies tun klicken Sie hier!
Details und Algorithmus
Mit dem RGB-LED-Steuerungsprojekt können Sie Farbkombinationen anpassen, indem Sie RGB-LEDs (rot, grün, blau) über Potentiometer steuern. Der erste Schritt besteht darin, den Wert des Potentiometers von 0 bis 1023 in einen Wert von 0 bis 255 umzuwandeln. Diese Transformation ist notwendig, um die Helligkeit der Farbkomponenten zu steuern. Jedes Potentiometer weist dann den roten, grünen und blauen Komponenten einen Wert zu. Im letzten Schritt werden diese Werte den relevanten Komponenten der RGB-LED zugeordnet, um die gewünschte Farb- und Helligkeitskombination zu erzeugen. Durch Drehen des Potentiometers können Sie die LED-Farbe und -Helligkeit in Echtzeit anpassen.
Komponente
1X PicoBricks
Schaltplan
MicroBlocks-Codes der PicoBricks
MicroPython-Codes der PicoBricks
von Zeit zu Zeit Schlaf importieren
vom Maschinenimport-Pin
von Picobricks Import WS2812
Importzeit
vom Maschinenimport I2C
Von Picobricks importieren Sie SSD1306_I2C
Importmaschine
Mathematik importieren
ws2812 = WS2812(6, Helligkeit = 1)
i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
pin_button = machine.Pin(10, machine.Pin.IN)
Mathematik importieren
pot = machine.ADC(26)
def color_code():
global pot_val, red, green, blue, color_list, i
while (pin_button.value()) == (0):
oled.fill(0)
pot_val = Round(round( pot.read_u16() – 0 ) * ( 255 – 0 ) / ( 65535 – 0 ) + 0)
oled.text(“{}”.format(str(str(color_list[i])+str(“ „))+str(pot_val)), 0, 0)
oled.show()
pot_val zurückgeben
def chosing_red():
global pot_val, red, green, blue, color_list, i
rot = color_code()
ich += 1
def chosing_green():
global pot_val, red, green, blue, color_list, i
grün = color_code()
ich += 1
def chosing_blue():
global pot_val, red, green, blue, color_list, i
blau = color_code()
ich += 1
während True:
color_list = [„ROT“, „GRÜN“, „BLAU“]
rot = 0
grün = 0
blau = 0
ich = 0
ws2812.pixels_fill((0 ,0 ,0 ))
ws2812.pixels_show()
oled.text(“{}”.format(“Farbcode”), 0, 0)
oled.text(“{}”.format(str(“RED = “)+str(red)), 20, 25)
oled.text(“{}”.format(str(“BLUE = “)+str(blau)), 20, 35)
oled.text(“{}”.format(str(“GREEN = “)+str(grün)), 20, 45)
chosing_red()
time.sleep((1))
chosing_green()
time.sleep((1))
chosing_blue()
oled.fill(0)
oled.show()
ws2812.pixels_fill((rot, grün, blau))
ws2812.pixels_show()
time.sleep((2))
PicoBricks IDE-Codes der PicoBricks
Arduino C-Codes für PicoBricks
#include
#include „ACROBOTIC_SSD1306.h“
#include
#define BUTTON_PIN 10
#define LED_PIN 7
#PIN 6 festlegen
#define NUMLEDS 1
Adafruit_NeoPixel leds = Adafruit_NeoPixel(NUMLEDS, PIN, NEO_GRB + NEO_KHZ800);
int color_list[0];
int pot_val = 0;
String pot_val_str = " ";
int rot = 0;
int grün = 0;
int blau = 0;
void color_code(){
while(digitalRead(BUTTON_PIN) == 0){
pot_val = analogRead(A0);
pot_val = map(pot_val,0,1023,0,255);
oled.setTextXY(0,11);
oled.putString(String(pot_val));
Serial.println(pot_val);
}
}
void setup() {
Serial.begin(9600);
Wire.begin();
oled.init();
oled.clearDisplay();
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
randomSeed(analogRead(A0));
leds.begin();
}
void loop() {
oled.setTextXY(0,0);
oled.putString("Farbcode:");
oled.setTextXY(1,0);
oled.putString("----------------");
oled.setTextXY(2,1);
oled.putString("RED");
oled.setTextXY(4,1);
oled.putString("GREEN");
oled.setTextXY(6,1);
oled.putString("BLUE");
while (digitalRead(BUTTON_PIN) == LOW) {
Farbcode();
digitalWrite(LED_PIN,HIGH);
Verzögerung (1000);
digitalWrite(LED_PIN,LOW);
rot = pot_val;
oled.setTextXY(2,7);
oled.putString(String(red));
Verzögerung (1000);
Farbcode();
digitalWrite(LED_PIN,HIGH);
Verzögerung (1000);
digitalWrite(LED_PIN,LOW);
grün = pot_val;
oled.setTextXY(4,7);
oled.putString(String(green));
Farbcode();
digitalWrite(LED_PIN,HIGH);
Verzögerung (1000);
digitalWrite(LED_PIN,LOW);
blau = pot_val;
oled.setTextXY(6,7);
oled.putString(String(green));
digitalWrite(LED_PIN,LOW);
Verzögerung (1000);
for(int i=0;i < NUMLEDS;i++) {
leds.setPixelColor(i, leds.Color(rot,grün,blau));
leds.show();
Verzögerung (2000);
leds.setPixelColor(i, leds.Color(0, 0, 0)); //Alle Pixel schwarz ausschalten
leds.show();
}
}
oled.clearDisplay();
}