Arduino uno alle Pins von 0-13 als PWM nutzbar?

Die Überschrift beschreibt es eigentlich ziemlich gut. :slight_smile:

Welche Möglichkeiten hab ich, alle Pins beim arduino uno R3 ganz normal mit PWM zu verwenden?

Normal gehen nur die PWM-Pins 3, 5, 6, 9, 10, 11. Du könntest höchstens versuchen, so was wie PWM auf den anderen Pins zu simulieren. Der Leonardo hätte 7 statt 6 PWM-Pins und der Mega hat immerhin 15.

Blight:
Welche Möglichkeiten hab ich, alle Pins beim arduino uno R3 ganz normal mit PWM zu verwenden?

Ich kenne nur:
Hardware-PWM ==> Die Hardware wird so eingestellt, dass sie selbst PWM taktet
Software-PWM ==> Dein Programm taktet Pins auf HIGH und LOW

Hardware-PWM kannst Du an den Hardware-PWM Pins machen. Und nur an diesen.

An allen anderen Pins kannst Du nur Software-PWM machen: Also per Software gesteuert durch das Programm die Pins im gewünschten Takt HIGH und LOW setzen.

"ganz normal" = analogWrite
geht nur bei den PWM - Pins.

SoftPWM

Wenn du dein eigenes "Soft-PWM" machen willst, einfach alle 20 (!) Pins schnell und mehr oder weniger lang ein/ausschalten.
Das würde ich allerdings per direkter Port - Ansteuerung machen, statt über digitalWrite, und auch wenn möglich mehrere Pins eines Ports gleichzeitig...
Ob du die übliche 256 Stufen-Auflösung bei einigermassen PWM-Frequenz hinkriegst, weiss ich nicht.
Obige Library verwendet dazu Timer2.

hi,

eine möglichkeit wäre auch ShiftPWM
http://www.elcojacobs.com/shiftpwm
da kannst Du mit 3 pins des uno und shiftregistern um ein paar cent bis zu 48 PWM-kamäle nachbilden. funktioniert super, auf der webseite kannst Du auch die belastung des uno errechnen.

gruß stefan

Noch dazu zu sagen ist daß die 6 PWM-Ausgänge alle 3 Timer benutzen und unter Umständen mit anderen Fuktionen die die Timer benutzen nicht zusammenarbeiten. das heißt daß einige Bibiotheken die PWM Ausgänge blockieren.
Grüße Uwe