Vollständige Version anzeigen : verzögert anschaltende Außenbeleuchtung mit LEDs


jojo2peter
25.05.2015, 22:52

Hallo liebe RR-Community,

habe mal wieder ein kleines Anliegen: ich möchte für eine Ausßenbeleuchtung mit ~4 kleinen LED-Laternen indirekt einen Pfad beleuchten. Werde die selbst verbauen mit dieser LED (;;;leds~de/High-Power-LEDs/Cree-High-Power-LEDs/Cree-XP-L-U6-warmweiss-380lm-mit-Platine-Star;html), über paar Modifikationen und Ähnliches dann noch für den Außenbereich tauglich machen.
Jenachdem, ob man von vorne oder von hinten in den LED Bereich läuft, soll von dieser Seite aus langsam ein Licht nach dem Anderen angehen bis dann zum schluss nach einer festgelegten Zeit alle wieder ausgehen.
Wie ich das realisiere weiß ich noch nicht, entweder über Lichtschranke oder Bewegungsmelder... Habt ihr evtl. eine bessere Idee?

Bin derzeit am überlegen welche Lösung für ein langsames Aufleuchten am besten ist: per IC verzögert alle LEDs nacheinander anschalten (LEDs haben RC Glied vorgeschaltet) oder alles digital, also die Ausgänge des ICs quasi auf die Basis eines Transistors und dann per PWM langsam hochdimmen lassen?

Bei der 2. Variante hab ich bei einem Miniaturaufbau mit einem Arduino Board das Problem gehabt, dass ich die LEDs nur nacheinander hochdimmen lassen konnte.
Wenn z;bsp die 2. LED aber schon angehen soll, wenn die 1. bei 60% Helligkeit ist, klappt das nicht, außer ich bau das in eine Schleife ein, was aber eher ein "dirty fix" ist, gibt es da eine bessere Lösung?


Danke für eure Aufmerksamkeit,


Gruß jojo2peter

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
MasterJulian
26.05.2015, 17:33

Die LEDs über die Spannung eines RC Gliedes zu "dimmen" funktioniert nicht. LEDs sind Halbleiter und keine Glühbirnen.

Über eine PWM mit passendem (Mosfet-)Treiber wirst du nicht drumherum kommen wenn du ordentlich dimmen willst.

Wenn es sich nur um 4 Laternen handelt ist doch ein µC kein Problem. Selbst "kleine" ATMegas (z;B. ATMega328p auf dem Arduino Nano oder Arduino Pro Micro) haben 3 Timer mit jeweils 2 hardware-PWM Einheiten. Somit könntest du theoretisch 6 Kanäle unabhängig voneinander steuern.
Ist sicher die einfachste Lösung wenn man keine diskrete Hardware aufbauen will.


jojo2peter
26.05.2015, 19:12

Also an ein Arduino dachte ich auch, kann man ja bereits für 12€ erwerben und fest verbauen.
An FET dachte ich auch, wird ja auch nicht sonderlich teuer dann.

Der PWM Ausgang des Arduinos wird ja von 0-255 0=0% Helligkeit 255=100% Helligkeit gesteuert, zwischen dem anschalten kann man ja immer "delay(t)" machen, aber dass das einen schön fließenden Übergang ergibt, wie im 1. Post erwähnt, kann ich auch über die verschiedenen Timer und Kanäle nicht erreichen, oder?

Finde im Internet leider auch kein passendes Video, wie das aussehen soll.
In etwa so:
1. LED 0-30%
1. LED >30% 2. LED 0-30%
1. LED >60% 2. LED >30% 3. LED 0-30% etc...

Klar müssen es nicht diese Werte sein, sondern solche die gut in Kombination aussehen

Hoffe ihr versteht was ich meine.


MasterJulian
26.05.2015, 19:56

Ich verwende zwar "Arduino kompatible" Boards weil die einfach spotbillig sind (<2,5€ für ein Board mit Atmega328p, Spannungswandler, USB<-> UART und 16Mhz Quarz), programmiere aber direkt in C mit Atmel Studio.
Ich kenne die Arduino IDE und Lib deshalb nicht.

Du hast beim Atmega 328P 2 8Bit und einen 16Bit counter mit jeweils 2 PWM Kanälen. Diese sind erstmal unabhängig voneinander (sind ja in Hardware implementiert). Du hast somit 6 Echte PWM Ausgänge (4x mit 8Bit Auflösung und 2x 16Bit).
Du hast zwar je Timer immer die gleiche Frequenz, kannst den DC aber frei wählen (die Frequenz ist ja bei einer Dimmerschaltung nicht ganz so wichtig solange es kein sichtbares Flickern gibt).

Ich persönlich verstehe dein Problem nicht. Wieso kannst du die 6 vorhandene PWM Kanäle nicht unabhängig voneinander steuern?

PS: Delay() hat meiner Meinung nach bis auf spezielle Fälle im "Produktivcode" nichts zu suchen.


jojo2peter
27.05.2015, 13:46

Also da ich ein Arduino Anfänger bin, weiß ich scheinbar nicht was das Ding alles so kann, mein bisheriger Code für das Problem war:

// #include <math;h>
// LED Fading


int led = 9; // 1st LED Pin
int ledSecond = 10; // 2nd LED Pin
int ledThird = 11; // 3rd LED Pin

int brightness, brightnessSecond, brightnessThird = 0; // how bright the LEDs are

int fadeAmount = 1; // how many points to fade the LED by
int threshold = 30; // Threshold until next LED is triggered

