Unter allen Arduino-Boards ist das Uno die erste Wahl für die meisten Leute, und das aus gutem Grund. Es ist die perfekte Plattform, um mit Arduino zu beginnen , es ist leistungsfähig genug, um ein breites Spektrum an Aufgaben zu bewältigen, und es ist recht tragbar, da es nur 25 Gramm, 68,6 mm lang und 53,4 mm breit ist . Obwohl es sich um eine großartige Plattform handelt, weist das Uno dennoch einige Einschränkungen auf, die Sie beachten müssen. Es gibt das Problem des kleinen Flash-Speichers (nur 32 KB ), sodass Sie ihn nicht für Projekte mit großen und langen Codes verwenden können. Der Uno verfügt außerdem über eine begrenzte Anzahl von Pins, was die Arbeit erschwert, wenn das Projekt viele Ein- und Ausgangskomponenten erfordert.
In diesen beiden Bereichen glänzt der Arduino Mega jedoch. Es ist mit 256 KB Flash-Speicher und über 50 Pins ausgestattet und eignet sich perfekt für die Verwaltung größerer und anspruchsvollerer Projekte mit mehreren Komponenten. Im Vergleich zum Uno verfügt der Mega außerdem über 15 PWM Pins, was für die Steuerung elektronischer Komponenten in verschiedenen Anwendungen praktisch ist. Aber was genau sind diese PWM Pins und wie verwendet man sie?
Was sind PWM Pins?
Bei den PWM Pins des Arduino Mega handelt es sich um digitale Ausgangspins, die sich auf D2 bis D13 und D44 bis D46 befinden, also insgesamt 15. Während sie als normale digitale Pins fungieren, die eine Komponente entweder vollständig ein- oder vollständig ausschalten können, können sie auch verwendet werden um simulierte Analogwerte durch eine Technik namens Pulsweitenmodulation (PWM) zu erzeugen. Das bedeutet, dass diese Pins statt der üblichen 100 % oder 0 unterschiedliche Ausgangsspannungen an eine Komponente senden können (z. B. 25 %, 75 %, 33 %). Dieser variable Ausgang wird durch die Verwendung einer Rechteckwelle erreicht, die die Dauer vorgibt Das digitale Signal bleibt im Ein- und Aus-Zustand. Die Einschaltdauer, auch Impulsbreite genannt, wird über den Code moduliert (also geändert), sodass Sie den an Ihre Komponenten gesendeten Wert steuern können.
PWM Pins funktionieren auf allen Arduino-Boards auf die gleiche Weise, Sie müssen sich also nicht die Mühe machen, ein Mega zu kaufen, wenn Sie bereits ein Board haben, das PWM unterstützt. Beim Uno, Nano und Mini befinden sich die PWM Pins auf D3, D5, D6, D9, D10 und D11. Beim Giga und Due sind sie auf D2 bis D13. Einige Boards wie MKR1000 WiFi, Zero und Nano 33 BLE Sense verfügen zusätzlich zu den typischen digitalen Pins auch über PWM-Unterstützung an einigen ihrer analogen Pins. Um zu erfahren, welche Pins über eine PWM-Funktionalität verfügen, sehen Sie sich die auf Ihrem Board aufgedruckten Etiketten an. PWM Pins sind normalerweise mit einem Tilde-Symbol (~) oder einfach einer „PWM“-Beschriftung neben der Pin-Nummer gekennzeichnet. Wenn Ihr Board keine gedruckten Etiketten hat, sehen Sie sich die Dokumentation zum Pinbelegungsdiagramm an (auf der Arduino Store-Seite des Boards). Die PWM Pins im Diagramm haben das gleiche Tildezeichen vor den Pin-Nummern.
So verwenden Sie PWM Pins
PWM Pins werden im Allgemeinen zur Steuerung von Ausgabegeräten in Arduino-Projekten verwendet . Um einen PWM-Wert an einen PWM-fähigen Pin wie den D9 des Mega zu senden, ist die Verwendung der Funktion analogWrite() der einfachste und gebräuchlichste Weg. Diese Funktion übernimmt die Pin-Nummer und einen beliebigen Wert zwischen 0 und 255. Um beispielsweise einen an D11 angeschlossenen Motor auf nur 25 % Geschwindigkeit einzustellen, sollte die Funktion als analogWrite(11, 64) geschrieben werden , wobei 11 die Pin-Nummer ist und 64, der Wert, ist ein Viertel von 255. Damit behält der Motor eine Geschwindigkeit von 25 % bei, bis Sie eine weitere analogWrite()-Funktion mit einem anderen Wert senden oder digitalWrite() oder digitalRead() an Pin D11 aufrufen.
In den meisten Codes mit der Funktion analogWrite() wird der Wert jedoch normalerweise nicht als feste Zahl geschrieben. Stattdessen wird es regelmäßig auf zwei Arten geändert. Einer verwendet einen analogen Eingang wie ein Potentiometer. In diesem Fall ist der Wert von analogWrite() abhängig vom aus dem Eingang gelesenen Wert. Dieser analoge Eingangswert reicht jedoch von 0 bis 1023 und muss für analogWrite() in einen akzeptablen Wert umgewandelt werden. Dies geschieht durch einfaches Teilen des Eingabewerts durch vier, wie in diesem einfachen Beispielcode gezeigt, oder durch Verwendung der Funktion „map()“, wie Sie in dieser Beispielskizze „Analog In, Out Serial“ sehen können Antimalware Service Executable.
Die zweite Möglichkeit, Ihren analogWrite()-Wert regelmäßig zu ändern, ist die for-Schleife. Dafür ist kein analoger Eingang erforderlich und die PWM-Änderung erfolgt per Code. Bei der for-Schleife beginnen Sie mit einem Anfangswert und erhöhen/verringern ihn dann um eine bestimmte Zahl, beispielsweise drei oder zehn. Die for-Schleife durchläuft dann alle Zahlen von dieser Anfangszahl bis zum von Ihnen festgelegten Maximalwert.