analogWriteResolution()

설명

analogWriteResolution() 은 아두이노 두에를 위한 아날로그 API의 확장이다.

analogWriteResolution()analogWrite() 함수의 해상도를 설정합니다. AVR 기반 보드와의 호환성을 위해 기본값은 8 비트 (0-255 사이의 값)입니다.

Due 는 아래와 같은 하드웨어 기능이 있습니다:

  • AVR 기반 보드와 같이 기본적으로 8비트 PWM인 12핀을 12비트 해상도로 변경할 수 있습니다.
  • 2핀, 12비트 DAC (디지털 - 아날로그 컨버터)

쓰기 해상도를 12로 설정하면 analogWrite() 를 0에서 4095 사이의 값으로 사용하여 전체 DAC 해상도를 활용하거나 롤오버하지 않고 PWM 신호를 설정할 수 있습니다.

Zero 에는 다음과 같은 하드웨어 기능이 있습니다:

  • AVR 기반 보드와 같이 기본적으로 8비트 PWM인 10핀을 12비트 해상도로 변경할 수 있습니다.
  • 10 비트 DAC (디지털 - 아날로그 변환기)가있는 1 핀.

쓰기 해상도를 10으로 설정하면 analogWrite() 를 0에서 1023 사이의 값으로 사용하여 전체 DAC 해상도를 활용할 수 있습니다.

보드의 MKR 패밀리 는 다음과 같은 하드웨어 기능을 제공합니다:

  • AVR 기반 보드처럼 8비트 PWM을 기본으로하는 4핀을 8(기본값)에서 12비트 해상도로 변경할 수 있습니다.
  • 1 핀, 10 비트 DAC (디지털 - 아날로그 컨버터)

쓰기 해상도를 12 비트로 설정하면 PWM 신호에 대해 0에서 4095 사이의 값을 갖는 analogWrite() 를 사용할 수 있습니다. 1024개 값의 전체 DAC 분해기능을 활용하려면 DAC 핀에서 10 비트를 설정해야 합니다.

문법

analogWriteResolution(bits)

매개변수

  • bits : analogWrite() 함수에서 사용되는 값의 해상도 (비트 단위)를 결정합니다. 값의 범위는 1에서 32 사이 입니다. 보드의 하드웨어 기능보다 높거나 낮은 해상도를 선택한 상태에서 analogWrite() 의 값이 너무 높으면 해당 값이 사라지고 값이 너무 낮으면 0으로 채우게 됩니다. 너무 낮으면 0으로 채웁니다. 자세한 내용은 아래 참고 사항을 참조하십시오.

반환값

  • 없음.

예제 코드

예제코드

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

※ 주의 및 경고:

  • analogWriteResolution() 값을 보드의 기능보다 높은 값으로 설정하면 아두이노는 여분의 비트를 무시합니다. 예를 들어, 12비트 DAC 핀에서 analogWriteResolution(16) 을 사용하면 analogWrite() 에 전달 된 값의 처음 12비트 만 사용되며 마지막 4비트는 무시됩니다.
  • analogWriteResolution() 값을 보드의 기능보다 낮은 값으로 설정하면 누락 된 비트에 하드웨어 필요 크기를 채우기 위해 0이 채워집니다. 예를 들어, 12 비트 DAC 핀에서 analogWriteResolution(8) 을 사용하여 Due를 사용하면 아두이노는 analogWrite() 에 사용 된 8비트 값에 4개의 0비트를 추가하여 필요한 12비트를 얻습니다.

더보기

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.