// the setup routine runs once when you press reset:
void setup() {
// declare pin 9, 10 and 11 to be an output:
pinMode(led, OUTPUT);
pinMode(ledSecond, OUTPUT);
pinMode(ledThird, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {

// Trigger first LED, which triggers the 2nd etc.
while(brightness <= 255){
first();
delay(threshold);
}

delay(500);
brightness = 0;
brightnessSecond = 0;
brightnessThird = 0;
delay(100);
}

void first(){
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
quickStart(fadeAmount);
if(brightness >= threshold){
second();
delay(threshold);
}
// delay(40);
}

void second(){
analogWrite(ledSecond, brightnessSecond);
brightnessSecond = brightnessSecond + fadeAmount;
quickStart(fadeAmount);
if(brightnessSecond >= threshold){
third();
delay(threshold/2);
}
}

void third(){
analogWrite(ledThird, brightnessThird);
brightnessThird = brightnessThird + fadeAmount;
quickStart(fadeAmount);
}

void quickStart(int e){
fadeAmount = e/2+2;
// fadeAmount = pow(e, 2);
}


// Auf meinem Arduino funktionierts wie es soll... kann sein dass das hier aber ne neuere Version ist, die ich ausprobieren wollte. Kann es leider atm nicht testen

Was du nun sagst, dass es gibt, wäre sozusagen ein Interrupt.
Werde mich bzgl. der Counter etc. mal einlesen.


MasterJulian
27.05.2015, 16:57

Also da ich ein Arduino Anfänger bin, weiß ich scheinbar nicht was das Ding alles so kann
Das ist leider ein weit verbreitetes Problem unter der "Arduino Generation". Es wird "bare metal" Software geschrieben ohne die Hardware zu kennen. Das funktioniert durch die vorgefertigten Libs bis zu einem gewissen Grad ganz ok, führt aber später öfter zu Problemen.
Wenn dich wirklich interessiert was da abgeht würde ich mal das Datenblatt anschauen (zumindest die relevanten Kapitel). Das gibts auf Atmel Corporation - Microcontrollers, 32-bit, and touch solutions (;;;atmel~com)

Was du nun sagst, dass es gibt, wäre sozusagen ein Interrupt;
Für die PWM brauchst du keine Interrupts. Wie gesagt die sind in Hardware implementiert.

Werde mich bzgl. der Counter etc. mal einlesen;
Das würde ich sowieso machen. Hier mal ein Ausschnitt aus dem Datenblatt der kleinen 8-Bit ATmega Serie rauskopiert:
#attach#55684#/attach#
Hier siehst du einen der 8-Bit Timer und die zwei Waveform Generatoren die zur PWM Erzeugung genutzt werden können (gelb markiert).

Ich würde das ganze z;B. so implementieren (Pseudocode, ich gehe davon aus, dass die zwei 8-Bit Timer im non-inverted Fast-PWM Mode laufen mit 0xFF als TOP) und die Pins dementsprechend kofiguriert und beschaltet sind.
void LEDSoftStart(void)
{
static uint8_t dc1 = 0;
static uint8_t dc2 = 0;
static uint8_t dc3 = 0;
static uint8_t dc4 = 0;
static uint16_t cnt = 0;

if(dc1 < 255) dc1++;

if(cnt > 100)
if(dc2 < 255) dc2++;

if(cnt > 200)
if(dc3 < 255) dc3++;

if(cnt > 300)
if(dc4 < 255) dc4++;

OCR0A = dc1;
OCR0B = dc2;
OCR2A = dc3;
OCR2B = dc4;

if(cnt < 0xFFFF) cnt++;
}

Die Funktion rufst du dann halt alle x-ms periodisch auf. Nur so als simples Beispiel ohne irgendwas genauer getestet zu haben.


jojo2peter
08.06.2015, 17:44

Also vielen Dank für deine Antwort MasterJulian,
hab mittlerweile fast alles vor mir, was ich brauche.
Es fehlt lediglich ein passendes Netzteil.
Zuerst wollt ich dieses 3,3V/20W (Link@ Schaltnetzteil-LED-Netzteil-19-MeanWell-RS-25-3/ )nehmen, gerade beim ausprobieren(PC-Netzteil 3,3V Schiene) fiel mir dann auf, dass am Transistor ja 0,7V abfallen.

Ich erreiche damit 2,6V hätte aber gerne ~2,9V. Ein günstiges 5V Netzteil finde ich allerdings nicht, hat jemand Tipps?
Oder evtl. einen anderen Lösungsvorschlag?


Vielen Dank

// DIESES 5V/25W (Link@ douself-Spannungswandler-Schalter-Spg-Versorgungsteil-gef%C3%BChrte/ ) würde quasi am Limit laufen


MasterJulian
08.06.2015, 19:15

[..;]gerade beim ausprobieren(PC-Netzteil 3,3V Schiene) fiel mir dann auf, dass am Transistor ja 0,7V abfallen;[..;]Was für einen Transistor hast du gewählt, dass da 0,7V abfallen? Hat der ein so hohes Rds(on)?
Deine Schaltung wäre nicht schlecht.
Die Schaltnetzteile würde ich nicht am Limit betreiben. 10-15% Reserve sollte schon drin sein.


jojo2peter
08.06.2015, 21:27

Haha Ok, ich war eigentlich der Meinung, dass das siliziumbedingt ist, dass 0,7V abfallen.
Gerade lese ich aber auf Wikipedia:
Ein für einen Silizium-Transistor üblicher Wert ist UCE sat = 0,2 V, bei Darlington-Transistoren um 0,9 bis 2,5 V;

Dass dieser dumme Zufall wieder eintreten muss... Habe nämlich einen TIP120 (;;;fairchildsemi~com/datasheets/ti/tip120;pdf) welcher bei dem Arduino Starterset dabei war und gleichzeitig auch ein Darlington-Transistor ist.
Wollte einen IRLIZ44N benutzen, habe diesen aber noch nicht bestellt, weil ich erst ausprobieren wollte.
Wäre ja eigentlich perfekt: 3,3V - 0,2V... Fehlt nurnoch irgendwas um den Arduino zu betreiben
// Das Arduino Pro Mini (Link@ Arduino-kompatibles-Pro-Mini-ATmega328/ ) scheint ja dafür dann auch perfekt geeignet :)


MasterJulian
09.06.2015, 16:18

[..;]Habe nämlich einen TIP120 (;;;fairchildsemi~com/datasheets/ti/tip120;pdf) welcher bei dem Arduino Starterset dabei war und gleichzeitig auch ein Darlington-Transistor ist;[..;]
Einen Darlington Transistor nimmt man natürlich im Normfall nicht um größere Lasten zu schalten, sondern wie im Post #2 geschrieben einen MOSFET (sollte auch aus dem vor dir verlinkten Datenblatt ersichtlich werden). Siehe auch: Do not TIP! (;sensitiveresearch~com/DoNotTIP/index;html)
Wenn es geht würde ich immer n-Kanal MOSFETS als low-side Switch nutzten. Die benötigen keinen Treiber und lassen sich meist schneller schalten. p-Kanal als high-side Switch wenns eben nicht anders geht.
[..;]Wollte einen IRLIZ44N benutzen[..;] für deine Zwecke wohl etwas Overkill aber sollte funktionieren.
[..;]Wäre ja eigentlich perfekt: 3,3V - 0,2V[..;]
NEIN. Nochmal: Der Spannungsabfall hängt von der Last und dem RDS(on) ab. Ohmsches gesetzt und so: U = R*I
[..;]// Das Arduino Pro Mini (Link@ Arduino-kompatibles-Pro-Mini-ATmega328/ ) scheint ja dafür dann auch perfekt geeignet :)
Die nutze ich auch gern, der Preis wäre mir allerdings zu hoch. Bedenke, dass du hier noch entweder einen ISP Programmer oder (in deinem Fall da du ja die Arduino IDE nutzt) ein passendes FTDI Kabel (FTDI-Basic) zum programmieren benötigst.


jojo2peter
09.06.2015, 17:15

Vielen Dank.
Hab mich fast die komplette Nacht über MOSFETs eingelesen bzw. logic level etc. und habe eben deine Antwort, dass es auf den RDS(on) ankommt, auch gelesen. Schlussendlich hab ich sie dann bestellt.

Bzgl. des TIPs, der war nunmal in dem Starterset des Arduinos dabei, deshalb hab ich ihn benutzt, aber danke für den Link!

Bzgl.
Die nutze ich auch gern, der Preis wäre mir allerdings zu hoch. Bedenke, dass du hier noch entweder einen ISP Programmer oder (in deinem Fall da du ja die Arduino IDE nutzt) ein passendes FTDI Kabel (FTDI-Basic) zum programmieren benötigst;
Wie ich gelesen hab kann ich die 5V Teile, über meinen UNO programmieren. Kostet dann 6,49€.

Mittlerweile, nach langem überlegen, denke ich, dass die 3,3V Variante eher unsinnig ist(vor allem wegen des programmierens), da ich nun über ein Relais (gesteuert über den Arduino) das Netzteil erst schalten möchte, zwecks Strom sparen.

Damit dass jeder ein bisschen besser versteht, habe ich mittlerweile auch mal einen Schaltplan entworfen. Die Schaltbilder sind evtl. nicht 100% korrekt, aber ich denke jeder wird Bescheid wissen:
;;0;xup~in/exec/ximg;php?fid=42295837 (;;0;xup~in/exec/ximg;php?fid=42295837)
Mit dem LDR und Bewegungsmelder funktioniert das alles wie es soll, die Verdrahtung dieser bitte nicht beachten.
Für den 230V/5V Trafo, möchte ich einfach ein USB-Ladegerät benutzen!


MasterJulian
09.06.2015, 18:18

Ja du kannst wohl einen Arduino als ISP Programmer nutzten. Wie gut das geht weiß ich nicht.

Wieso willst du zwei Netzteile nutzen? Sowohl der Uno als auch der Pro Mini haben nen Mega328 drauf und sollte problemlos mit 3;3V laufen (steht alles im Datenblatt). Der MOSFET schaltet bereits bei 1V, ist also auch kein Problem. Selbst wenn der UNO nicht bei 3;3V läuft ist ein FTDI Kabel sicher Billiger als ein zweites Netzteil + Relais und Bauteile drum herum. Zudem kann man nie genug USB<->UART Adapter herumliegen haben.
Wenn du den ATMega wie im Schaltbild direkt nutzen willst fehlen noch ein paar Bauteile (Filterkondensator für die Versorgungsspannung, Reset Pullup, Programming Header und ggf. Quarz wenn benötigt)


jojo2peter
10.06.2015, 12:50

Wieso willst du zwei Netzteile nutzen?
Das Schaltnetzteil wird im Standby sicher den ein oder anderen Watt benötigen... wenn das Teil dann 24/7 läuft, sollte man das nicht vernachlässigen.

Das 5V Netzteil wäre, wie gesagt, so ein kleiner USB Ladestecker:
;s;gravis~de/p/z1/samsung-micro-usb-ladegeraet-universal-fuer-smartphone-und-tablet-schwarz_z1;jpg
Verlustleistung ist nicht so hoch und ich hätte solche noch da, müsste also keines mehr kaufen.

Ich denke ein einzelner Arduino wäre praktischer, hab deshalb einen ATMega328 ähnlichen µC genommen, auch ohne Schaltung.. nur zum verdeutlichen.


Die 3,3V machen mir grad bei der Leitungslänge sorgen, der weiteste Punkt ist bei ca. 12m x2(hin/zurück) = 24m.

Laut online-Rechnern hab ich bereits bei 20m einen Spannungsabfall von 0,6V.

wenn ich das selbst rechne: (großzügigerweise mit 2,5mm²)

#attach#55702#/attach#
Hab ich evtl. was vergessen?


MasterJulian
10.06.2015, 16:01

Das Schaltnetzteil wird im Standby sicher den ein oder anderen Watt benötigen... wenn das Teil dann 24/7 läuft, sollte man das nicht vernachlässigen.

Das 5V Netzteil wäre, wie gesagt, so ein kleiner USB Ladestecker:
;s;gravis~de/p/z1/samsung-micro-usb-ladegeraet-universal-fuer-smartphone-und-tablet-schwarz_z1;jpg
Verlustleistung ist nicht so hoch[..;]

Woher nimmst du die Annahme, dass dein 3,3V Schaltnetzteil >1W Standby hat und dein "USB Ladestecker" (welches, oh große Überraschung, ebenfalls ein Schaltnetzteil ist) wesentlich weniger im Standby verbraucht? Ich tippe mal drauf, dass keins von beiden auch nur ansatzweise 1W im Standby verbrauchen (zumindest wenns ordentlich Netzteile sind)

[..;]Ich denke ein einzelner Arduino wäre praktischer, hab deshalb einen ATMega328 ähnlichen µC genommen, auch ohne Schaltung.. nur zum verdeutlichen;[..;]
Über solche Aussagen könnte man sich jetzt Seitenlang auskotzten, ich machs kurz:
Ein Arduino ist KEIN µC, sondern ein Plattform inkl. Hard- und Software hauptsächlich basierend auf der AVR Atmega Serien von Atmel. Der µC ist also ein Atmega.
Es gibt keine "ATMega328 ähnlichen" Controller. Entweder du hast nen Mega328 oder eben nicht.

Wie bereits geschrieben benötigt ein µC eine gewisse Mindestbeschaltung um sauber zu funktionieren. Auch hier hilft ein Blick ins Datenblatt.

Die 3,3V machen mir grad bei der Leitungslänge sorgen[..;]
Die ist nicht zu vernachlässigen. Deine LEDs laufen natürlich auch Problemlos mit 2,7V. Wenn du die LEDs unbedingt am Limit betreiben willst kannst du
1) entweder ein Schaltnetzteil bei dem du die Spannung justieren kannst nehmen um damit die Spannungsabfall kompensieren oder
2) ein 5V Netzteil nehmen und nen passenden Vorwiederstand dazu

