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
> 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.
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.
Danke schon mal für Deine Antwort! Aber wie funktioniert das mit dem PWM bzw. Software-PWM?
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.
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.
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.
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
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.
@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
> 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.