Forum: Mikrocontroller und Digitale Elektronik PWM in einem Lauflicht


von Uwe W. (dk1kq)


Lesenswert?

Knoble gerade an einem neuen Projekt.
Zur Erklärung. Es soll ein Lauflicht aus 24 LED gebildet werden. jede 
LED soll "faden" also von Dunkel auf hell und wieder zurück gehen.
Mit einem Atmega 16 währen mühelos die LEDs zu schalten.
Doch wie sieht das mit PWM aus .
Brauche ich für jede LED auch einen PWM Ausgang oder wäre eine andere 
Lösung praktikabler ?


Gruß Uwe

von ich (Gast)


Lesenswert?

SoftPWM

von Daniel D. (bademeister)


Lesenswert?

Also mir fallen spontan 2 Ansätze ein. Entweder du implementierst ne 
Software-PWM und kannst somit jeden einzelnen Port dimmen, oder aber du 
verschaltest die Leds so, dass ein HW-PWM Pin vom Controller das Signal 
liefert und ein anderer Pin als Senke arbeitet.
Beide Varianten haben vor- und Nachteile. Kommt drauf an, ob der 
Conroller noch was anderes machen soll, oder wie die externe Beschaltung 
aussieht..

von Olof G. (ole)


Lesenswert?

Moin!

Ich würde das mit Schieberegistern aufbauen, die einen EnableOutput Pin 
haben und diesen dann per PWM schalten.
Habe ich schon mal gemacht, hat ganz hervorragend funktioniert.
Und so nebenbei spart man noch viele Ports und meist auch viele Kabel 
auf denen eine PWM läuft...

MfG

Olof

von Olof G. (ole)


Lesenswert?

Moin und Nachtrag,

bei meinem Posting ging ich nat. davon aus, das ein µC eingesetzt wird.
Aber das haben die beiden Vorredner ja sicherlich auch.

MfG

von Leo (Gast)


Lesenswert?

Man nehme Scheiberegiester und einen PWM. Alle LED Kathoden an den PWM 
und die Annode an den entsprechenden Ausgang von dem Schieberegieester. 
Man schreibt ein Bit in das Schieberegister und schiebt es nach und nach 
durch. Die Entsprechende LED leuchtet und über PWM kann man dann die 
Helligkeit verändern. Dabei muss man dann nur schnell genug schieben, 
damit es nicht flimmert. Das wird dann so eine art Multiplexer-System.

siehe auch: Beitrag "Re: Verbesserung der AD Wandlung beim DSP TMS320F2812"

Gruß,
Leo

von Olof G. (ole)


Lesenswert?

Moin!

Danke Leo für die etwas ausführlichere Beschreibung ;)

Um das "Flimmern" zu unterdrücken kann man auch einen Schiebi mit 
"storage-Latch" einsetzen. Ich nehme da immer den 74hct4094.
Man schiebt die Daten durch und gibt dann einen kurzen High-Impuls auf 
STROBE und dann erst übernimmt er die Daten an den Ausgang.

MfG

von Falk B. (falk)


Lesenswert?

Siehe LED-Fading und Soft-PWM

MFG
Falk

von Uwe W. (dk1kq)


Lesenswert?

Hallo Bademeister und Mitleser,

danke für die vielen Antworten - klar habe ich Tutorials gelesen -
doch zwischen lesen und verstehen ist das so eine Sache.
Die angepeilte Lösung kann nur eine PWM Softwarelösung sein, damit jeder 
einzelne Pin eines Ports einen Fade- Cyclus durchläuft.

Ansatz (Atmega 8)
Ports A ; Port B; Port C auf Ausgang
Port A Pin 0 PWM Cylus durchlaufen - danach
Port A Pin 1 PWM Cylus durchlaufen - danach
.
.
.
Port B
..

Port C


Das wären dann die gewünschten 24 LED´s

Es hakt nun daran, den Soft PWM zu durchlaufen.

Anregung gesucht
mfg Uwe

von Uwe W. (dk1kq)


Lesenswert?

ups
sehe gerade, dass der Atmega 8 nicht genügend Ausgänge hat
dann muß ich wohl einen Atmega 16 verwenden ?
nach wie vor PWM Realisierung offen

Beispiel- programm gesucht

mfg
uwe

von Olof G. (ole)


Lesenswert?

Moin!

Aber auch das faden ginge leicht mit einem Schieberegister.

- erstes paket schieben (z.B. 100000000)
- einfaden (PWM-Wert per schleife von 0%-100% fahren)
- ausfaden
- Daten in schieberegister einen weiter schieben
- einfaden
- ausfaden
- .... etc


ANDERS wäre es wenn du ein Lauflicht haben möchtest, wo mehr als eine 
LED zur zeit leuchtet.

Alternativ, aber eig. unschön, kannst des auch mit dem RC-Glied machen.
Also einen rel. großen Kondensator, der sich beim setzen der LED auf ein 
über einen Widerstand langsam aufläd, also die LED langsam heller wird 
und nach dem abschalten die LED langsam dunkler.

Das hat aber min. zwei RIESEN probleme:

1. Die RC-Glieder müssten dann auf eine Schrittfrquenz hin getrimmt 
werden
2. LED´s haben keine lineare Spannung/Helligkeitskennlinie.


MfG

von Uwe W. (dk1kq)


Lesenswert?

Hallo Ole,

nein, eine Lösung mit RC- Glied ist mir zu "einfach und techn. überholt"

Ob man ein Schiebregister mit einem PWM - Signal takten kann - wäre 
einmal auszu probieren, theoretisch möglich - nicht in meiner 
Bastelkiste -

Ich strebe eine reine Softwarelösung an.
Die bisherige "funktionierende Lösung" war mit einem Atmega8 und 12 
LEDs.
Optisch sieht das so aus, wie - ja wie ein Mercedes Stern der sich 
dreht.
 ( Programmiert mit BASCOM und BASIC )
Jetzt soll das ganze verfeinert werden - mit 24 oder noch mehr .. LEDs
die wiederum einzeln ein und aus faden.

nachdem ich jetzt weiss- was ich will -
so suche ich - jetzt gezielt, wie man jeden einzelnen PIN eines Ports 
faden kann.

Über PWM bekommt man ja viel infos, jedoch so richtig "klick" hat es bei 
mir noch nicht gemacht --

Nach wie vor - Anregungen sind willkommen.

gruß
Uwe

von Uwe W. (dk1kq)


Lesenswert?

Hallo Mitleser,
das Projekt - funktioniert !

Danke für die vielen Anregungen!

keine weiteren Zuschriften erforderlich

Gruß Uwe

von STK500-Besitzer (Gast)


Lesenswert?

>keine weiteren Zuschriften erforderlich


Wie wäre es denn, wenn du das Projekt hier veröffentlichen würdest?!

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
Noch kein Account? Hier anmelden.