[..;]Hab ich evtl. was vergessen?
Ordentliche Kühlung für die LEDs bei 3A?

PS: Wenn du wirklich so auf den Standby Verbrauch scharf bist, dann betreibe den µC mit Akku und schalte deine Spannungsversorgung komplett über ein Relais. Am besten gleich mit Ladeschaltung.


jojo2peter
10.06.2015, 16:44

Was ich meinte war, dass es bei sPlan keinen ATMega328 gab, sondern nur einen ATMega324 und ich den genommen habe, deshalb sollte auch nicht auf die Beschaltung geachtet werden!
Mir ist auch bewusst, dass der Arduino kein µC ist.

Die LEDs sollen auf 2,9 - 3V betrieben werden, laut Dtenblatt benötigt eine LED bei 2,9V 1050mA.
Mit einem Sternkühlkörper ist für ausreichend Kühlung gesorgt, dieser wird erst nach ca. 1h Dauerbetrieb etwas wärmer.

Akkubetrieb ist eine gute Idee aber wenn sich das mit dem Standbybetrieb so verhält wie du sagst, benötige ich im Endeffekt ein gutes 5V Netzteil. Die MeanWell Netzteile auf Amazon scheinen mir geeignet. Ich besitze 2 12V/1,5A Netzteile um andere LEDs zu betreiben, das einzige was mir bisher auffiel war die Einschaltzeit, wenn es aber im Dauerbetrieb ist, ist das zu vernachlässigen.
Kann jemand Warnungen aussprechen?


