- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Leuchtturm-Simulation mit LEDs

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.09.2006
    Ort
    Kempen / Ndrh.
    Alter
    60
    Beiträge
    60

    Leuchtturm-Simulation mit LEDs

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen !

    Ich möchte das Leuchtfeuer eines Leuchtturms simulieren. Ein simples Lauflicht reicht mir da nicht, ich denke eher an ein langsames Einschalten der LEDs bis zum Maximum, dann wieder langsam Ausschalten bis zum "Aus". 18 LEDs für rundum reichen mir, davon sollten drei oder fünf oder gar sieben jeweils in den verschiedenen Zuständen "an" sein, die mittlerste jeweils um die volle Helligkeit, die beiden daneben dann jeweils im halbhellen Bereich und die beiden daneben dann jeweils im schwachhellen Bereich.

    OOOOOOOOO
    1OOOOOOOO
    21OOOOOOO
    321OOOOOO
    2321OOOOO
    12321OOOO
    O12321OOO
    OO12321OO
    OOO12321O
    OOOO12321
    OOOOO1232
    OOOOOO123
    OOOOOOO12
    OOOOOOOO1
    OOOOOOOO0

    Je weicher die Übergänge werden, desto besser. Ein Leuchturm ist schliesslich kein Flashlight

    Am liebsten würde ich das mit einem ATmega-Controller realisieren, einfache C-Kenntnisse und Hardwarekenntnisse sind vorhanden.

    Danke für Eure Hilfe !

    Gruß, Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Hallo,
    schönes Projekt
    Nur wo ist eigentlich die Frage ?

    Da kommst Du um PWM nicht herum, wenn Du noch keinen µC im Sinn hast würde ich Dir irgendwas mit viel Hardware PWM empfehlen, ich glaube der Mega88 hat z.B. 6 PWM Kanäle

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.09.2006
    Ort
    Kempen / Ndrh.
    Alter
    60
    Beiträge
    60
    Zitat Zitat von izaseba
    Hallo,
    schönes Projekt
    Nur wo ist eigentlich die Frage ?
    Danke. Stimmt. Okay, ich reiche die Frage mal nach : wie kann man sowas mit vernünftigem Aufwand realisieren ?

    Zitat Zitat von izaseba
    Da kommst Du um PWM nicht herum, wenn Du noch keinen µC im Sinn hast würde ich Dir irgendwas mit viel Hardware PWM empfehlen, ich glaube der Mega88 hat z.B. 6 PWM Kanäle
    Das dachte ich auch schon, aber braucht man da Hardware-PWM für, geht das nicht vielleicht auch mit Soft-PWM ? Denn bei 18 LEDs bräuchte ich ja entsprechend viele Hardware-PWMs ... und das bietet mir kein Controller !

    Die erste Idee war, 18 Soft-PWM-Kanäle zu realisieren ... aber irgendwie fehlt mir eine vernünftiger Einstieg ... eine zündende Idee für den Start, wenn Du verstehst, was ich meine ?!

    Gruß, Andreas

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Ja ich weiß, was Du meinst

    Ganz wichtig ist es eine Frequenz zu treffen, wo es nicht flackert 50 Hz z.B. ?
    die dann mit der Auflösung multiplizieren z.B. 256
    es kommt irgendwas mit 12 KHz, so mußt Du Deinen Timer laufen lassen.

    Für jede LED mußt Du eine PWM Variable nehmen, die dann die Helligkeit darstellt 0-Aus 255 ganz hell.

    So, wenn Der Timer überläuft inkrementierst Du eine Hilfsvariable und vergleichst sie mit allen LEDs Vabiablen nacheinander , wenn sie Gleich ist setzt Du den entsprechenden Pin auf LOW.

    Ich hoffe, daß es verständlich ist, es erzeugt aber ziemlich viel Last, man muß gucken, Daß die Interrupt Routine nicht länger braucht als der Timer.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    29.09.2006
    Ort
    Kempen / Ndrh.
    Alter
    60
    Beiträge
    60
    Zitat Zitat von izaseba
    Ja ich weiß, was Du meinst
    Gut

    Zitat Zitat von izaseba
    Ganz wichtig ist es eine Frequenz zu treffen, wo es nicht flackert 50 Hz z.B. ? die dann mit der Auflösung multiplizieren z.B. 256
    es kommt irgendwas mit 12 KHz, so musst Du Deinen Timer laufen lassen.
    Die Freuqenz sollte so hoch wie nötig und so niedrig wie möglich sein ...

    Zitat Zitat von izaseba
    Für jede LED musst Du eine PWM Variable nehmen, die dann die Helligkeit darstellt 0-Aus 255 ganz hell.
    Klar, so sehe ich das auch ...

    Zitat Zitat von izaseba
    So, wenn Der Timer überläuft inkrementierst Du eine Hilfsvariable und vergleichst sie mit allen LEDs Vabiablen nacheinander , wenn sie Gleich ist setzt Du den entsprechenden Pin auf LOW.
    Und wenn die Hilfsvariable "0" ist, dann werden im Prinzip alle LEDs eingeschaltet ...

    Zitat Zitat von izaseba
    Ich hoffe, daß es verständlich ist, es erzeugt aber ziemlich viel Last, man muß gucken, Daß die Interrupt Routine nicht länger braucht als der Timer.
    Deswegen muss die Frequenz ja so niedrig wie möglich sein.

    Wo ich bisher noch keine Idee zu habe, ist, wie ich das Ganze nun auch noch ans Laufen bekomme ... also die Drehbewegung des Leuchtfeuers

    Gruß, Andreas

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Deswegen muss die Frequenz ja so niedrig wie möglich sein.
    Ja, 50 Hz hab ich eben so gesagt, da muß man halt etwas probieren, damit das Auge kein flackern mehr wahrnimmt.

    Wo ich bisher noch keine Idee zu habe, ist, wie ich das Ganze nun auch noch ans Laufen bekomme ... also die Drehbewegung des Leuchtfeuers
    Hmm,
    ein Array mit Abbbild einer Drehung z.B.
    Code:
    uint8_t abbild[] = {32,64,128,255,128,64,32,0,0,0,0,0,0,0,0,0,0,0};
    naja, die Werte müssen natürlich noch ermittelt werden.

    das ganze mit einer Schleife in die PWM Werte laden und bei jedem Durchgang eine Stelle weiter rechts anfangen ?

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    29.09.2006
    Ort
    Kempen / Ndrh.
    Alter
    60
    Beiträge
    60
    Zitat Zitat von izaseba
    Hmm, ein Array mit Abbbild einer Drehung z.B.
    Code:
    uint8_t abbild[] = {32,64,128,255,128,64,32,0,0,0,0,0,0,0,0,0,0,0};
    naja, die Werte müssen natürlich noch ermittelt werden.
    das ganze mit einer Schleife in die PWM Werte laden und bei jedem Durchgang eine Stelle weiter rechts anfangen ?
    Wenn ich das jetzt richtig verstehe, dann willst Du diese 7 LEDs jeweils bis zu einem konstanten PWM-Wert laufen lassen, richtig ? Meinst Du, dass das einen fließenden Übergang genügend simulieren kann ?
    Ich dachte an eine fließende Anpassung der PWM-Werte. Aber der Aufwand beim Programmieren ist so erheblich, dass ich denke, dass selbst ein ATmega-16 mit 16 MHz das nicht schaffen kann ... oder ?

    Gruß, Andreas

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Ich dachte an eine fließende Anpassung der PWM-Werte
    Ja ich verstehe, einfach sanft ausblenden bzw. einblenden.
    Ich persönlich würde es erstmal mit solch einem Array probieren
    verfeinern kann man es immer noch.

    Hast Du die Hardware schon fertig, oder bist Du erstmal nur am planen ?

    Gruß Sebastian

    P.S. wie ich gerade sehe sind wir fast Nachbarn
    Software is like s e x: its better when its free.
    Linus Torvald

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    29.09.2006
    Ort
    Kempen / Ndrh.
    Alter
    60
    Beiträge
    60
    Zitat Zitat von izaseba
    Ich dachte an eine fließende Anpassung der PWM-Werte
    Ja ich verstehe, einfach sanft ausblenden bzw. einblenden.
    Ja, genau ... das war jedenfalls mein erster Gedanke !

    Zitat Zitat von izaseba
    Ich persönlich würde es erstmal mit solch einem Array probieren verfeinern kann man es immer noch.
    Die Hardware bleibt ja zumindest dieselbe, aber bei 18 LEDs auf 360 Grad ist es unrealistisch, wenn davon 7 LEDs gleichzeitig mehr oder weniger "an" sind, oder ? Ich denke, das sollten 4 oder max. 5 LEDs sein, aber vielleicht muss man das auch erstmal sehen ...

    Zitat Zitat von izaseba
    Hast Du die Hardware schon fertig, oder bist Du erstmal nur am planen ?
    Nein, ich bin bisher nur am planen, weder Hardware noch Software "stehen" zurzeit !

    Zitat Zitat von izaseba
    P.S. wie ich gerade sehe sind wir fast Nachbarn
    Jepp, habe ich vorhin auch schon gesehen ... ... Vielleicht trifft man sich ja mal ...

    Gruß, Andreas

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Ich denke, das sollten 4 oder max. 5 LEDs sein
    Ja, Du hast recht, ich hab es einfach so niedergeschrieben, ohne viel nachzudenken...

    Schön ausblenden wäre natürlich viel schöner, dafür müßte aber die PWM Frequenz höher sein, womit wir wieder mit HW PWM besser dran wären.
    Vielleicht trifft man sich ja mal
    Spätestens wenn Deine Laterne fertig ist

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus