본문 바로가기

개발자/Arduino

nano 33 IoT 보드 ADC 12bit 설정

반응형

 

 

ADC 비트 수, 분해능, 레졸루션을 변경하는 방법

 

Arduino Nano 33 BLE에는 아날로그 읽기 해상도를 변경하여 analogRead() 함수가 반환하는 값의 비트 수를 늘릴 수 있는 기능이 있습니다. 기본 해상도 값은 10비트(0~1023 사이의 값 반환)이며 최대 12비트 ADC(0~4095 사이의 값 반환)까지 지원할 수 있습니다.

 

이를 위해 analogRead()가 반환하는 값의 크기(비트)를 설정하는 analogReadResolution()이라는 또 다른 함수가 있습니다. 바로 이 함수에서 ADC 분해능(해상도, 비트 수)를 변경할 수 있습니다.

 

analogReadResolution() 

 

analogReadResolution()은 제로, 듀, MKR 제품군, 나노 33(BLE 및 IoT) 및 포텐타를 위한 아날로그 API의 확장입니다.

 

analogRead()가 반환하는 값의 크기(비트 단위)를 설정합니다. AVR 기반 보드와의 하위 호환성을 위해 기본값은 10비트(0~1023 사이의 값 반환)입니다.

 

Zero, Due, MKR 제품군 및 Nano 33(BLE 및 IoT) 보드에는 해상도를 12로 변경하여 액세스할 수 있는 12비트 ADC 기능이 있습니다. 이렇게 하면 analogRead()에서 0에서 4095 사이의 값이 반환됩니다. Portenta H7에는 16비트 ADC가 있어 0~65535 사이의 값을 사용할 수 있습니다. 

 

구문 : analogReadResolution(비트)

 

매개변수: bits: analogRead() 함수가 반환하는 값의 해상도(비트 단위)를 결정합니다. 1에서 32 사이로 설정할 수 있습니다. 지원되는 12비트 또는 16비트보다 높은 해상도를 설정할 수 있지만 analogRead()에서 반환되는 값은 근사치가 적용됩니다.

반환값: 없음 

 

아래 샘플 코드를 참고하세요

 

void setup() {
  // open a serial connection
  Serial.begin(9600);
}

void loop() {
  // read the input on A0 at default resolution (10 bits)
  // and send it out the serial connection
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // change the resolution to 12 bits and read A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 16 bits and read A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 8 bits and read A0
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // a little delay to not hog Serial Monitor
  delay(100);
}

 

 

참고 및 경고

 

아날로그ReadResolution() 값을 보드의 기능보다 높은 값으로 설정하면 아두이노는 여분의 비트를 0으로 채워서 최고 해상도로만 보고합니다.

 

예를 들어, Due를 analogReadResolution(16)과 함께 사용하면 처음 12비트는 실제 ADC 판독값을 포함하고 마지막 4비트는 0으로 패딩된 대략적인 16비트 숫자가 표시됩니다.

 

analogReadResolution() 값을 보드의 기능보다 낮은 값으로 설정하면 ADC에서 읽은 추가 최하위 비트는 버려집니다.

 

16비트 해상도(또는 실제 하드웨어 기능보다 높은 해상도)를 사용하면 향후 보드에서 더 높은 해상도의 ADC를 사용할 수 있게 될 때 코드 한 줄도 변경하지 않고도 자동으로 장치를 처리하는 스케치를 작성할 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