1.3 Analoges Schreiben

Überblick

Sie können die PWM-Welle mit analogWrite() auf den Pin schreiben. Diese Methode kann verwendet werden, um die Helligkeit der LED anzupassen, die Farbe von RGB zu ändern oder die Motordrehzahl usw. anzupassen. Hier nehmen wir LED als Beispiel, um die Gradientenhelligkeit der LED zu erhalten.

Erforderliche Komponenten

../_images/list_1.3.png

※ Pulsweitenmodulation

Pulsweitenmodulation oder PWM ist eine Technik, um mit digitalen Mitteln analoge Ergebnisse zu erzielen. Die digitale Steuerung wird verwendet, um eine Rechteckwelle zu erzeugen, ein Signal, das zwischen ein und aus geschaltet wird. Dieses Ein-Aus-Muster kann Spannungen zwischen vollständig ein (5 Volt) und aus (0 Volt) simulieren, indem der Anteil der Zeit, die das Signal einschaltet, gegenüber der Zeit, die das Signal ausschaltet, geändert wird. Die Dauer der „Einschaltzeit“ wird als Impulsbreite bezeichnet. Um unterschiedliche Analogwerte zu erhalten, ändern oder modulieren Sie diese Impulsbreite. Wenn Sie dieses Ein-Aus-Muster beispielsweise mit einer LED schnell genug wiederholen, ist das Ergebnis so, als ob das Signal eine konstante Spannung zwischen 0 und 5 V ist, die die Helligkeit der LED steuert.

Ein Aufruf von analogWrite() liegt auf einer Skala von 0 - 255, sodass analogWrite(255) ein Tastverhältnis von 100 % (immer eingeschaltet) anfordert und analogWrite(127) ein Tastverhältnis von 50 % (bei der Hälfte der Zeit) ist Beispiel.

../_images/image402.png

Fritzing-Schaltung

In diesem Beispiel verwenden wir den PWM-Pin 9, um die LED anzusteuern. Verbinden Sie ein Ende des Widerstands mit Pin 9. Verbinden Sie den langen Stift (Anode) der LED mit dem anderen Ende des Widerstands. Verbinden Sie den kurzen Stift (negativ, als Kathode bezeichnet) der LED mit GND.

Bemerkung

Die PWM-Pins der Mega2560-Platine sind 2 - 13, 44 - 46.

../_images/image30.png

Schematische Darstellung

../_images/image401.png

Code

Bemerkung

  • Sie können die Datei 1.3_analogWrite.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\1.3_analogWrite direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

Nachdem Sie den Code auf das Mega2560-Board hochgeladen haben, können Sie sehen, dass die LED allmählich heller wird und allmählich ausgeht.

Code-Analyse

Deklarieren Sie Pin 9 als ledPin.

int ledPin = 9;

analogWrite() in loop() weist ledPin einen analogen Wert (PWM-Welle) zwischen 0 und 255 zu, um die Helligkeit der LED zu ändern.

analogWrite(ledPin, value);

Mittels einer for-Schleife kann der Wert von analogWrite() schrittweise zwischen dem Minimalwert (0) und dem Maximalwert (255) verändert werden.

for (int value = 0 ; value <= 255; value += 5) {
    analogWrite(ledPin, value);
}

Um das experimentelle Phänomen deutlich zu sehen, muss dem for-Zyklus eine delay(30) hinzugefügt werden, um die Helligkeitsänderungszeit zu steuern.

void loop() {
for (int value = 0 ; value <= 255; value += 5) {
    analogWrite(ledPin, value);
    delay(30);
}
}

Phänomen Bild

../_images/image36.jpeg