PWM Signal generieren und auslesen

PWM Signal generieren und auslesen.

Heute möchte ich einen kleinen Beitrag über das Erzeugen und Auslesen von PWM Signalen bringen.
Zumindest die, die nun diesen Beitrag lesen, haben sich schon Gedanken gemacht wie man ein PWM Signal ausgibt, einliest und wofür man das Ganze überhaupt nutzen kann.

Das Ergebnis am Ende des Beitrages wird ein Frequenz Generator, ein zwei Kanal Frequenz Leser und ein Heartbeat für eine LED in zwei Versionen sein.

Wir beginnen mal damit was ein PWM (Pulsweitenmodulation) Signal überhaupt ist.
Diese Frage kann man nun wie in Wikipedia beantworten oder so das es jeder Versteht.

Ein PWM Signal ist nichts anderes wie, Spannung HOCH (HIGH) und NIEDRIG (LOW), das Zeit gesteuert.
Man könnte z.B. sagen :“HIGH = 10V, LOW = 3V“.  Wir benutzen im weitern Verlauf die Begriffe HIGH und LOW.

PWM Signal generieren und auslesen

In dem nebenstehenden Bild habe ich mal einige Gedanken die mir zu diesem Thema eingefallen sind, aufgezeichnet, zusätzlich soll es weitere Erklärungen bildlich ergänzen.

Bevor wir nun sofort in die Vollen gehen und ein Programm raushauen, klären wir kurz was Hertz (Hz), die Prozentangaben, t1, T und mit den Zeitangaben auf sich hat.

HERTZ
Ein Hertz (Hz) ist einmal HIGH und einmal LOW pro Sekunde.
8 Hz ist 8 mal HIGH und 8 mal LOW pro Sekunde.

Was zum Teufel… 0,5Hz ? 🙄 
…einmal HIGH und einmal LOW in 2 Sekunden.

Dabei ist es völlig egal wann es innerhalb der Sekunde HIGH oder LOW war und es ist egal wie lange es HIGH oder LOW war.
Acht mal HIGH und 8 mal LOW in einer Sekunde, sind 8 Hz.

Hz ist eine Einheit der Frequenz, jeder kennt das ;“Stell mal auf 88,9MHz, auf dieser Frequenz sendet Radiosender xyz“.

Was der Herr Hertz noch so gemacht hat kann man bei Wiki nachlesen.

Tastgrad (t1, T)
Oben im Bild die 1 Hz und unten im Bild die 8 Hz haben z.B. einen Tastgrad von 50%, wie komm ich darauf ?
Die Rechnung an sich ist ultra einfach, gehen wir von den 1 Hz im Bild aus.
T = 100%, t1 = 50% ergibt : t1 / T = 0,5 = 50%

Machen wir das selbe mal für die 8 Hz unten im Bild, da ist die LOW Zeit genauso lang wie die HIGH Zeit, jeweils 62,5 Millisekunden.
Wir rechnen also die LOW Zeit + HIGH Zeit, T wäre demnach 125 ms, soweit so gut.
Daraus ergibt sich : t1 / T = 62,5 / 125 = 0,5 = 50 %.

Wie ich überhaupt auf die 62,5 ms gekommen bin ?
Wir haben bei 8 Hz, 8 x HIGH und 8 x LOW = 16.
Da ich das Bild gezeichnet habe weis ich das die LOW Zeit der HIGH Zeit entspricht, also können wir in diesem Fall einfach rechnen : 1000 ms / 16 = 62,5 ms.

Auf der nächsten Seite erstellen wir ein Programm mit dem wir eine PWM Signal erzeugen.

Das könnte dich auch interessieren …

Eine Antwort

  1. klaus sagt:

    Moin.

    Komme mit dieser Zeile aus Frequenzgenerator nicht klar:

    pwmWrite(frequencyOutputPin, width * 2.55f);

    2.55f?? Was bedeutet das‘ f ‚??

    Vielen Dank

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert