www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM in einem Lauflicht


Autor: Uwe Wensauer (dk1kq)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SoftPWM

Autor: Daniel D. (bademeister)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Olof Gutowski (ole)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olof Gutowski (ole)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Leo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olof Gutowski (ole)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe LED-Fading und Soft-PWM

MFG
Falk

Autor: Uwe Wensauer (dk1kq)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Wensauer (dk1kq)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olof Gutowski (ole)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Wensauer (dk1kq)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Wensauer (dk1kq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mitleser,
das Projekt - funktioniert !

Danke für die vielen Anregungen!

keine weiteren Zuschriften erforderlich

Gruß Uwe

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>keine weiteren Zuschriften erforderlich


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

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.