MasterJulian
10.06.2015, 17:16

[..;]Die LEDs sollen auf 2,9 - 3V betrieben werden, laut Schaltplan benötigt eine LED bei 2,9V 1050mA.
Mit einem Sternkühlkörper ist für ausreichend Kühlung gesorgt, dieser wird erst nach ca. 1h Dauerbetrieb etwas wärmer;[..;]

Laut DATENBLATT (nicht Schaltplan) hat die LED eine typische Vorwärtsspannung von 2,95V (bei 1050 mA, 85 °C), jedoch keine Minimalspannung. Der maximale Vorwärtsstrom beträgt 3A. Wenn das dein Netzteil liefern kann wird das die LED auch ziehen (entsprechende Versorgungsspannung vorausgesetzt). Da du die LEDS hoffentlich nicht offen im Garten betriebst (Gehäuse und so) hast du auch keinen Luftstrom. Deshalb habe ich die Kühlung angesprochen.
[..;] Die MeanWell Netzteile auf Amazon scheinen mir geeignet;[..;]
Die Mean Well Netzteile sind super P/L Netzteile. Pass aber auf, dass du eins kaufst welches keine Grundlast benötigt.


Ähnliche Themen zu verzögert anschaltende Außenbeleuchtung mit LEDs
  • frage zu leds
    moin, ich will mir leds bestellen, bei reichelt da es da wohl am günstigsten is. hab mir jetzt diese hier herausgesucht: LED, 5mm, Standard, rot (;;;reichelt~de/?;ACTION=3;LA=2;GROUP=A5331;GROUPID=3018;ARTICLE=6821;START=32;SORT=artnr;OFFSET=16;SID=28HP6;oKwQARwAAEJHLpc782f62da3a5047ad4e3623df51ef [...]

  • LEDs + Vorwiderstände
    Nabend, ich bräuchte dringend eure hilfe. und zwar suche ich LEDs 3mm und 5mm in Blau und in Rot. Nur weiß ich nich genau welche LEDs ich kaufen soll und wo, bei Reichelt oder bei Conrad? Dann wärs natürlich am besten wenn ich für die LEDs auch nur eine Sorte Widerstände bräuchte. a [...]

  • Vorwiderstandsberechnung für LEDs
    Hoi! Heute erklär ich euch wie ihr den passenden Vorwiderstand berechnet , um eure LED an 12V anzuschließen. 13523 Kommen wir ersteinmal zu Grundlegendem: Die wichtigste Formel die ihr braucht ist das Ohmsche Gesetz: U=R*I oder I=U/R oder R=U/I Was wir jetzt brauchen, sind die Größe [...]

  • WEbcam mit LEDs
    Hallo, ich habe mir eine Webcam (PC USB Webcam 500k Mikrofon +4 LED HPC002 2153) über ebay gekauft und sie funktioniert soweit einwandfrei, wie eine webcam funktionieren sollte. Allerdings hat sie 4 LEDs um auch bei Dunkelheit vernünftige Bilder zu bekommen und diese lassen sich nciht einschalten. [...]



raid-rush.ws | Imprint & Contact pr