PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unregelmäßige werte für PWM



BastelWastel
19.02.2006, 06:37
hiho...
hatte mal im sinn über pwm ne led zu steuern die sich unregelmäßig zwischen ca.60-100% dimmen sollte wie ein leichtes flimmern (geschwindigkeit vllt. über adc?)
hat jemand vllt. nen denkanstoß für mich wie ich mit assembler solche werte für den pwm generieren kann?

lg BastelWastel

kalledom
19.02.2006, 14:47
Und gleich 8 mal: Flackerlicht, ein komplettes Programm für den PIC:
http://www.domnick-elektronik.de/picpwm.htm

stegr
19.02.2006, 14:53
Du brauchst Zufallswerte - das bekommste zum Beispiel mit nem Timer und einer Warteschleife hin, aber ich würde dir etwas mehr Hardware empfehlen: nimm eine Zenerdiode und betreibe diese bei einem zu niedrigen Strom - fertig ist dein Zufallsgenerator.

Alles weitere kommt immer auf deinen PWM-Takt und dadurch deine Auflösung an.

Nehmen wir mal an, dass du eine Auflösung von 8 Bit hast, dann wäre 1010000 ca. 60% und 11111111 wären 100%. Du musst also nur zwischen 60% und 100% umschalten, also: Portpin mit der Zenerdiode gesetzt -> 60%, sonst 100%.
Über ein Poti kannst du den Strom zur Zenerdiode regeln und damit auch die Zufallsverteilung, d.h. wie oft die LED im Mittel auf 60% sein soll.

Ansonsten kannst du natürlich auch einen Softwarezufallsgenerator bauen - Google liefert dir da die passenden Algorithmen, aber eine Zenerdiode find ich zumindest "stylischer" ;)

MfG
Stefan

BastelWastel
20.02.2006, 03:53
@kalle
haste sowas auch in 'anfängerfreundlich' :-k

@stegr
ich dachte eher an ein zufälliges faden, kein umschalten von 60 auf 100%

in der richtung..
start 100% --> zu zufallswert 75% dimmen --> zu 90% --> 65% usw

mein problem ist eigentlich nur wie ich nen zufälligen 8bit wert bekomme
ohne ne art rnd() funktion

stegr
20.02.2006, 07:06
@kalle
haste sowas auch in 'anfängerfreundlich' :-k

@stegr
ich dachte eher an ein zufälliges faden, kein umschalten von 60 auf 100%

in der richtung..
start 100% --> zu zufallswert 75% dimmen --> zu 90% --> 65% usw

kein Problem - erhöh oder erniedrige einfach den Wert, je nach Pinzustand, dann ist es ein Faden und kein Umschalten - hängt nur von der Schrittgröße ab...




mein problem ist eigentlich nur wie ich nen zufälligen 8bit wert bekomme
ohne ne art rnd() funktion

Die wirst du, wenn du es in Software machen willst, wohl schon brauchen - halt selber schreiben.

Beliebte Methode für Zufallswerte ist auch ein rückgekoppeltes Schieberegister.

MfG
Stefan

BastelWastel
21.02.2006, 01:43
naja...quasi schon halb im pennen wär mir noch die idee gekommen nen 555er auf nen eingang zu legen, im pic ständig ein byte zu inkrementieren und bei jeder positiven taktflanke des 555ers das byte auslesen
hatte nur leider keinen 555er da ^^