analogWrite()



Açıklama

Raptiye analog bir değer ( PWM dalgası ) yazar. Bir LED'i farklı parlaklıklarda yakmak veya çeşitli hızlarda bir motor sürmek için kullanılabilir. analogWrite() çağrısından sonra, pim aynı pim üzerinde bir sonraki analogWrite() çağrısına (veya digitalRead() veya digitalWrite() çağrısına kadar belirtilen görev döngüsünde sabit bir dikdörtgen dalga oluşturur.

Yazı tahtası PWM Pimleri PWM Frekansı

Uno, Nano, Mini

3, 5, 6, 9, 10, 11

490 Hz (pim 5 ve 6: 980 Hz)

Mega

2-13, 44-46

490 Hz (pimler 4 ve 13: 980 Hz)

Leonardo, Mikro, Yún

3, 5, 6, 9, 10, 11, 13

490 Hz (pimler 3 ve 11: 980 Hz)

Uno WiFi Rev.2

3, 5, 6, 9, 10

976 Hz

MKR panoları *

0-8, 10, A3 (18), A4 (19)

732 Hz

MKR1000 WiFi *

0-8, 10, 11, A3 (18), A4 (19)

732 Hz

Sıfır *

3-13, A0 (14), A1 (15)

732 Hz

Teslim Tarihi **

2-13

1000 Hz

101

3, 5, 6, 9

pim 3 ve 9: 490 Hz, pim 5 ve 6: 980 Hz

* Yukarıda belirtilen pimlerdeki PWM özelliklerine ek olarak, DAC0 ( A0 ) piminde analogWrite() kullanılırken MKR ve Zero kartlar gerçek analog çıkışa sahiptir.
** Yukarıda belirtilen pinlerdeki PWM özelliklerine ek olarak, Due, DAC0 ve DAC1 pinlerinde DAC0 analogWrite() kullanılırken gerçek analog çıkışa sahiptir.

Sen buna gerek yok pinMode() çağırmadan önce bir çıkış olarak pimini ayarlamak için analogWrite() .
analogWrite işlevinin analog pimler veya analogRead işleviyle analogRead .

Sözdizimi

analogWrite(pin, value)

Parametreler

pin : yazılacak Arduino pin. İzin verilen veri türleri: int .
value : görev döngüsü: 0 (daima kapalı) ile 255 (daima açık) arasında. İzin verilen veri türleri: int .

İadeler

Hiçbir şey değil

Örnek Kod

Potansiyometreden okunan değerle orantılı olarak LED çıkışını ayarlar.

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value

void setup() {
  pinMode(ledPin, OUTPUT);  // sets the pin as output
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}

Notlar ve Uyarılar

Pim 5 ve 6'da üretilen 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 dahili zamanlayıcıyı paylaşan millis() ve delay() işlevleriyle etkileşimlerdir. Bu çoğunlukla düşük görev döngüsü ayarlarında (örn. 0 - 10) fark edilir ve 0 değerinin 5 ve 6 numaralı pinlerdeki çıkışı tamamen kapatmamasına neden olabilir.

Ayrıca Bakınız

DEFINITION PWM

Örnek Blink