Hallo,
wo liget der Unterschied zwischen der Anweisung
analogWrite()
und beispielsweise setPwmFrequency()
Mit beiden generiere ich ein PWM Signal?
Habe mir zwar diese Seite angeschaut, aber dies bringt mich nicht weiter. http://playground.arduino.cc/Code/PwmFrequency.
Unterschiedliche Pins generieren unterschiedene PWM Frequenzen. Heißt das, dass der Motor auch unterschiedliche Geschwindigkeit haben wird, abhängig vom Pin, an den er angeschlossen wird?
Generiert ein Pin ein PWM Signal oder der Timer ?
Die Standardfrequenz der Arduino-PWM beträgt etwa 490 Hz. Diese Frequenz bleibt konstant, auch wenn man analogWrite() ausführt, hier ändert sich nämlich nur das Verhältnis Einschaltzeit zu Ausschaltzeit.
Bei setPwmFrequency() wird jedoch die Frequenz geändert. Das sind zwei ganz unterschiedliche Dinge.
Das eine ist die Frequenz. Das andere ist das Tastverhältnis. Das sind zwei verschiedene Sachen. Die Frequenz ist der Kehrwert der Zeit zwischen zwei gleichen Flanken. Das Tastverhältnis ist das Verhältnis von Low- und High-Zeit innerhalb dieser Zeit.
Eine höhere PWM-Frequenz hat z.B. den Vorteil, das man sie ab ca. 20kHz nicht mehr hört. Das hat aber nichts mit der Geschwindigkeit zu tun.
Das PWM-Signal wird von Timern generiert, die jeweils fest mit 2-3 Pins verbunden sind, so dass diese direkt in Hardware geschaltet werden können. Die Timer haben z.T. unterschiedliche Frequenzteiler-Einstellungen. Daher die unterschiedlichen Frequenzen.