Die Überschrift beschreibt es eigentlich ziemlich gut.
Welche Möglichkeiten hab ich, alle Pins beim arduino uno R3 ganz normal mit PWM zu verwenden?
Die Überschrift beschreibt es eigentlich ziemlich gut.
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.
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