analogWriteResolution()

[Zero, Due & MKR Ailesi]

Açıklama

analogWriteResolution() Arduino Due için bir Analog API uzantısıdır.

analogWriteResolution() fonksiyonu analogWrite() fonksiyonun çözünürlüğünü ayarlamak için kullanılır. AVR tabanlı kartlarda geriye dönük uyumluluk için varsayılan değer olarak 8 bit (0-255 arasındaki değerler) olarak ayarlanmıştır.

Due aşağıdaki donanım özelliklerine sahiptir.

  • AVR tabanlı kartlarda varsayılan olarak 8bit PWM olan 12 pin. Bunlar 12 bit çözünürlüğe değiştirilebilir.
  • 2 pin ile 12-bit DAC(Dijital Analog Dönüştürücü) ye sahiptir.

analogWrite() yazma çözünürlüğünü 12'ye ayarlayarak, tam DAC çözünürlüğünden yararlanmak veya sinyali kesilmeden PWM sinyalini ayarlamak için 0 ile 4095 arasındaki değerleri kullanabilirsiniz.

Zero aşağıdaki donanım özelliklerine sahiptir.

  • AVR tabanlı kartlarda varsayılan olarak 8bit PWM olan 10 pin. Bunlar 12 bit çözünürlüğe değiştirilebilir.
  • 1 pin ile 10-bit DAC(Dijital Analog Dönüştürücü) ye sahiptir.

analogWrite() yazma çözünürlüğünü 10'a ayarlayarak tam DAC çözünürlüğünden yararlanmak için 0 ile 1023 arasındaki değerleri kullanabilirsiniz.

MKR Aile kartları aşağıdaki donanım özelliklerine sahiptir.

  • AVR tabanlı kartlar gibi varsayılan olarak 8 bit PWM olan 4 pin. Bunlar 8 bit (varsayılan) çözünürlükten 12 bit çözünürlüğe değiştirilebilir.
  • 10-Bit DAC'li(Dijital Analog Dönüştürücü) ve 1 pine sahiptir.

Sözdizimi

analogWriteResolution(bit)

Parametreler

bits:analogWrite() fonksiyonunda kullanılan değerlerin çözünürlüğünü belirler(bit olarak). Değer 1 ile 32 arasında olabilir. Kartınızın donanım özelliklerinden daha yüksek veya daha düşük bir çözünürlük seçerseniz, kullanılan analogWrite() değeri çok yüksekse kesilir ya da çok düşükse sıfırla doldurulur. Ayrıntılar için aşağıdaki nota bakın.

Geri Dönüş

Yok

Örnek Kod

Kodu İnceleyerek daha iyi anlayabilirsiniz.

void setup() {
// open a serial connection
Serial.begin(9600);
// make our digital pin an output
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
                          
void loop() {
// read the input on A0 and map it to a PWM pin
// with an attached LED
int sensorVal = analogRead(A0);
Serial.print("Analog Read) : ");
Serial.print(sensorVal);
                          
// the default PWM resolution
analogWriteResolution(8);
analogWrite(11, map(sensorVal, 0, 1023, 0, 255));
Serial.print(" , 8-bit PWM value : ");
Serial.print(map(sensorVal, 0, 1023, 0, 255));
                          
// change the PWM resolution to 12 bits
// the full 12 bit resolution is only supported
// on the Due
analogWriteResolution(12);
analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
Serial.print(" , 12-bit PWM value : ");
Serial.print(map(sensorVal, 0, 1023, 0, 4095));
                          
// change the PWM resolution to 4 bits
analogWriteResolution(4);
analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
Serial.print(", 4-bit PWM value : ");
Serial.println(map(sensorVal, 0, 1023, 0, 15));
                          
delay(5);
}