사용자 도구

사이트 도구


commands:reference:ianalogwrite

IanalogWrite()

IanalogWrite()는 사용자 정수값을 아날로그 출력 범위로 변환하여 출력합니다.

IanalogWrite 명령어 동작 흐름

void IanalogWrite(uint8_t ch, int32_t min, int32_t max, int32_t value)

명령어

명령어 인수 반환값 동작
IanalogWrite(ch, min, max, value) uint8_t ch — 출력할 아날로그 출력 핀 또는 채널
int32_t min — 사용자 입력 범위의 최솟값
int32_t max — 사용자 입력 범위의 최댓값
int32_t value — 출력할 사용자 입력값
void 사용자 정수값을 아날로그 출력 범위로 변환하여 출력합니다.

예제

const uint8_t DEMAND_INPUT = A0;
const uint8_t OUTPUT_CHANNEL = 0;
 
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  const int32_t demandPercent = IanalogRead(DEMAND_INPUT, 0, 100);  // 아날로그 입력값을 지정한 정수 범위로 변환합니다.
  IanalogWrite(OUTPUT_CHANNEL, 0, 100, demandPercent);  // 사용자 정수값을 아날로그 출력 범위로 변환하여 출력합니다.
 
  Serial.print(F("demand="));
  Serial.print(demandPercent);
  Serial.println(F("%"));
  delay(250);
}

주의사항

  • 인수는 반드시 ch, min, max, value 순서로 지정해야 합니다.
  • min과 max는 전기적 출력 범위를 직접 설정하는 값이 아니라 value를 해석할 사용자 입력 범위를 지정합니다.
  • value가 min~max 범위를 벗어나면 내부 Iscalef()에 의해 가까운 끝값으로 제한됩니다.
  • min을 max보다 크게 지정하면 출력 방향이 반전됩니다.
  • min과 max가 같으면 출력값은 0이 됩니다.
  • analogWriteInit()이나 analogWriteFreq()로 Timer TOP을 변경하면 실제 analogWrite() 출력 범위도 달라집니다. 16비트 0~65535 해상도를 유지하려면 기본 TOP 65535를 사용해야 합니다.
  • 출력 모듈의 딥스위치 설정·외부 전원·배선은 연결 장비의 입력 사양과 일치해야 합니다.
  • 같은 타이머를 사용하는 PWM·펄스 출력·카운터 명령어와 동시에 사용하지 않아야 합니다.

같은 카테고리의 내장 명령어

commands/reference/ianalogwrite.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki