LEDs "soft" einschalten+ausschalten

  • Sowas löst man heute mit einem einfachen, billigen Arduino(-klon).

    Das Programm dazu ist sicher nicht allzu schwer zu schreiben, da ich mich aber nicht mit sowas befasse, kann ich dir da nicht weiter helfen.


    Ich hab vor 50 Jahren in Physik nicht richtig zugehört und darum nur ein fragmentarisches Wissen über elektronische Bauteile. Ich weiß, was die einzelnen Bauteile grundsätzlich tun, aus diesem Wissen aber eine Schaltung zu entwerfen zu wollen, wäre anmaßend. Noch schlimmer sieht es mit der Programmierung kleiner ICs aus.

    Wie soll ich es denn noch erklären??

  • Tja, was erwartest du denn außer Hilfe zur Selbsthilfe? von der Stange wird es das sicher nicht geben. Und die Arduinos/Sparks sind so gemacht, dass auch nicht ITler damit was zustande bringen.


    BTW, wie hell soll das ganze denn sein? Wie das Original? Tagsüber wird man das dann aber nicht sehen.

  • Danke für die Erläuterung. Wenn ich erstmal einen VHS-Kurs zur Arduino-Programmierung belegen muss und dann sehr viel Zeit in dies Gimmick investieren muss, lasse ich es halt. Ich dachte, da hätte jemand mit Ahnung und Erfahrung keinen Aufwand, dies spezielle Problem zu lösen. Das ist anscheinend nicht so, ich entschuldige mich für meine Fehleinschätzung und meine Frage an das Schwarmwissen.


    Wenn man allerdings eine Frage stellt wie: Wie komme ich hier über den Fluss, ich kann leider nicht schwimmen? Und dann als Antwort erhält: „Überhaupt kein Problem, schwimm einfach rüber“, kommt man sich schon etwas veralbert vor - egal wie dumm die Frage auf einen Schwimmer wirken muss…


    Zu Deiner Frage: Das soll nicht sehr hell sein, wenn ich das abends im Dunkeln als Gag einschalten kann, würde mir das reichen.

  • Wenn man allerdings eine Frage stellt wie: Wie komme ich hier über den Fluss, ich kann leider nicht schwimmen? Und dann als Antwort erhält: „Überhaupt kein Problem, schwimm einfach rüber“, kommt man sich schon etwas veralbert vor - egal wie dumm die Frage auf einen Schwimmer wirken muss…

    Schade dass das so rüberkam. Aber um im Bild zu bleiben "die Brücke möchtest du dir wohl auch nicht zeigen lassen".

  • Mach doch eine Ausschreibung und erstelle ein Pflichtenheft dazu.

    Ins Pflichtenfeft gehört alles rein, was du gerne hättest. das könnte meinetwegen so aussehen:

    - Spannunsversorgung KFZ-Bordnetz 12V

    - Leitungslänge zur LED 1 Meter

    - Außendurchmesser Kabel zur LED maximal 2mm

    - Kabel zur LED steckbar

    - Steuerung darf maximal die folgenden Maße haben aaa x bbb x ccc

    Das Pflichtenheft bedeutet Sicherheit für beide Seiten. Sonst findet sich ein gutmütiger Zeitgenosse und hinterher heißt es: "Das Kabel ist mir zu kurz und ich kann nicht löten" Oder jemand progammiert dir einen Arduino und du stellst fest "der Mikrocontroller braucht 5V, ich habe aber nur 12V"

    usw. nach de

    Je nach deinen Wünschen kann das von 20€ bis open End gehen :P

    20€ bsw. wäre fair, wenn dir jemand den Controller programmiert und nen Spannungsregler und einen Treibertransistor für die LED nebst 1 meter Kabel da dranklöppelt und du dich um einer Verteilerdose als Gehäuse zufriedengibst. Bedenke, Porto bei 3 Anbietern und der Zwanni ist "versenkt" ;)

  • Das ist ein sinnvoller Vorschlag, danke Superluminal.


    Um im Bild zu bleiben, dottoreD: das wirkte nicht so wie Brücke zeigen, mehr wie 'dann lern halt schwimmen' ;)


    Fürs Lastenheft, wie ich bereits schrieb - löten kann ich und auch sonstige Arbeiten zumindest zu meiner Zufriedenheit ausführen. Es hapert nur bei der eigenen Erstellung von Schaltplänen und der Programmierung z.B. von Arduinos.


    Da aber heute Bastelwetter war und ich ja nicht völlig beratungsresistent bin, habe ich mal geschaut, was die YT-Uni so an Material im Sinne von 'Arduino für Dummies' bereit hält, oder, um im Bild zu bleiben, mal ein paar Schritte in den Fluss gemacht..

    Daraus resultiert nun meine Frage, ob ich, wenn ich eine rote LED mit 200 Ohm Widerstand an Pin 9 anschließe und den Arduino mit stabilisierten 12V aus dem Bordnetz versorge, mit diesem Script auf dem richtigen Weg wäre:


    int LED=9;


    int helligkeit= 100;


    int fadeschritte= 5;



    void setup()



    {


    pinMode(LED, OUTPUT);


    }



    void loop()


    {


    analogWrite(LED, helligkeit);


    helligkeit = helligkeit + fadeschritte;


    delay(25);


    if (helligkeit == 255);


    delay(1500);


    {


    fadeschritte = -fadeschritte ;}


    if (helligkeit == 100);


    delay(30000);


    }


    ??

  • Kein Thema, man kann ja miteinander reden :)


    Dein Anliegen hat ja zwei Seiten, und ich denke es macht Sinn die zu trennen:

    - Hardware

    - Software


    Hardware: zum testen ist eine einfache rote LED mit Vorwiderstand am Ausgang des Prozessors völlig ausreichend. Am Womo würde ich dann eher eine sehr warme weiße mit 2000K nehmen, die sind deutlich heller und effizienter. Effizienz nicht um das Stromnetz zu belasten sondern die Ansteuerung zu vereinfachen.


    Die 12V könnten noch ein kleines Problem darstellen, Arduino Nanos werden zwar mit bis zu 12V (oder13V?) Eingangsspannung beworben, der aufgelötete Spannungsregler hat da aber bei manchen damit zu kämpfen weil er die Verlustleistung nicht wegbekommt. Direkt am USB hatte ich allerding noch nie Probleme, zum testen und programmieren direkt am Rechner für mich die ideale Lösung.


    Software: ich denke die Idee hinter deinem Skript ist klar, 30s Grundhelligkeit, dann über Rampe auf volle Helligekit, 1,5s halten, dann wieder runter auf Grundhelligkeit.

    Da meine Sketche generell über trial&Error entstehen, muss ich die auch immer so lange durch den Kompiler jagen bis es passt. Auf Anhieb fällt mir außer falscher Klammersetzung noch auf, daß es nur Aufwärts, aber nicht mehr abwärts geht. Sprich zweite Invertierung der Schritte fehlt, ein delay habe ich reduziert, damit man schnell was sieht und nicht 30s warten muss, ebenso die Grundhelligkeit die man sowieso am Ende finetunen muss, je nach Helligkeit der verwendeten LED.



    PS: du wirst sehen, man kommt auf den Geschmack. Zum Beispiel könnte man zwei LEDs nehmen und damit beim Aufglimmen die Lichtfarbe von extrem warm (rot) nach hellrot / gelb verschieben. Und den linearen Anstieg / Abfall noch besser der Realität anpassen :)

  • eine RGB LED (WS2812) könnte den Übergang der Rot und Gelbtöne abbilden.

    Außerdem auch mal mit nichtlinearen Anstiegen experimentieren. Das Auge hat ein logarithmisches Helligkeitsempfinden. Eine scheinbare Verdoppelung der Helligkeit ist in Wirklichkeit eine Vervierfachung.

    Vielleicht sieht es auch natürlicher aus, wenn für 50 oder 100 ms ehe die volle Helligkeit erreicht wird, noch mal kurz ein Einbruch auf ein geringeres Level erfolgt.

    Zur Hardware: ein Spannungsregler(modul) kostet nicht viel. Dazu noch eine Verpolschutzdiode, eine kleine Sicherung und ein Varistor oder eine Transildiode, als Überspannungsschutz im Bordnetz und du bist von Bastelnivau schon (fast) in der Profiliga :)

    Da ist dann auch der Vorteil des Selbermachens: Du kannst so lange experimentieren, bis es für DICH perfekt ist! Ein Anderer würde sagen: ist zwar nicht perfekt, aber es tut, was bestellt war :evil:

  • So, ich hab für mich den Arduino-Simulator von tinkercad entdeckt. Hier ist er sicher Standard, ich kannte den noch nicht und konnte anfangen zu simulieren, ohne zu Hause zu sein und Bauteile zu haben.


    Dieser Sketch macht jetzt, was ich mir vorgestellt hatte.


    int LED=9;

    int helligkeit= 30;

    int fadeschritte= 5;


    void setup()

    {

    pinMode(LED, OUTPUT);

    }


    void loop()

    {

    analogWrite(LED, helligkeit);

    helligkeit = helligkeit + fadeschritte;

    delay(30);

    if (helligkeit == 250)

    delay (2500);

    if (helligkeit == 30 || helligkeit == 255)

    {

    fadeschritte = -fadeschritte ;

    }

    if (helligkeit == 30)

    delay (30000);

    }


    Ob der Tipp mit den nichtlinearen Anstiegen was für mich ist, muss ich dann wirklich am offenen Herzen ausprobieren.

    Die Sache mit der Farbänderung Richtung orange beim Aufleuchten gefällt mir (da müsste ich bei einer RGB zum rot grün dazu faden, korrekt?)


    Jetzt hab ich noch ein Problem, das nicht zu diesem Threadtitel passt - ich schreibe trotzdem mal hier weiter. Wenn das nicht Recht ist, kann ich gerne einen neuen Thread dafür aufmachen.

    Ich möchte nach dem Aufleuchten der LED kurz einen Smoke-Generator ansteuern (soweit zum Thema: Du wirst sehen, man kommt auf den Geschmack...) 8o


    Ich habe das dafür später zuständige Relais mit einer weißen LED simuliert, bekomme es aber nicht zum Laufen (wahrscheinlich hab ich nur ein Grundverständnisproblem...)
    Wenn ich die weiße LED an Pin 6 anschließe und dem Sketch int Smoke=6; und pinMode(Smoke, OUTPUT) zufüge

    und dann nach "if(helligkeit == 30)"


    digitalWrite(Smoke, HIGH);

    delay (2000);

    digitalWrite(Smoke, LOW);


    einfüge, funzt garnix mehr. Auch die rote LED leuchtet nicht mehr auf, sondern glimmt nur noch (was ich nicht verstehe, da dieser Befehl doch ganz vorn im Sketch steht)


    Ich hatte als erste Fehlersuche antizipiert, dass man evtl. digitalWrite und analogWrite nicht in einem Sketch mixen kann und es jetzt noch mit dem Einfügen von


    {analogWrite(Smoke, 255);

    delay (2000);

    analogWrite (Smoke, 0);}


    probiert, auch das führt zum selben Misserfolg. Weiß das Schwarmwissen da weiter?

  • Erst dachte ich an ein elektrisches Problem, ist aber Klammersetzung {}. Bei einem Befehl direkt am "if" geht es, sobald was dazu kommt nicht mehr. Deshalb lieber immer so machen.


    Ist-Zustand:

    Code
    if (helligkeit == 30)
    delay (30000);
    }


    Soll:

    Code
    if (helligkeit == 30){
    delay (30000);
    }

    Bitte formatiere den Code auch immer mit den Code-Tags, ist besser lesbar und wird nicht seltsam interpretiert. Aber wird Code denn da nicht kompiliert, da müssten so Fehler eigentlich eine Meldung generieren.



    Und wo war der Arduino simulator als ich ihn damals gebraucht hätte ;)

  • Danke für den Tipp mit den geschweiften Klammen.

    Nein - da hat er keinen Fehler ausgeworfen (macht er aber ansonsten schon).


    Das Fehlverhalten hat die Verwendung der geschweiften Klammern aber leider noch nicht eliminiert - muss ich noch ein bisschen weiter suchen.


    Eine RGB bekomme ich auch nicht dazu, die Farbe Richtung Orange zu ändern. Wenn ich nach dem Hochfaden von Rot einen Befehl für die Grünkathode dazu schreibe, fängt die rote an zu flackern, sonst tut sich nix...


    <edit> das Fehlverhalten ist weg, ich musste beide Befehle (delay und smoke) in dieselbe geschweifte Klammer schreiben, nicht in zwei nacheinander

    Jetzt kämpfe ich mit der RGB...

  • schön, dass Du Dich dazu entschieden hast, da selbst auszuprobieren, und dass es gut läuft! ?


    den Arduino Simulator kannte ich tatsächlich auch noch nicht. Danke für den Tipp! Ich habe zwar (seitdem ich auf den Geschmack gekommen bin, davor jahrelang nur Assembler… ?) immer diverse Arduinos (und ESP) rumliegen, aber wenn man mal unterwegs ist und grad ne Idee ausprobieren will, ist das sicher hilfreich! ?

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Falls es von Interesse ist - jetzt macht die LED, was sie soll. Am Anfang wird der Rauchschlauch gefüllt, dass da sofort das Richtige passiert und dann läuft der Loop.