Software PWM

Gast #232473
Lesenswert?
• ▲
▼
Hallo!

Es sollen 5 Glühbirnen (12 V, wenige Watt) per Controller zum Flackern
gebracht werden. Ich bräuchte also mindestens 5 PWM Kanäle. Da ich noch
einen Mega8 hier habe (dieser hat nur 3 Hardware PWM) habe ich mich
gefragt, ob ich das nicht auch per Software PWM lösen kann.

Ich würde hierzu einen Timer initialisieren, eine Variable aufzählen
und jedes mal mit den 5 PWM Werten der Lampen überprüfen und den Pin
entsprechen an und abschalten. Eine Aufläsung von 8 Bit pro Kanal ist
vollkommen ausreichend. Ich frage mich nun, ob der das mit dem
Controller möglich ist (von der CPU Belastung her, m.E. durchaus) und
mit welcher Frequenz der Timer in etwa aufgerufen werden sollte, damit
ich eine saubere PWM erhalte.

Das Flackern will ich mit Pseudozufallszahlen realisieren, die Lampen
sollen über Mosfets (IRLU2905) angesteuert werden.

Vielen Dank für Eure Zeit!
Liebe Grüße Jan
Gast #232475
Lesenswert?
• ▲
▼
(der von vor zwei Minuten)
Wenn du Glühbirnen verwendest, dürften 100-200 Hz für die PWM
ausreichend sein. Der Timer muss dann mit dem 256fachen aufgerufen
werden, also etwa alle 40µs.
Läuft der Controller bei 4Mhz bräuchte das etwa 30% der
Rechenkapazität. Die restliche Zeit reicht also locker aus, um die
Zufallszahlen zu erzeugen.
Gast #232478
Lesenswert?
• ▲
▼
Ich erzeuge KEINE Zufallszahl, sondern nur eine Pseudozufallszahl. Diese
ist zwar innerhalb eines Programmablaufes "zufällig", wiederholt sich
aber immer wieder, sobal der Controller resettet wird. Das ganze wird
einfach über die Laufzeit gemacht. Bei Codevision gibt es eine
entsprechende Funktion.

Bei mir ist es egal, ob die Kerze nach dem Anschalten immer gleich
flackert, da das überhaupt nicht auffällt.
Gast #232481
Lesenswert?
• ▲
▼
@Simon Küppers:

Auch mit einer Uhr kannst Du keine vernüftigen Pseudo-Zufallszahlen
erzeugen.

Eine Uhr ist absolut deterministisch. Überlege mal: Angenommen, Du
weißt, dass ein Programm vor ca. einer Stunde gestartet wurde. Wenn die
Uhr nur Sekundenauflösung hat, hast Du pro Stunde nur 3.600 mögliche
Startwerte für den Pseudozufallsgenenerator.

Um echte Zufallszahlen zu erzeugen, brauchst Du externe Entropie. Und
selbst dann musst Du höllisch aufpassen, dass Du wirklich Entropie hast,
und nicht nur glaubst, Du hättest Entropie.

Entropie bekommst Du z.B. aus den Zugriffszeiten einer Festplatte, da
die Umdrehungsgeschwindigkeit des Plattenstapels immer etwas schwankt,
oder auch teilweise aus dem Rauschen der Audio-Eingänge und auch aus
Tastaturdrücken bekommt man ein bis zwei Bit Entropie pro Tastendruck
oder teilweise unter bestimmten Bedingungen auch aus den Laufzeiten
einer Datenübertragung durchs Internet usw.
#232483
Lesenswert?
• ▲
▼
Hagen Jakubaschk hat sich mal eine Schaltung zum Flackern patentieren
lassen, bei der das Rauschen eines Transistors zum Zünden eines
Thyristors genutzt wurde. Dies hat einige Beleuchter an Theatern
arbeitslos gemacht, da man zur Immitation von Feuer nicht mehr mit dem
Lappenwedel vor den Scheinwerfern herumfuchteln musste.

Die Episode und die Schaltung kann in einem seiner zahlreichen Bücher
(vom DMV) nachgelesen werden.

...
Gast #232484
Lesenswert?
• ▲
▼
Für diese Anwendung reicht offensichtlich ein völlig einfacher
Pseudu-Zufallsgenerator. Am einfachsten sind dafür meiner Meinung nach
die Rpckgekoppelten Shift-Register geeignet. Die sind schnell
programmiert, und man kann die Perdiode der Zufallssequenz beliebig
wählen. Von vier Bits bis 2^64 oder noch mehr...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.