www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Softübergang bei Lauflicht in C ?


Autor: Thomas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich habe mal gehört, dass es möglich ist bei einem Lauflicht
Softübergänge einzubauen. Soll irgendwie mit PWM funktionieren,
aber da ich noch ein Anfänger bin, sind das für mich noch
böhmische Dörfer. Kann mir vielleicht jemand weiterhelfen?
Ich habe ein STK500 und benutze das cvavr.

Vielen Dank schon mal!

Thomas

Autor: Willi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht das denn überhaupt??

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe mal gehört, dass es möglich ist bei einem Lauflicht
> Softübergänge einzubauen.

Stimmt.

> Soll irgendwie mit PWM funktionieren,

Genau.

> aber da ich noch ein Anfänger bin, sind das für mich noch
> böhmische Dörfer. Kann mir vielleicht jemand weiterhelfen?

Vielleicht hilft das weiter?

http://www.mikrocontroller.net/forum/read-4-225283.html

Wenn du dazu Fragen hast, kann ich sie gerne beantworten.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach, Mist. Gerade nach dem Absenden sehe ich, daß da C stand. Meins ist
in Assembler, weil's da mit dem Timing einfacher ist.
Bei Hardware-PWM wäre das Timing nicht so kritisch, aber die AVRs haben
nicht so arg viele PWM-Kanäle. Da kommt man mit Software-PWM weiter.

Autor: Thomas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für Deine Antwort! Aber wie funktioniert das mit dem PWM
bzw. Software-PWM?

Autor: Berne HPH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi thomas, da haßt du richtig gehört, das geht so, mit pwm.

allerdings ist Deine frage ja nicht grad so einfach, weil kein schwein
weis, welche lampen du "schwellen" lassen willst?

z.B: hallos mit 12v, el- folien, natriumdampflampen, leuchtstoffröhren,
LEDs, oder xenonlampen, oder sinds vielleicht
CFFL lampen, usw. ?????

Die einen werden mit Gleichspg. die anderen mit Wechselspg.,
betrieben, wieder andere mit hoch-, oder niederfrequenz betrieben,
usw.

Also genaueres kannst du, ohne Lampentyp, nicht erfahren!

Allerdings ist das in etwa so:

Bei einer PWM Ansteuerung wird jedem Typ von Lampen, die benötigte
Energie in quasi, Energiepackete übergeben, was auch bei reinen
wechselstrom betriebenen Lampen der Fall ist, wie zb: den CFFl lampen,
und den EL lampen, die sich allerdings auch mit getakteter
gleichspannung zufrieden geben.

PWM heist ja, P für Puls, also Energie Impuls.

W für Weite, also wie "weit" ist der Energieimpuls, was so viel
bedeutet, wie "lange" dauert die Energieeinspeisphase.

und M für Modulation, also zyklische, zeitlich gesehen, veränderbarkeit
der Pausendauer, zwischen einem Energiepacket.

OLED lampen, wie auch LEDs, hätten ihre Packetchen, die du verändern
musst, gerne, eher, konstantstrom abhänngig.

EL und Halogenlampen eher konstantspannugsabhänngig.

und und und  so weietr, gruss berne, also ohne "Zutaten"
kein Rezept, wie ein Koch zusagen plegt.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei der PWM wird der Ausgang schnell mit konstanter Frequenz ein- und
ausgeschaltet. Dabei wird das Verhältnis zwischen den Zeiten im
eingeschaltetem und ausgeschaltetem Zustand variiert. Der Wechsel
geschieht so schnell, daß man das nicht wahrnimmt und die LED
erscheint, als leuchte sie mit nur einem Teil ihrer vollen Helligkeit.
In Wirklichkeit blinkt sie sehr schnell. Bei der Hardware-PWM ist ein
Timer in der Lage, dieses selbstständig zu generieren, so daß man ihm
nur noch das Tastverhältnis (also praktisch die gewünschte Helligkeit)
mitteilen muß.
Bei der Software-PWM generiert der Mikrocontroller die Impulse eben per
Software.
Das kleine Programm von mir macht das so, daß immer genau eine LED an
ist. Es wird schnell zwischen der "aktuellen" und der nächsten LED
hin- und hergeschaltet, wobei sich das Verhältnis der Dauer, mit denen
sie an sind, bei jedem Wechsel ändert, so daß die nächste immer heller
wird, die aktuelle immer dunkler. Sobald die nächste dann volle
Helligkeit hat, wird sie zur aktuellen, und das Spiel geht von vorne
los.

Autor: Berne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry,
hatte das nicht geblickt, daß es um leds geht.
hr.magnus hat das gut erklärt.
Vielleicht noch,
ich habe gemessen, daß die kleinste einschaltzeit bei roten
leds nicht kleiner als 0,5 mikrosec sein darf.

will man die leds ohne vorwiderstand direkt anschließen, was
an ein 5v port geht,wenn man moduliert, sollte die größte einschaltzeit
nicht über  250 mikrosec liegen,
man erhält dann so etwa 2omA effektivstrom.

Autor: Thomas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke Euch schon mal, ich werd mal nachlesen, wie man das in C
programmiert, aber Ihr habt mir schon sehr viel geholfen!

Gruß Thomas

Autor: smiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo thomas,

hilfe dazu im gcc-tutorial, und unter avr_pwm (noch nicht fertig) in
der artikelsammlung.
ich schlage aber vor, erst ein bisschen was mit timern zu machen, und
dann pwm. so leuchten einem die zusammenhänge ein.

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rolf

> Das kleine Programm von mir macht das so, daß immer genau eine LED
> an ist. Es wird schnell zwischen der "aktuellen" und der nächsten
> LED hin- und hergeschaltet, wobei sich das Verhältnis der Dauer,
> mit denen sie an sind, bei jedem Wechsel ändert, so daß die nächste
> immer heller wird, die aktuelle immer dunkler.


Das ergibt bloß nicht den gewünschten Effekt, da der
Helligkeitseindruck des Auges logarithmisch ist. Beide LEDs scheinen
also lange Zeit etwa gleich hell zu leuchten.

Um nun z.B. ein Lauflicht mit 8 LEDs zu machen, nimmt man am besten
eine 8-Kanal-PWM in Software mittels eines Timerinterrupts.

Und im Hauptprogramm werden nun schrittweise logarithmische PWM-Werte
aus einer Tabelle gelesen und in die entsprechenden Register der
Software-PWM geschrieben.

So ne Tabelle sieht dann z.B. so aus:

.db 255, 180, 128, 90, 64, 45, 32, 23, 16, 11, 8, 6, 4, 3, 2, 1, 0


Peter

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das ergibt bloß nicht den gewünschten Effekt, da der
> Helligkeitseindruck des Auges logarithmisch ist. Beide LEDs
> scheinen also lange Zeit etwa gleich hell zu leuchten.

Also in meinem Fall sah es jedenfalls ganz gut aus. Möglich, daß es
nicht 100% perfekt ist, aber für mich gut genug.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.