analogWrite()

[Analog I/O]

Açıklama

Bir pine bir analog değer (PWM dalgası) yazar. Bir LED'i değişen parlaklıklarda yakmak veya bir motoru çeşitli hızlarda sürmek için kullanılabilir. After a call to analogWrite(), the pin will generate a steady rectangular wave of the specified duty cycle until the next call to analogWrite() (or a call to digitalRead() or digitalWrite()) on the same pin.

KART PWM PİNLERİ PWM FREKANSI
Uno,Nano,Mini 3,5,6,9,10,11 490 Hz (pin5 ve 6 980 Hz)
Mega 2-13,44-46 490 Hz (pin 4 ve 13 980 Hz)
Leonardo,Mikro,Yún 3,5,6,9,10,11,13 490 Hz(pim 3 ve 11 980 Hz)
Uno WİFİ Rev2, Nano Every 3,5,6,9,10 976 Hz
MKR kartları* 0-8,10-A3,A4 732 Hz
MKR1000 WİFİ* 0-8,10,11,A3,A4 732 Hz
Zero* 3-13,A0,A1 732 Hz
Nano 33 Iot* 2,3,5,6,9-12,A2,A3,A5 732 Hz
Nano 33BLE/BLE Sense 1-73,A0-A7 500 Hz
Due** 2-13 1000 Hz
101 3,5,6,9 pin 3 ve 9 490 Hz, pin 5 ve 6 980 Hz

* In addition to PWM capabilities on the pins noted above, the MKR, Nano 33 IoT, and Zero boards have true analog output when using analogWrite() on the DAC0 (A0) pin.

** In addition to PWM capabilities on the pins noted above, the Due has true analog output when using analogWrite() on pins DAC0 and DAC1.

You do not need to call pinMode() to set the pin as an output before calling analogWrite(). The analogWrite function has nothing to do with the analog pins or the analogRead function.

Sözdizimi

analogWrite(pin,value)

Parametre

pin:Yazılacak Arduino pini. İzin verilen veri türleri:int.

value:Görev döngüsü 0(herzaman kapalı) ve 255(herzaman açık) arasındadır. İizn verilen veri türleri:int.

Geri Dönüş

Yok

Örnek Kod

Potansiyometreden okunan çıkış değeri ile orantılı olarak çıkışı LED'e ayarlar


int ledPin = 9;      // Led bağlantısı dijital pin 9'a yapıldı
int analogPin = 3;   // potansiyometre bağlantısı analog pin 3'e yapıldı
int val = 0;         // okunan değeri kullanmak için saklanılan değişken 
                        
void setup() {
    pinMode(ledPin, OUTPUT);  // çıkış pini ayarlandı
}
                        
void loop() {
    val = analogRead(analogPin);  // giriş pinini okudu
    analogWrite(ledPin, val / 4); // analogRead değeri 0 dan 123'e analogWrite değeri 0 dan 255'e ayarlandı
}
                    

Notlar ve Uyarılar

Pim 5 ve 6'da oluşturulan PWM çıkışları, beklenenden daha yüksek görev döngülerine sahip olacaktır. Bunun nedeni, bu PWM çıkışlarını oluşturmak için kullanılan aynı dahili zamanlayıcıyı paylaşan millis()ve delay()işlevleriyle olan etkileşimlerdir . Bu, çoğunlukla düşük görev döngüsü ayarlarında (örn. 0 - 10) fark edilir ve 0 değerinin pim 5 ve 6'daki çıkışı tamamen kapatmamasına neden olabilir.