[Elektronik] Sammlung von Lichtsteuerungen mit Arduino

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smileys
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [Elektronik] Sammlung von Lichtsteuerungen mit Arduino

Re: [Elektronik] Sammlung von Lichtsteuerungen mit Arduino

von MHAG » 11 Nov 2019, 14:26

Hallo Herbert,

gibt´s schon Erfahrungen mit den Shift-Registern? Ansteuerung, Praktikabilität, Beschränkungen,...

Neugierige Grüße 8-)
Michael

Re: [Elektronik] Sammlung von Lichtsteuerungen mit Arduino

von Herbert » 04 Mär 2019, 16:26

Hi Helmut,

keine Ahnung, was ein PIC kann, aber am Arduino ist die Gesamtbelastung auf allen PINs zusammen 200 mA.
Ich habe heute ein Paket mit 20 Shift-Registern bestellt. Pro Shift-Register kann man 8 LEDs steuern und man braucht nur 3 PINs am Arduino und die Spannungsversorgung erfolgt extern. Aber das Beste: Man kann beliebig viele solcher Shift-Register hintereinander setzen und braucht trotzdem nur 3 PINs.

Re: [Elektronik] Sammlung von Lichtsteuerungen mit Arduino

von Helmut » 04 Mär 2019, 15:56

Hallo Herbert,
ich bin jetzt etwas verwundert, dass die Strombelastung ein Problem ist. An dem PIC meines Autobahnmoduls habe ich 44 LED über 2,2 k Widerstände angeschlossen.
Ich bin gespannt, wie Du da mehr LEDs anschließen willst. Mir fällt da nur spontan ein, die Ausgänge als Datenbus zu nutzen. Bei 5 Leitungen sind das 31 LEDs (32 - 1 für alle aus). Allerdings musst Du die Datenleitungen irgendwie decodieren. Oder hast Du da noch was anderes vor.

Gruß aus KerpeN
Helmut

[Elektronik] Sammlung von Lichtsteuerungen mit Arduino

von Herbert » 04 Mär 2019, 11:41

Hi N-Bahner,

ich möchte hier ein Fass aufmachen, wo ich so nach und nach meine Lösungen für diverse Lichtsteuerungen vorstelle. So soll im Laufe der Zeit eine Sammlung an Ideen bzw Lösungen entstehen, von der wohl auch der eine oder andere von Euch profitieren kann.

Den Beginn mache ich mal mit einer Hausbeleuchtungssteuerung, die anders als viele fertige Lösungen nicht mit einem fixen Ablauf arbeiten, sondern wo die einzelnen LEDs zufallsgesteuert ein- bzw ausgeschaltet werden. Dadurch ergibt sich bei größeren Häuseransammlungen ein nicht nachvollziehbares Wechseln der Lichter in den Häusern. Im nachfolgenden Beispiel sind 5 LEDs im Einsatz.

Zum Nachbau benötigt man folgende Komponenten:

- Steckbrett
- 5 LEDs nach Wahl
- 5 Widerstände 1kOhm
- 1 Arduino mit mind. 5 digitalen Ausgängen
- Jumperkabeln in ausreichender Länge und Menge

Bild

Ich verzichte hier auf das Zeigen eines Schaltplans, da der oben gezeigte Aufbauplan in meinen Augen aussagekräftig genug sein und eh jeder wissen sollte, wie man eine LED mit Strom versorgt. Und hier noch der zugehörige Sketch:

Code: Alles auswählen

// ---------------------------------
// Hausbeleuchtung durch Zufallszahl
// ---------------------------------
int Anzahl=5;            // Anzahl angeschlossener LEDs
long Streckung=7000;     // Erhoeht die Wartezeit (in ms)
int Tab[]={0,0,0,0,0};   // Status-Tabelle der LEDs; 0=aus, 1=an
int Zufall;              // Wert der zufaellig ausgewaehlten LED
int Wartezeit;           // Wartezeit zwischen 2 Veraenderungen

void setup() {
// Zufallszahlengenerator Start
  randomSeed(analogRead(0)); 
// PINs auf OUTPUT setzen
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);  
}

void loop() {
// waehlt eine der 5 LEDs zufaellig aus
  Zufall=random(Anzahl);
// wenn die LED aus ist, setze Status in Tabelle auf 1 und schalte LED ein
  if (Tab[Zufall]==0) {
    Tab[Zufall]=1;
    digitalWrite(Zufall+8,HIGH);  }
// wenn die LED an ist, setze Status in Tabelle auf 0 und schalte LED aus
  else  {
    Tab[Zufall]=0;
    digitalWrite(Zufall+8,LOW);  }
// ermittle Zufallszahl fuer die Wartezeit setze delay
  Wartezeit=random(50);
  delay((Wartezeit*100)+Streckung);  
}
Im Sketch müssen lediglich 4 Änderungen vorgenommen werden:

int Anzahl=5;
long Streckung=7000;
int Tab[]={0,0,0,0,0};

Bei Anzahl ist die Anzahl der angeschlossenen LEDs anzugeben.
Bei long Streckung=7000; ist ein Wert bis 32000 einzugeben, um die die Wartezeit gestreckt wird, bis die nächste LED an oder aus geht.
Bei int Tab[].... muss für jede LED eine 0 eingeben werden.
Und im loop-Teil sind bei beiden digitalWrite Befehlen die PIN-Nummer, mit der begonnen wird, zu ändern (in meinem Fall beginne hängt die erste LED auf PIN 8).

Und hier ist auch das größte Problem: die Anzahl der steuernden LEDs ist am Arduino (egal, welchen man hat) begrenzt. Desweiteren ist man auch mit der Strommenge schnell am Limit. Die nächste Version wird diesbezüglich kein Limit haben, aber für Mehrparteienhäuser, wo nur einzelne Fenster zufallsgesteuert beleuchtet werden sollen, ist diese Lösung mit Sicherheit ausreichend.

Nach oben