rgb led controller mit Poti

Moin!
ich bin neu in der Arduino Familie und habe noch keinen Plan von der Welt.

ich habe mir vorgenommen für meinen Roller (TGB Bull&t RS 50) ein RGB Led System einzubauen. Und zwar hab ich mir das so vorgestellt: Ein Nano soll die ganze Geschichte regeln mit 3 Potis für Jeweils R, G und B soll man den Farbanteil Regeln können. Strom bekommt alles von der Roller Batterie aber nur wenn die Zündung aktiv ist.

Jetzt sind meine Fragen: Funktioniert das mit einem Arduino Nano? Welche LED Streifen kann/sollte ich dafür benutzen? Welche Potis brauche ich? Funktioniert das nicht nur Theoretisch sondern auch Praktisch?

lasseb:
Moin!
ich bin neu in der Arduino Familie und habe noch keinen Plan von der Welt.

ich habe mir vorgenommen für meinen Roller (TGB Bull&t RS 50) ein RGB Led System einzubauen. Und zwar hab ich mir das so vorgestellt: Ein Nano soll die ganze Geschichte regeln mit 3 Potis für Jeweils R, G und B soll man den Farbanteil Regeln können. Strom bekommt alles von der Roller Batterie aber nur wenn die Zündung aktiv ist.

Jetzt sind meine Fragen: Funktioniert das mit einem Arduino Nano? Welche LED Streifen kann/sollte ich dafür benutzen? Welche Potis brauche ich? Funktioniert das nicht nur Theoretisch sondern auch Praktisch?

Frage 1: Ja
Frage 2: irgendeinen deiner Wahl. Sinnvoll einen mit der Betriebsspannung deines Rollers.
Frage 3: Solche, die du sinnvoll einbauen kannst, welche mit Befestigungsmutter und Welle. So um die 50kΩ sind sinnvoll
Frage 4: ja, auch praktsich

lasseb:
Welche LED Streifen kann/sollte ich dafür benutzen?

Hast Du WS2815 in Betracht gezogen? Da kann der Nano mit einem Pin jeden einzelnen Lichtpunkt (Pixel) getrennt ansteuern, jede der drei RGB-Leds in 256 Stufen. Die WS2815 werden mit 12 V versorgt und brauchen maximal 15 mA (bei mir gemessen 10 mA) je Lichtpunkt.

Bei den Potis bin ich wegen möglicher Störungen eher bei Werten von 1 kΩ bis 10 kΩ.

lasseb:
Funktioniert das nicht nur Theoretisch sondern auch Praktisch?

Die Streifen habe ich in wasserfestem Silikon in meiner Kellerbar.

Ich habe zwar meinen Motorradführerschein auf einem Roller gemacht, mit LEDs an einem Roller habe ich aber keine Erfahrung.

Bitte beachte unbedingt die Vorschriften für den Straßenverkehr! Manipulationen am Fahrzeug können die Versicherung erlöschen lassen. Ich habe gute Erfahrungen mit Fragen beim TÜV oder in der Fachwerkstatt gemacht. Unwissenheit schützt nicht!

Vielen Dank erst einmal,

Über die Geschichte mit der StVO bin ich bereits informiert, also darüber brauchst du/ihr euch keine sorgen machen. :slight_smile:

Was das technische angeht mache ich mir größere Sorgen. Gibt es jemanden der das auch wenn es nicht direkt das selbe ist in etwa schon probiert hat wo ich mir die Technik abschauen könnte.

Wie bereits gesagt hab ich nicht viel/gar keine Erfahrung mit Arduinos gemacht. Dieses Projekt sollte für mich der Einstieg in die Arduinos sein.

LG

lasseb:
Gibt es jemanden der das auch wenn es nicht direkt das selbe ist in etwa schon probiert hat wo ich mir die Technik abschauen könnte.

Wenn Du einen LED-Streifen verwenden möchtest, der in allen Lichtpunkten die selbe Farbe zeigt, findest Du im Baumarkt Streifen mit Ansteuerung und Fernbedienung.

Wenn Du Richtung WS2815 tendierst, solltest Du einen Blick auf die Programmbibliothek FastLED werfen und die mitgelieferten Beispiele ansehen. Damit animiere ich die Streifen in meiner Bar.

lasseb:
Gibt es jemanden der das auch wenn es nicht direkt das selbe ist in etwa schon probiert hat wo ich mir die Technik abschauen könnte.

Ja, ich habe das schon gebaut mit drei Potis und einem 0815-LED-RGB-Band mit gemeinsamer Anode. Den Sketch dazu (geschrieben für einen Uno), gebe ich dir gerne. Lies ihn dir durch. Durch die Bemerkungen kommst du schon etwas weiter, denke ich.

// Helligkeitssteuerung über PWM -> analogWrite
// angesteuert wird ein RGB-LED-Band mit gemeinsamer Anode (12V) über einen ULN2803

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

int ledPin1 = 9;      // erster Eingang ULN an Pin 9 grün
int ledPin2 = 10;     // zweiter Eingang ULN an Pin 10 rot 
int ledPin3 = 11;     // dritter Eingang ULN an Pin 11 blau
// Die Ausgänge des ULN sind mit den Kathoden des LED-Bandes verbunden

int analogPin1 = 1;   // Potentiometer an A1 grün
int analogPin2 = 2;   // Potentiometer an A2 rot
int analogPin3 = 3;   // Potentiometer an A3 blau
int val1 = 0;         // Variable um den Analogwert zu speichern 
int val2 = 0;         // Variable um den Analogwert zu speichern 
int val3 = 0;         // Variable um den Analogwert zu speichern 
 
void setup() 
{ 
  lcd.begin(20,4);            // initialisiere das LCD 
  lcd.clear();                // LCD löschen
  lcd.home ();                // Zeile 1
  pinMode(ledPin1, OUTPUT);   // den Pin als Ausgang konfigurieren 
  pinMode(ledPin2, OUTPUT);   // den Pin als Ausgang konfigurieren 
  pinMode(ledPin3, OUTPUT);   // den Pin als Ausgang konfigurieren 
} 
 
void loop() 
{ 
  val1 = analogRead(analogPin1);    // Pin A1 lesen grün 
  val2 = analogRead(analogPin2);    // Pin A2 lesen rot
  val3 = analogRead(analogPin3);    // Pin A3 lesen blau
  analogWrite(ledPin1, val1 / 4);   // analogRead Werte reichen von 0 bis 1023, analogWrite Werte von 0 bis 254 
  analogWrite(ledPin2, val2 / 4);   // analogRead Werte reichen von 0 bis 1023, analogWrite Werte von 0 bis 254 
  analogWrite(ledPin3, val3 / 4);   // analogRead Werte reichen von 0 bis 1023, analogWrite Werte von 0 bis 254 
    lcd.home();                     // Homeposition
    lcd.print("gruen: ");           // grün Wert ausgeben
    lcd.print(val1 / 4);            
    lcd.print(" ");                 
    lcd.setCursor ( 0, 1 );         // LCD 1. Zeile Position 8 weiter schreiben
    lcd.print("rot  : ");           // rot Wert ausgeben
    lcd.print(val2 /4);             
    lcd.print(" ");                
    lcd.setCursor ( 0, 2 );         // LCD 2. Zeile Position 0 weiter schreiben
    lcd.print("blau : ");           // blau Wert ausgeben
    lcd.print(val3 /4);             
    lcd.print(" ");                
}