Ich schaute auf meinen Arduino Uno und bemerkte dieses Symbol durch digitale Pins 11
, 10
, 9
, 6
, 5
, und 3
. Was bedeuten diese? Beeinflusst dies die Funktionsweise? Kann ich diese Stifte für bestimmte Situationen nicht verwenden?
Entspannen. Mach dir keine Sorgen. Diese Pins heißen PWM
und sind die gleichen wie die anderen Pins, außer dass sie einen „zusätzlichen Bonus“ haben.
Einige Verwendungen von Arduinos Website :
- Dimmen einer LED
- Simuliert einen analogen Ausgang. Der Ausgang schaltet immer noch digital von 0 V auf 5 V um. Allerdings Tiefpassfilter (Kondensator und Widerstand), um analoge Spannungen zu simulieren.
- Audiosignale erzeugen.
- Bereitstellung einer variablen Drehzahlregelung für Motoren.
- Generieren eines modulierten Signals, um beispielsweise eine Infrarot-LED für eine Fernbedienung anzusteuern.
Wie es funktioniert:
Die PWM-Pins werden von On-Chip-Timern gesteuert, die die Pins automatisch mit einer Rate von etwa 490 Hz umschalten. Die "Pulsweitenmodulation" (PWM) gibt an, wie lange der Pin für einen einzelnen Zyklus dieser Frequenz ein- oder ausgeschaltet bleibt. Dies kann eine LED dimmen, indem die Illusion entsteht, dass sie halb so hell ist wie zuvor, wo sie wirklich sehr schnell blinkt.
Bei einem Arbeitszyklus von 25 % ist es ein Viertel der Zeit eingeschaltet. Wenn Sie eine LED verwenden, erscheint sie etwa 1/4 so hell [Geben oder Nehmen]. (Hinweis: Wie einige Leute darauf hingewiesen haben, ist dies nicht wirklich proportional, aber lassen wir es der Einfachheit halber so. Bsp.: 25 % sind nicht immer 1/4 der Helligkeit.)
(Wenn Sie wirklich elektrisch versiert sind, könnten Sie wahrscheinlich einen Kondensator hinzufügen, um ihn auch zu einem analogen Ausgang zu machen.)
So verwenden Sie diese Pins zur Ausgabe:
Zuerst müssen Sie den Pin als Ausgang definieren. Dann verwenden Sie analogWrite(ledPin, 128);
, um es zu starten. Das ledPin
ist der PWM-Pin, mit dem Sie PWM starten möchten, und 128
sollte durch eine Zahl zwischen 0
und ersetzt 255
werden. 0
: 0% duty cycle
(schaltet den Pin komplett aus) und 255
: 100% duty cycle
. (schaltet den Stift vollständig ein)
Quelle: http://www.arduino-tutorials.com/arduino-pwm/
Warum kann ich das Licht in meinem Code nicht einfach ein- und ausschalten?:
Technisch geht das, allerdings gibt es einige Probleme:
Es wird nicht wirklich einen großen Unterschied machen, wenn der einzige Zweck des Arduino darin besteht, PWM-Signale zu erzeugen. Wenn Sie jedoch Verzögerungen von mehr als 50 MS in die Hauptschleife einfügen, wird das Timing durcheinander gebracht. Mit dem Software-Ansatz möchten Sie alle "Verzögerungs" -Funktionen eliminieren, da das Arduino nur auf einem Thread läuft (es kann nur eine Sache gleichzeitig tun). Wenn Sie wissen, was Sie tun, macht es keinen großen Unterschied, das Licht zu dimmen, aber wenn Sie einen zusätzlichen Pin mit PWM haben, verschwenden Sie nur Ihre Zeit mit einem Software-Ansatz.
Wie andere betont haben:
Sie benötigen immer noch einen Widerstand für Ihre Schaltungen, um Strom und Spannung zu begrenzen. Sie können dies nicht überspringen.
Ein weit verbreiteter Irrtum über die PWM-Pins ist, dass bei der Verwendung von PWM keine Strombegrenzungswiderstände (z. B. bei LEDs) erforderlich sind.
Das ist nicht wahr. Die PWM-Pins sollten als digitale Pins betrachtet werden, die automatisch ein- und ausgeschaltet werden. Dies bedeutet, dass sie auf die gleiche HOCH-Spannung gehen wie alle anderen Pins.
Bei Verwendung von LEDs mit PWM müssen Sie weiterhin Strombegrenzungswiderstände verwenden. Wenn Sie Motoren mit PWM verwenden, sollten Sie (fast immer) einen Transistor verwenden.
Benutzer3624
Schamtam
Chris Laplante