mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Software PWM


Autor: Jan (Gast)
Datum:

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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Ich bin NICHT der Jan, der etwa zwei Minuten vor mir gepostet hat
:-)

Autor: Jan (Gast)
Datum:

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

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jan :-)

Danke für deine Antwort. Das bestätigt etwa das, was ich selbst auch
gedacht habe. Dann werde ich das so angehen! Prima!

Vielen Dank!
(der andere) Jan

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie erzeugst du eine Zufallszahl ohne Uhr und ohne weitere Hilfsmittel?

Autor: Jan (Gast)
Datum:

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

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie langen die Birnen das Geflacker denn mit? Wie lange stellst Du die
PWM auf "on" ?

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Jan, der andere)


Bitte was?
Die PWM steht immer so lange auf on, je nach dem, wie lange die
Glühbirne eben an sein soll, um die gewünschte Helligkeit zu erzeugen.

Autor: Unbekannter (Gast)
Datum:

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

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die frage sit halt wie zufällig der Zufall sein muss ;)

Autor: Hannes Lux (hannes)
Datum:

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

...

Autor: Unbekannter (Gast)
Datum:

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

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.