analogWrite()
Beschreibung
Schreibt einen Analogwert (PWM-Welle) auf einen Pin. Kann z.B. benutzt werden, um eine LED mit verschiedener Helligkeit leuchten zu lassen oder einen Motor mit unterschiedlicher Geschwindigkeit laufen zu lassen. Nach Aufruf von analogWrite() generiert die Funktion eine stetige Rechteckwelle mit angegebenem Zyklus, bis der nächste Aufruf von analogWrite() (oder digitalRead() oder digitalWrite()) auf dem gleichen Pin erfolgt.
Board | PWM-Pins | PWM-Frequenz |
---|---|---|
Uno, Nano, Mini | 3, 5, 6, 9, 10, 11 | 490 Hz (Pins 5 und 6: 980 Hz) |
Mega | 2 - 13, 44 - 46 | 490 Hz (Pins 4 und 13: 980 Hz) |
Leonardo, Micro, Yún | 3, 5, 6, 9, 10, 11, 13 | 490 Hz (Pins 3 und 11: 980 Hz) |
Uno WiFi Rev.2, Nano Every | 3, 5, 6, 9, 10 | 976 Hz |
MKR boards [1] | 0 - 8, 10, A3 (18), A4 (19) | 732 Hz |
MKR1000 WiFi [1] | 0 - 8, 10, 11, A3 (18), A4 (19) | 732 Hz |
Zero [1] | 3 - 13, A0 (14), A1 (15) | 732 Hz |
Nano 33 IoT [1] | 2, 3, 5, 6, 9 - 12, A2, A3, A5 | 732 Hz |
Nano 33 BLE/BLE Sense | 1 - 13, A0 - A7 | 500 Hz |
Due [2] | 2-13 | 1000 Hz |
101 | 3, 5, 6, 9 | Pins 3 und 9: 490 Hz, Pins 5 und 6: 980 Hz |
- [1]: Zusätzlich zu den oben erwähnten PWM-Funktionen für die Pins verfügen die MKR- und Zero-Boards über einen echten Analogausgang, wenn analogWrite() auf dem DAC0 (A0)-Pin benutzt wird.
- [2]: Zusätzlich zu den oben erwähnten PWM-Funktionen für die Pins verfügt das Due-Board über einen echten Analogausgang, wenn analogWrite() auf den DAC0 und DAC1-Pins benutzt wird.
Du musst einen Pin nicht explizit als Ausgabepin über pinMode() festlegen, bevor du analogWrite() nutzt. Die analogWrite()-Funktion hat nichts mit analogen Pins oder der analogRead-Funktion zu tun.
Syntax
analogWrite(pin, value)
Parameter
- pin: Der Arduino-Pin auf den geschrieben werden soll. Erlaubte Datentypen: int.
- value: Die Zykluszeit. Werte zwischen 0 (immer aus) und 255 (immer an). Erlaubte Datentypen: int.
Rückgabewert
Nichts.
Beispielcode
Setzt die Ausgabe auf dem LED-Pin proportional zu dem Wert, der von einem Potentiometer gelesen wird.
Hardware Required
Wiring Diagram
This image is created using Fritzing. Click to enlarge image
Arduino Code
For more detailed instruction, see Arduino - Potentiometer fade LED
※ Anmerkungen und Warnungen:
- Die PWM-Ausgaben auf Pins 5 und 6 werden höhere Zyklen als erwartet haben. Dies passiert, weil die Funktionen millis() und delay() den gleichen internen Timer nutzen, um diese PWM-Ausgaben zu generieren. In kleinen Zyklen (z.B. 0 bis 10) ist der Effekt am stärksten und kann dazu führen, dass der Wert 0 die Spannung auf Pin 5 und 6 nicht komplett wegnimmt, d.h. dass z.B. bei Wert 0 die LED trotzdem leuchtet.
- The analogRead() and analogWrite() functions do NOT read and write the same thing. analogRead() function reads the analog value which is converted from the voltage. analogWrite() function writes PWM signal. If you use the analogWrite() function first, and then use analogRead() function to read the value on the same pin, the read value is diferent from the wrote value. In other word, analogRead() function uses ADC (Analog to Digital) converter, but analogWrite() function does NOT use DAC (Digital to Analog) converter.
- The analog input pins can be used as digital pins, referred to as A0, A1, etc. The exception is the Arduino Nano, Pro Mini, and Mini's A6 and A7 pins, which can only be used as analog inputs.
Siehe Auch
- Sprache : analogRead()
- Sprache : analogReference()
- Sprache : analogWriteResolution()
- Beispiel : Arduino - Fade LED
- Beispiel : Arduino - Servo Motor
- Beispiel : Blinken
- Definition : PWM
※ ARDUINO KAUFEMPFEHLUNG
Arduino UNO R3 | |
Arduino Starter Kit |