Wie viele PWM bei ATmega328p

OP #4415276
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich hab einen Arduino ATmega 328p und möchte damit eine RGB LED 
ansteuern.

Dazu benötige ich 3 PWM die jeweils mit einem Potentiometer verstellt 
werden sollen, um jede Farbe darstellen zu können.

Der ATmega328p hat zwar einige PWM Ausgänge jedoch können nicht alle 
gemeinsam genutzt werden.

Wie viele PWM kann ich gleichzeitig ansteuern?



Hoffe auf schnelle Antwort.

MFG Michael
Gast #4416007
Lesenswert?
• ▲
▼
Michael S. schrieb:

> Der ATmega328p hat zwar einige PWM Ausgänge jedoch können nicht alle
> gemeinsam genutzt werden.

Nunja, das kommt allein auf die Randbedingungen an. Im Extremfall können 
wirklich alle gleichzeitig benutzt werden, d.h.: du hast dann insgesamt 
6 PWM-Kanäle, also ausreichend für sogar zwei RGB-LEDs.

Allerdings verringert natürlich jede Timernutzung für einen Zweck die 
Freiheitsgrade, die für die Benutzung der Timer für andere Zwecke zur 
Verfügung stehen.

Es ist einfach eine Frage der Abwägung, was sinnvoller ist. Für die 
Ansteuerung irgendwelcher dümmlichen LEDs wird es aber i.A. sinnvoller 
sein, das in Software abzuhandeln und die wertvollen Timer für die 
wirklich zeitkritischen Aufgaben zu reservieren...
Gast #4416023
Lesenswert?
• ▲
▼
So, hier noch ein paar Details zu den PWM Pins und deren zugeordneten 
Timer.

Pin 5 und 6: Timer0 (PWM Frequenz: 62500 Hz)
Pin 9 und 10: Timer1 (PWM Frequenz: 31250 Hz)
Pin 11 und 3: Timer2 (PWM Frequenz: 31250 Hz)

Deine Beschaltung sollte, wenn möglich, nur zwei Timer in Anspruch 
nehmen. Am Besten Timer1 und Timer2.
Gast #4416070
Lesenswert?
• ▲
▼
Ingo L. schrieb:
> Der Controller is n Mega328,
N'türlich!


Bitte lesen:
> Notes and Known Issues
in: https://www.arduino.cc/en/Reference/AnalogWrite

Die tieferen Gründe wirst du dir aus dem Arduino Core selbst raus suchen 
dürfen.

Mir reicht es, das als gegeben hin zu nehmen. Wenn ich Timer0 selber 
brauche, verzichte ich auf das millis() und delay() Gedöns. Dann wird 
auch die PWM sauber laufen (ungetestet). Das Register Gefummel ist aber 
vermutlich nix für den typischen Arduino Fan.
#4416090
Lesenswert?
• ▲
▼
Hier stehts doch klar:
The PWM outputs generated on pins 5 and 6 will have higher-than-expected 
duty cycles. This is because of interactions with the millis() and 
delay() functions, which share the same internal timer used to generate 
those PWM outputs. This will be noticed mostly on low duty-cycle 
settings (e.g 0 - 10) and may result in a value of 0 not fully turning 
off the output on pins 5 and 6

Wieder ein Grund dieses Zeuch nicht zu nutzen... Aber für Anfänger als 
Einstieg sicher gut, will das Ding auch nicht schlecht machen ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren