사용자 도구

사이트 도구


commands:reference:ianalogwrite2

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

commands:reference:ianalogwrite2 [2026/09/01 20:04] – 만듦 - 바깥 편집 127.0.0.1commands:reference:ianalogwrite2 [2026/09/08 00:53] (현재) – 바깥 편집 127.0.0.1
줄 11: 줄 11:
 ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^
 | ''IanalogWrite2(ch, min, max, value)'' | ''uint8_t ch''\\ ''int32_t min''\\ ''int32_t max''\\ ''int32_t value'' | ''void'' | 사용자 정수값을 4~20mA 출력 범위로 변환합니다. | | ''IanalogWrite2(ch, min, max, value)'' | ''uint8_t ch''\\ ''int32_t min''\\ ''int32_t max''\\ ''int32_t value'' | ''void'' | 사용자 정수값을 4~20mA 출력 범위로 변환합니다. |
 +
  
 ===== 예제 ===== ===== 예제 =====
  
 <code cpp> <code cpp>
-IanalogWrite2(0, 0, 100, 50);            // 약 12mA +void setup() { 
-IanalogWrite2f(1, 0.0F, 10.0F, 2.5F);   // 약 8mA+  Serial.begin(115200); 
 +
 + 
 +void loop() { 
 +  uint16_t raw2 = analogRead2(0);  // 지정한 채널의 4~20mA 보정 입력값을 읽습니다. 
 +  int32_t filtered2 = analogRead2Avg(0, 5);  // 4~20mA 입력값의 정수 평균을 반환합니다. 
 +  float filtered2f = analogRead2Avgf(0, 5);  // 4~20mA 입력값의 실수 평균을 반환합니다. 
 +  float currentmA = IanalogRead2f(0, 4.0F, 20.0F);  // 4~20mA 입력값을 지정한 실수 범위로 변환합니다. 
 + 
 +  if (raw2 == ANALOG_READ2_ERROR || filtered2 == ANALOG_READ2_AVG_ERROR || 
 +      filtered2f == (float)ANALOG_READ2_AVG_ERROR || 
 +      currentmA == (float)ANALOG_READ2_ERROR) { 
 +    Serial.println("4-20mA input error"); 
 +    delay(500); 
 +    return; 
 +  } 
 + 
 +  int32_t percent = Iscale((int32_t)raw2, 0, 32767, 0, 100);  // 정수 입력값을 지정한 정수 범위로 변환합니다. 
 + 
 +  IanalogWrite2(0, 0, 100, 50);       // 50% → 약 12mA 
 +  IanalogWrite2f(1, 0.0F, 10.0F, 2.5F); // 25% → 약 8mA 
 + 
 +  Serial.print("4-20mA raw: "); 
 +  Serial.println(raw2); 
 +  Serial.print("4-20mA filtered: "); 
 +  Serial.println(filtered2); 
 +  Serial.print("4-20mA filtered float: "); 
 +  Serial.println(filtered2f, 2); 
 +  Serial.print("percent: "); 
 +  Serial.println(percent); 
 +  Serial.print("current: "); 
 +  Serial.println(currentmA, 2); 
 + 
 +  delay(500); 
 +}
 </code> </code>
  
줄 27: 줄 62:
   * ''analogWriteInit()'', ''analogWriteFreq()'', ''analogWriteMax()''는 Y 아날로그 출력 채널용이며 고속펄스 채널 ''20~31''에는 사용하지 않습니다.   * ''analogWriteInit()'', ''analogWriteFreq()'', ''analogWriteMax()''는 Y 아날로그 출력 채널용이며 고속펄스 채널 ''20~31''에는 사용하지 않습니다.
   * 고속펄스 GPIO 번호 ''130~141''을 ''analogWrite()''에 사용하지 않습니다.   * 고속펄스 GPIO 번호 ''130~141''을 ''analogWrite()''에 사용하지 않습니다.
 +
 +===== 같은 카테고리의 내장 명령어 =====
 +
 +  * [[commands:reference:analogwrite2|analogWrite2() 상세 설명 보기]]
 +  * [[commands:reference:ianalogwrite2f|IanalogWrite2f() 상세 설명 보기]]
  
 [[commands:builtin|← 내장 명령어 리스트]] [[commands:builtin|← 내장 명령어 리스트]]
  
commands/reference/ianalogwrite2.1788260661.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki