analogWriteResolution()



Açıklama

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

analogWriteResolution() , analogWrite() işlevinin çözünürlüğünü ayarlar. AVR tabanlı kartlarla geriye dönük uyumluluk için varsayılan olarak 8 bittir (0-255 arasındaki değerler).

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

  • AVR tabanlı kartlar gibi varsayılan olarak 8 bit PWM olan 12 pim. Bunlar 12 bit çözünürlüğe değiştirilebilir.

  • 12 bit DAC (Dijital-Analog Dönüştürücü) ile 2 pim

Yazma çözünürlüğünü 12 olarak ayarlayarak, tam DAC çözünürlüğünden yararlanmak veya PWM sinyalini devrilmeden ayarlamak için 0 ile 4095 arasındaki değerlere sahip analogWrite() kullanabilirsiniz.

Sıfır , aşağıdaki donanım özelliklerine sahiptir:

  • AVR tabanlı kartlar gibi varsayılan olarak 8 bit PWM olan 10 pin. Bunlar 12 bit çözünürlüğe değiştirilebilir.

  • 1 bit, 10 bit DAC (Dijital-Analog Dönüştürücü).

Yazma çözünürlüğünü 10 olarak ayarlayarak, tam DAC çözünürlüğünden yararlanmak için 0 ile 1023 arasındaki değerlerle analogWrite() kullanabilirsiniz.

MKR kart ailesi aşağıdaki donanım özelliklerine sahiptir:

  • AVR tabanlı kartlar gibi varsayılan olarak 8 bit PWM olan 4 pim. Bunlar 8 (varsayılan) ila 12 bit çözünürlük arasında değiştirilebilir.

  • 1 bit, 10 bit DAC (Dijital-Analog Dönüştürücü)

Yazma çözünürlüğünü 12 bit olarak ayarlayarak, PWM sinyalleri için 0 ile 4095 arasındaki değerlerle analogWrite() kullanabilirsiniz; 1024 değerin tam DAC çözünürlüğünü kullanmak için DAC pinine 10 bit ayarlayın.

Sözdizimi

analogWriteResolution(bits)

Parametreler

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

İadeler

Hiçbir şey değil

Örnek Kod

Kodu Açıkla

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);
}

Notlar ve Uyarılar

analogWriteResolution() değerini kartınızın özelliklerinden daha yüksek bir değere ayarlarsanız, Arduino fazladan bitleri atar. Örneğin: 12 bit DAC analogWriteResolution(16) Due with analogWriteResolution(16) kullanıldığında, analogWrite() iletilen değerlerin yalnızca ilk 12 biti kullanılır ve son 4 bit atılır.

analogWriteResolution() değerini, analogWriteResolution() özelliklerinden daha düşük bir değere ayarlarsanız, eksik bitler, gerekli donanım boyutunu doldurmak için sıfırlarla doldurulur. Örneğin: 12 bit DAC pininde Due with analogWriteResolution (8) kullanıldığında, Arduino, gerekli 12 biti elde etmek için analogWrite() içinde kullanılan 8 bit değerine 4 sıfır bit ekleyecektir.

Ayrıca Bakınız

LANGUAGE analogWrite()

LANGUAGE analogRead()

LANGUAGE map()