사용자 도구

사이트 도구


commands:builtin

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
commands:builtin [2026/08/31 23:17] – 바깥 편집 127.0.0.1commands:builtin [2026/09/15 11:47] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== ILOGICS 내장 명령어 설명서 ====== ====== ILOGICS 내장 명령어 설명서 ======
  
-ILOGICS 보드에서는 ILOGICS에서 제작한 내장 명령어를 사용할 수 있습니다. 별도의 라이브러리 설치 없이 ILOGICS 보드를 선택하면 사용할 수 있습니다.+ILOGICS 보드를 선택하면 별도 라이브러리를 설치하지 않고도 ILOGICS 내장 명령어를 사용할 수 있습니다.
  
 ===== 내장 명령어를 사용하는 방법 ===== ===== 내장 명령어를 사용하는 방법 =====
  
   - [[https://www.ilogics.net/ko-kr/resources/downloads/software/3|ILOGICS 보드 패키지]]를 설치합니다. (Arduino SDK)   - [[https://www.ilogics.net/ko-kr/resources/downloads/software/3|ILOGICS 보드 패키지]]를 설치합니다. (Arduino SDK)
-  - Arduino IDE에서 **도구 → 보드**에서 사용하는 보드를 선택합니다.+  - Arduino IDE의 **도구 → 보드**에서 사용할 보드를 선택합니다.
   - 내장 명령어를 사용합니다.   - 내장 명령어를 사용합니다.
  
 ===== 내장 명령어 리스트 ===== ===== 내장 명령어 리스트 =====
 +
 +예제에 표시된 입출력 주소는 제품별로 다릅니다. 사용 중인 ILOGICS 제품의 보드 정의를 선택하고, 해당 제품의 핀맵에서 주소를 확인하십시오.
 +
 +**카테고리별 보기**
 +
 +  * [[commands:digital_filter|디지털 입력 필터]] · [[commands:edge_scale|에지 검출·범위 변환]] · [[commands:plc_timer|PLC 타이머]] · [[commands:callback_timer|콜백 타이머]]
 +  * [[commands:counter_buffer|카운터·데이터 버퍼]] · [[commands:high_speed_counter|고속카운터]] · [[commands:analog_input|아날로그 입력]] · [[commands:temperature|온도 입력]]
 +  * [[commands:analog_output_pwm|아날로그 출력·PWM]] · [[commands:pid|PID 제어]] · [[commands:display_rtc|표시장치·RTC]]
 +  * [[commands:debug_watchdog|디버그·Watchdog]] · [[commands:communication|통신]]
  
 ^ 카테고리 ^ 명령어 ^ 설명 ^ ^ 카테고리 ^ 명령어 ^ 설명 ^
-| 디지털 입력 필터 | [[commands:digital_filter|IdigitalRead()]] | 입력을 여러 번 읽어 짧은 노를 줄입니다. | +| 디지털 입력 필터 | [[commands:reference:idigitalread|IdigitalRead()]] | 입력을 여러 번 연속으로 고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. | 
-디지털 입력 필터 | [[commands:digital_filter|Ibounce()]] | 입력의 ON·OFF 양방향에 채터링 제거 시간을 적용합니다. | +::: | [[commands:ibounce|Ibounce()]] | 입력의 ON·OFF 양방향에 채터링 제거 시간을 적용합니다. | 
-디지털 입력 필터 | [[commands:digital_filter|IbounceOn()]] | 입력이 OFF에서 ON으로 바뀔 때만 시간 필터를 적용합니다. | +::: | [[commands:reference:ibounceon|IbounceOn()]] | 입력이 OFF에서 ON으로 바뀔 때만 시간 필터를 적용합니다. | 
-디지털 입력 필터 | [[commands:digital_filter|IbounceOff()]] | 입력이 ON에서 OFF로 바뀔 때만 시간 필터를 적용합니다. | +::: | [[commands:reference:ibounceoff|IbounceOff()]] | 입력이 ON에서 OFF로 바뀔 때만 시간 필터를 적용합니다. | 
-| 디지털 출력 초기화 | [[commands:digital_filter|digitalReset()]] | 코어가 관리하는 디지털 출력 상태를 초기화합니다. | +| 에지 검출 | [[commands:reference:iup|Iup()]] | 입력이 OFF에서 ON으로 바뀌는 순간에만 ''true''를 반환합니다. | 
-| 에지 검출 | [[commands:edge_scale|Iup()]] | 입력이 OFF에서 ON으로 바뀌는 순간에만 ''true''를 반환합니다. | +::: | [[commands:reference:idown|Idown()]] | 입력이 ON에서 OFF로 바뀌는 순간에만 ''true''를 반환합니다. | 
-에지 검출 | [[commands:edge_scale|Idown()]] | 입력이 ON에서 OFF로 바뀌는 순간에만 ''true''를 반환합니다. | +| 상태 반전 | [[commands:reference:ialt|Ialt()]] | 입력 상승 순간마다 지정한 상태를 ON·OFF로 반전합니다. | 
-| 상태 반전 | [[commands:edge_scale|Ialt()]] | 입력 상승 순간마다 지정한 상태를 ON·OFF로 반전합니다. | +| 범위 변환 | [[commands:reference:iscale|Iscale()]] | 정수 입력값을 지정한 정수 범위로 변환합니다. | 
-| 범위 변환 | [[commands:analog_input|Iscale()]] | 정수 입력값을 지정한 정수 범위로 변환합니다. | +::: | [[commands:reference:iscalef|Iscalef()]] | 실수 입력값을 지정한 실수 범위로 변환합니다. | 
-범위 변환 | [[commands:analog_input|Iscalef()]] | 실수 입력값을 지정한 실수 범위로 변환합니다. | +| 타이머 | [[commands:reference:iton|Iton()]] | 입력이 정 시간 동안 ON 상태를 유지하면 ''true''를 반환합니다. | 
-| 타이머 | [[commands:plc_timer|Iton()]] | (On Delay Timer) 조건이 정 시간 동안 ON이 되어야 ''true''를 반환합니다. | +::: | [[commands:reference:itof|Itof()]] | 입력이 OFF로 바뀌고 설정 시간이 지나면 ''false''를 반환합니다. | 
-타이머 | [[commands:plc_timer|Itof()]] | (Off Delay Timer) 조건이 OFF된 후 일정 시간이 지나면 ''false''를 반환합니다. | +::: | [[commands:reference:itpl|Itpl()]] | 입력이 ON으로 바뀌면 설정 시간 동안 ''true''를 반환합니다. | 
-타이머 | [[commands:plc_timer|Itpl()]] | (Pulse Timer) 조건이 ON되는 순간부터 설정 시간 동안 ''true''를 반환합니다. | +::: | [[commands:reference:itmon|Itmon()]] | 입력이 ON으로 바뀌면 설정 시간 동안 ''true''를 반환하며, 동작 중 재입력도 시간이 연장되지 않니다. | 
-타이머 | [[commands:plc_timer|Itmon()]] | (Monostable Timer) 동작 중 재입력되어도 시간이 연장되지 않는 펄스를 출력합니다. | +::: | [[commands:reference:itmr|Itmr()]] | 입력이 ON인 시간을 누적하고 ''reset'' 입력으로 누적 시간을 초기화합니다. | 
-타이머 | [[commands:plc_timer|Itmr()]] | (Retentive Timer) 조건이 ON인 시간을 누적하고 Reset 입력으로 초기화합니다. | +| 타이머 상태 | [[commands:reference:igettime|IgetTime()]] | 지정한 타이머의 현재 경과시간을 반환합니다. | 
-| 타이머 상태 | [[commands:plc_timer|IgetTime()]] | 지정한 타이머의 현재 경과시간을 반환합니다. | +::: | [[commands:reference:igetstate|IgetState()]] | 지정한 타이머의 현재 출력 상태를 반환합니다. | 
-타이머 상태 | [[commands:plc_timer|IgetState()]] | 지정한 타이머의 현재 출력 상태를 반환합니다. | +| 콜백 타이머 | [[commands:reference:itimerset|ItimerSet()]] | 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다. | 
-| 콜백 타이머 | [[commands:callback_timer|ItimerSet()]] | 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다. | +::: | [[commands:reference:itimerstart|ItimerStart()]] | 설정한 콜백 타이머를 시작합니다. | 
-콜백 타이머 | [[commands:callback_timer|ItimerStart()]] | 설정한 콜백 타이머를 시작합니다. | +::: | [[commands:reference:itimerstop|ItimerStop()]] | 기본 또는 지정한 콜백 타이머를 정지합니다. | 
-콜백 타이머 | [[commands:callback_timer|ItimerStop()]] | 기본 또는 지정한 콜백 타이머를 정지합니다. | +::: | [[commands:reference:itimerstopall|ItimerStopAll()]] | 실행 중인 콜백 타이머를 모두 정지합니다. | 
-콜백 타이머 | [[commands:callback_timer|ItimerStopAll()]] | 실행 중인 콜백 타이머를 모두 정지합니다. | +::: | [[commands:reference:itimerstate|ItimerState()]] | 기본 또는 지정한 콜백 타이머의 실행 상태를 반환합니다. | 
-콜백 타이머 | [[commands:callback_timer|ItimerState()]] | 기본 또는 지정한 콜백 타이머의 실행 상태를 반환합니다. | +| 카운터 | [[commands:reference:ictu|Ictu()]] | 입력의 상승 횟수를 세고 설정값에 도달하면 ''true''를 반환합니다. | 
-| 카운터 | [[commands:counter_buffer|Ictu()]] | 입력의 상승 횟수를 세고 설정값에 도달하면 ''true''를 반환합니다. | +::: | [[commands:reference:ictd|Ictd()]] | 설정값을 불러온 후 입력 상승마다 현재값을 감소시킵니다. | 
-카운터 | [[commands:counter_buffer|Ictd()]] | 설정값을 불러온 후 입력 상승마다 현재값을 감소시킵니다. | +::: | [[commands:reference:ictud|Ictud()]] | 증가 입력과 감소 입력을 하나의 카운터에서 처리합니다. | 
-카운터 | [[commands:counter_buffer|Ictud()]] | 증가 입력과 감소 입력을 하나의 카운터에서 처리합니다. | +::: | [[commands:reference:igetcount|IgetCount()]] | 지정한 카운터의 현재값을 반환합니다. | 
-카운터 | [[commands:counter_buffer|IgetCount()]] | 지정한 카운터의 현재값을 반환합니다. | +::: | [[commands:reference:isetcount|IsetCount()]] | 지정한 카운터의 현재값을 변경합니다. | 
-카운터 | [[commands:counter_buffer|IsetCount()]] | 지정한 카운터의 현재값을 변경합니다. | +::: | [[commands:reference:ictuddownstate|IctudDownState()]] | Up/Down 카운터의 하한 완료 상태를 반환합니다. | 
-카운터 | [[commands:counter_buffer|IctudDownState()]] | Up/Down 카운터의 하한 완료 상태를 반환합니다. | +| 데이터 버퍼 | [[commands:reference:fifo|FIFO()]] | 저장한 순서대로 16비트 데이터를 꺼냅니다. | 
-| 데이터 버퍼 | [[commands:counter_buffer|FIFO()]] | 먼저 저장한 16비트 데이터를 먼저 출력합니다. | +::: | [[commands:reference:filo|FILO()]] | 나중에 저장한 16비트 데이터를 먼저 출력합니다. | 
-데이터 버퍼 | [[commands:counter_buffer|FILO()]] | 나중에 저장한 16비트 데이터를 먼저 출력합니다. | +| 아날로그 입력 | [[commands:reference:analogreadinit|analogReadInit()]] | 아날로그 입력 모듈의 샘플링 속도를 설정합니다. | 
-| 아날로그 입력 | [[commands:analog_input|analogReadInit()]] | 아날로그 입력 모듈의 샘플링 속도를 설정합니다. | +::: | [[commands:reference:analogread|analogRead()]] | 지정한 채널의 원시 아날로그값을 읽습니다. | 
-아날로그 입력 | [[commands:analog_input|analogRead()]] | 지정한 채널의 원시 아날로그값을 읽습니다. | +::: | [[commands:reference:analogreadavg|analogReadAvg()]] | 여러 입력값의 정수 평균을 반환합니다. | 
-아날로그 입력 | [[commands:analog_input|analogReadAvg()]] | 여러 입력값의 정수 평균을 반환합니다. | +::: | [[commands:reference:analogreadavgf|analogReadAvgf()]] | 여러 입력값의 실수 평균을 반환합니다. | 
-아날로그 입력 | [[commands:analog_input|analogReadAvgf()]] | 여러 입력값의 실수 평균을 반환합니다. | +| 아날로그 입력 필터 | [[commands:reference:ianalogfilter|IanalogFilter()]] | 전달한 값을 이동평균 방식으로 처리합니다. | 
-| 아날로그 입력 필터 | [[commands:analog_input|IanalogFilter()]] | 전달한 값을 이동평균 방식으로 처리합니다. | +| 아날로그 범위 변환 | [[commands:reference:ianalogread|IanalogRead()]] | 아날로그 입력값을 지정한 정수 범위로 변환합니다. | 
-| 아날로그 범위 변환 | [[commands:analog_input|IanalogRead()]] | 아날로그 입력값을 지정한 정수 범위로 변환합니다. | +::: | [[commands:reference:ianalogreadf|IanalogReadf()]] | 아날로그 입력값을 지정한 실수 범위로 변환합니다. | 
-아날로그 범위 변환 | [[commands:analog_input|IanalogReadf()]] | 아날로그 입력값을 지정한 실수 범위로 변환합니다. | +| 4~20mA 입력 | [[commands:reference:analogread2|analogRead2()]] | 지정한 채널의 4~20mA 보정 입력값을 읽습니다. | 
-| 4~20mA 입력 | [[commands:analog_input|analogRead2()]] | 지정한 채널의 4~20mA 보정 입력값을 읽습니다. | +::: | [[commands:reference:analogread2avg|analogRead2Avg()]] | 4~20mA 입력값의 정수 평균을 반환합니다. | 
-4~20mA 입력 | [[commands:analog_input|analogRead2Avg()]] | 4~20mA 입력값의 정수 평균을 반환합니다. | +::: | [[commands:reference:analogread2avgf|analogRead2Avgf()]] | 4~20mA 입력값의 실수 평균을 반환합니다. | 
-4~20mA 입력 | [[commands:analog_input|analogRead2Avgf()]] | 4~20mA 입력값의 실수 평균을 반환합니다. | +| 4~20mA 범위 변환 | [[commands:reference:ianalogread2|IanalogRead2()]] | 4~20mA 입력값을 지정한 정수 범위로 변환합니다. | 
-| 4~20mA 범위 변환 | [[commands:analog_input|IanalogRead2()]] | 4~20mA 입력값을 지정한 정수 범위로 변환합니다. | +::: | [[commands:reference:ianalogread2f|IanalogRead2f()]] | 4~20mA 입력값을 지정한 실수 범위로 변환합니다. | 
-4~20mA 범위 변환 | [[commands:analog_input|IanalogRead2f()]] | 4~20mA 입력값을 지정한 실수 범위로 변환합니다. | +| 온도 입력 | [[commands:reference:ntcread|ntcRead()]] | NTC 3950 10kΩ 센서의 온도를 0.1℃ 단위 정수로 반환합니다. | 
-| 온도 입력 | [[commands:temperature|ntcRead()]] | NTC 3950 10kΩ 센서의 온도를 0.1℃ 단위 정수로 반환합니다. | +::: | [[commands:reference:ntcreadf|ntcReadf()]] | NTC 3950 10kΩ 센서의 온도를 ℃ 단위 실수로 반환합니다. | 
-온도 입력 | [[commands:temperature|ntcReadf()]] | NTC 3950 10kΩ 센서의 온도를 ℃ 단위 실수로 반환합니다. | +::: | [[commands:reference:pt100read|pt100Read()]] | PT100 센서의 온도를 0.1℃ 단위 정수로 반환합니다. | 
-온도 입력 | [[commands:temperature|pt100Read()]] | PT100 센서의 온도를 0.1℃ 단위 정수로 반환합니다. | +| 아날로그 출력 | [[commands:reference:analogwriteinit|analogWriteInit()]] | 출력 타이머의 분해능과 분주비를 설정합니다. | 
-| 아날로그 출력 | [[commands:analog_output_pwm|analogWriteInit()]] | 출력 타이머의 분해능과 분주비를 설정합니다. | +::: | [[commands:reference:analogwritefreq|analogWriteFreq()]] | 지정한 출력 채널의 PWM 주파수를 설정합니다. | 
-아날로그 출력 | [[commands:analog_output_pwm|analogWriteFreq()]] | 지정한 출력 채널의 PWM 주파수를 설정합니다. | +::: | [[commands:reference:analogwritemax|analogWriteMax()]] | 지정한 출력 채널에서 사용할 수 있는 최댓값을 반환합니다. | 
-아날로그 출력 | [[commands:analog_output_pwm|analogWriteMax()]] | 지정한 출력 채널에서 사용할 수 있는 최댓값을 반환합니다. | +::: | [[commands:reference:ianalogwriteinit|IanalogWriteInit()]] | MPAINO 아날로그 출력의 최댓값·최솟값과 모드를 설정합니다. | 
-아날로그 출력 | [[commands:analog_output_pwm|IanalogWriteInit()]] | MPAINO 아날로그 출력의 최댓값·최솟값과 모드를 설정합니다. | +::: | [[commands:reference:ianalogwrite|IanalogWrite()]] | 사용자 정수값을 아날로그 출력 범위로 변환하여 출력합니다. | 
-아날로그 출력 | [[commands:analog_output_pwm|IanalogWrite()]] | 사용자 정수값을 아날로그 출력 범위로 변환하여 출력합니다. | +::: | [[commands:reference:ianalogwritef|IanalogWritef()]] | 사용자 실수값을 아날로그 출력 범위로 변환하여 출력합니다. | 
-아날로그 출력 | [[commands:analog_output_pwm|IanalogWritef()]] | 사용자 실수값을 아날로그 출력 범위로 변환하여 출력합니다. | +| 4~20mA 출력 | [[commands:reference:analogwrite2|analogWrite2()]] | 지정한 채널에 4~20mA 변환용 원시값을 출력합니다. | 
-| 4~20mA 출력 | [[commands:analog_output_pwm|analogWrite2()]] | 지정한 채널에 4~20mA 변환용 원시값을 출력합니다. | +::: | [[commands:reference:ianalogwrite2|IanalogWrite2()]] | 사용자 정수값을 4~20mA 출력 범위로 변환합니다. | 
-4~20mA 출력 | [[commands:analog_output_pwm|IanalogWrite2()]] | 사용자 정수값을 4~20mA 출력 범위로 변환합니다. | +::: | [[commands:reference:ianalogwrite2f|IanalogWrite2f()]] | 사용자 실수값을 4~20mA 출력 범위로 변환합니다. | 
-4~20mA 출력 | [[commands:analog_output_pwm|IanalogWrite2f()]] | 사용자 실수값을 4~20mA 출력 범위로 변환합니다. | +| PWM 출력 | [[commands:reference:pwm|PWM()]] | 지정한 핀에 8비트 또는 16비트 PWM을 출력합니다. | 
-| PWM 출력 | [[commands:analog_output_pwm|PWM()]] | 지정한 핀에 8비트 또는 16비트 PWM을 출력합니다. | +::: | [[commands:reference:fdpwm|FDPWM()]] | 주파수와 Duty 비율을 지정하여 PWM을 출력합니다. | 
-PWM 출력 | [[commands:analog_output_pwm|FDPWM()]] | 주파수와 Duty 비율을 지정하여 PWM을 출력합니다. | +::: | [[commands:reference:pwmoff|PWMOFF()]] | 지정한 핀의 PWM 출력을 정지하거나 다시 허용합니다. | 
-펄스 출력 | [[commands:analog_output_pwm|NPWM_BEGIN()]] | 주파수·Duty·출력 개수를 지정하여 펄스 출력을 준비합니다. | +::: | [[commands:reference:pwm_reset|PWM_RESET()]] | 코어가 관리하는 PWM 상태를 모두 초기화합니다. | 
-펄스 출력 | [[commands:analog_output_pwm|NPWM()]] | 준비한 개수만큼 펄스를 출력합니다. | +펄스 출력 | [[commands:reference:npwm_begin|NPWM_BEGIN()]] | 주파수·Duty·출력 개수를 지정하여 펄스 출력을 준비합니다. | 
-PWM 출력 | [[commands:analog_output_pwm|PWMOFF()]] | 지정한 핀의 PWM 출력을 정지하거나 다시 허용합니다. | +::: | [[commands:reference:npwm|NPWM()]] | 준비한 개수만큼 펄스를 출력합니다. | 
-PWM 출력 | [[commands:analog_output_pwm|PWM_RESET()]] | 코어가 관리하는 PWM 상태를 모두 초기화합니다. | +| PID 제어 | [[commands:reference:ipidset|IpidSet()]] | PID 계수, 계산 주기와 출력 범위를 설정합니다. | 
-| PID 제어 | [[commands:pid|IpidSet()]] | PID 계수, 계산 주기와 출력 범위를 설정합니다. | +::: | [[commands:reference:ipidrun|IpidRun()]] | 현재값과 설정값을 사용해 PID 출력을 계산합니다. | 
-PID 제어 | [[commands:pid|IpidRun()]] | 현재값과 설정값을 사용해 PID 출력을 계산합니다. | +::: | [[commands:reference:ipidreset|IpidReset()]] | PID의 적분값과 내부 상태를 초기화합니다. | 
-PID 제어 | [[commands:pid|IpidReset()]] | PID의 적분값과 내부 상태를 초기화합니다. | +::: | [[commands:reference:ipidreverse|IpidReverse()]] | PID의 정동작 또는 역동작을 선택합니다. | 
-PID 제어 | [[commands:pid|IpidReverse()]] | PID의 정동작 또는 역동작을 선택합니다. | +::: | [[commands:reference:ipiditermlimit|IpidItermLimit()]] | PID 적분항의 최솟값과 최댓값을 제한합니다. | 
-PID 제어 | [[commands:pid|IpidItermLimit()]] | PID 적분항의 최솟값과 최댓값을 제한합니다. | +::: | [[commands:reference:ipidoutput|IpidOutput()]] | 마지막으로 계산된 PID 출력값을 반환합니다. | 
-PID 제어 | [[commands:pid|IpidOutput()]] | 마지막으로 계산된 PID 출력값을 반환합니다. | +| TM1637 FND | [[commands:reference:isegbegin|IsegBegin()]] | TM1637 FND의 CLK·DIO 핀과 장치 번호를 설정합니다. | 
-| TM1637 FND | [[commands:display_rtc|IsegBegin()]] | TM1637 FND의 CLK·DIO 핀과 장치 번호를 설정합니다. | +::: | [[commands:reference:isegbrightness|IsegBrightness()]] | 화면 밝기와 표시 상태를 설정합니다. | 
-TM1637 FND | [[commands:display_rtc|IsegBrightness()]] | 화면 밝기와 표시 상태를 설정합니다. | +::: | [[commands:reference:isegclear|IsegClear()]] | FND 화면을 지웁니다. | 
-TM1637 FND | [[commands:display_rtc|IsegClear()]] | FND 화면을 지웁니다. | +::: | [[commands:reference:isegwrite|IsegWrite()]] | 세그먼트 데이터를 지정 위치에 출력합니다. | 
-TM1637 FND | [[commands:display_rtc|IsegWrite()]] | 세그먼트 데이터를 지정 위치에 출력합니다. | +::: | [[commands:reference:isegdecimal|IsegDecimal()]] | 정수를 10진수 형식으로 표시합니다. | 
-TM1637 FND | [[commands:display_rtc|IsegDecimal()]] | 정수를 10진수 형식으로 표시합니다. | +::: | [[commands:reference:iseghex|IsegHex()]] | 정수를 16진수 형식으로 표시합니다. | 
-TM1637 FND | [[commands:display_rtc|IsegHex()]] | 정수를 16진수 형식으로 표시합니다. | +::: | [[commands:reference:isegencodedigit|IsegEncodeDigit()]] | 숫자 한 자리를 세그먼트 데이터로 변환합니다. | 
-TM1637 FND | [[commands:display_rtc|IsegEncodeDigit()]] | 숫자 한 자리를 세그먼트 데이터로 변환합니다. | +| 문자 LCD | [[commands:reference:iclcdbegin|IclcdBegin()]] | PCF8574 문자 LCD의 주소와 화면 크기를 설정합니다. | 
-| 문자 LCD | [[commands:display_rtc|IclcdBegin()]] | PCF8574 문자 LCD의 주소와 화면 크기를 설정합니다. | +::: | [[commands:reference:iclcdclear|IclcdClear()]] | LCD 화면을 지웁니다. | 
-문자 LCD | [[commands:display_rtc|IclcdClear()]] | LCD 화면을 지웁니다. | +::: | [[commands:reference:iclcdhome|IclcdHome()]] | 커서를 첫 번째 위치로 이동합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdHome()]] | 커서를 첫 번째 위치로 이동합니다. | +::: | [[commands:reference:iclcdsetcursor|IclcdSetCursor()]] | 커서를 지정한 열과 행으로 이동합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdSetCursor()]] | 커서를 지정한 열과 행으로 이동합니다. | +::: | [[commands:reference:iclcddisplay|IclcdDisplay()]] | LCD 표시를 켜거나 끕니다. | 
-문자 LCD | [[commands:display_rtc|IclcdDisplay()]] | LCD 표시를 켜거나 끕니다. | +::: | [[commands:reference:iclcdcursor|IclcdCursor()]] | 커서 표시를 켜거나 끕니다. | 
-문자 LCD | [[commands:display_rtc|IclcdCursor()]] | 커서 표시를 켜거나 끕니다. | +::: | [[commands:reference:iclcdblink|IclcdBlink()]] | 커서 깜박임을 켜거나 끕니다. | 
-문자 LCD | [[commands:display_rtc|IclcdBlink()]] | 커서 깜박임을 켜거나 끕니다. | +::: | [[commands:reference:iclcdbacklight|IclcdBacklight()]] | LCD 백라이트를 켜거나 끕니다. | 
-문자 LCD | [[commands:display_rtc|IclcdBacklight()]] | LCD 백라이트를 켜거나 끕니다. | +::: | [[commands:reference:iclcdscrollleft|IclcdScrollLeft()]] | 표시 내용을 왼쪽으로 한 칸 이동합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdScrollLeft()]] | 표시 내용을 왼쪽으로 한 칸 이동합니다. | +::: | [[commands:reference:iclcdscrollright|IclcdScrollRight()]] | 표시 내용을 오른쪽으로 한 칸 이동합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdScrollRight()]] | 표시 내용을 오른쪽으로 한 칸 이동합니다. | +::: | [[commands:reference:iclcdtextdirection|IclcdTextDirection()]] | 문자가 입력되는 방향을 설정합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdTextDirection()]] | 문자가 입력되는 방향을 설정합니다. | +::: | [[commands:reference:iclcdautoscroll|IclcdAutoscroll()]] | 자동 스크롤을 켜거나 끕니다. | 
-문자 LCD | [[commands:display_rtc|IclcdAutoscroll()]] | 자동 스크롤을 켜거나 끕니다. | +::: | [[commands:reference:iclcdcreatechar|IclcdCreateChar()]] | 사용자 정의 문자를 등록합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdCreateChar()]] | 사용자 정의 문자를 등록합니다. | +::: | [[commands:reference:iclcdwrite|IclcdWrite()]] | 문자 코드 또는 사용자 정의 문자를 출력합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdWrite()]] | 문자 코드 또는 사용자 정의 문자를 출력합니다. | +::: | [[commands:reference:iclcdcommand|IclcdCommand()]] | LCD 제어 명령을 직접 전송합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdCommand()]] | LCD 제어 명령을 직접 전송합니다. | +::: | [[commands:reference:iclcdprint|IclcdPrint()]] | 문자열 또는 숫자를 LCD에 출력합니다. | 
-문자 LCD | [[commands:display_rtc|IclcdPrint()]] | 문자열 또는 숫자를 LCD에 출력합니다. | +| RTC | [[commands:reference:irtcbegin|IrtcBegin()]] | DS3231 RTC 연결을 확인하고 사용을 시작합니다. | 
-| RTC | [[commands:display_rtc|IrtcBegin()]] | DS3231 RTC 연결을 확인하고 사용을 시작합니다. | +::: | [[commands:reference:irtcread|IrtcRead()]] | RTC의 날짜와 시간을 읽습니다. | 
-RTC | [[commands:display_rtc|IrtcRead()]] | RTC의 날짜와 시간을 읽습니다. | +::: | [[commands:reference:irtcset|IrtcSet()]] | RTC의 날짜와 시간을 설정합니다. | 
-RTC | [[commands:display_rtc|IrtcSet()]] | RTC의 날짜와 시간을 설정합니다. | +::: | [[commands:reference:irtcunixtime|IrtcUnixTime()]] | 현재 시간을 Unix 시간으로 반환합니다. | 
-RTC | [[commands:display_rtc|IrtcUnixTime()]] | 현재 시간을 Unix 시간으로 반환합니다. | +::: | [[commands:reference:irtcgettemperature|IrtcGetTemperature()]] | RTC 내부 온도를 반환합니다. | 
-RTC | [[commands:display_rtc|IrtcGetTemperature()]] | RTC 내부 온도를 반환합니다. | +::: | [[commands:reference:irtctimevalid|IrtcTimeValid()]] | RTC 시간이 신뢰 가능한 상태인지 확인합니다. | 
-RTC | [[commands:display_rtc|IrtcTimeValid()]] | RTC 시간이 신뢰 가능한 상태인지 확인합니다. | +::: | [[commands:reference:irtcclearoscillatorstopflag|IrtcClearOscillatorStopFlag()]] | 발진 정지 상태 표시를 초기화합니다. | 
-RTC | [[commands:display_rtc|IrtcClearOscillatorStopFlag()]] | 발진 정지 상태 표시를 초기화합니다. | +::: | [[commands:reference:irtcsetalarm1|IrtcSetAlarm1()]] | 초 단위를 포함하는 알람 1을 설정합니다. | 
-RTC | [[commands:display_rtc|IrtcSetAlarm1()]] | 초 단위를 포함하는 알람 1을 설정합니다. | +::: | [[commands:reference:irtcsetalarm2|IrtcSetAlarm2()]] | 분 단위의 알람 2를 설정합니다. | 
-RTC | [[commands:display_rtc|IrtcSetAlarm2()]] | 분 단위의 알람 2를 설정합니다. | +::: | [[commands:reference:irtcalarmenable|IrtcAlarmEnable()]] | 지정한 알람을 켜거나 끕니다. | 
-RTC | [[commands:display_rtc|IrtcAlarmEnable()]] | 지정한 알람을 켜거나 끕니다. | +::: | [[commands:reference:irtcalarmenabled|IrtcAlarmEnabled()]] | 지정한 알람의 활성 상태를 확인합니다. | 
-RTC | [[commands:display_rtc|IrtcAlarmEnabled()]] | 지정한 알람의 활성 상태를 확인합니다. | +::: | [[commands:reference:irtcalarmtriggered|IrtcAlarmTriggered()]] | 알람 발생 여부를 확인하고 필요하면 상태를 지웁니다. | 
-RTC | [[commands:display_rtc|IrtcAlarmTriggered()]] | 알람 발생 여부를 확인하고 필요하면 상태를 지웁니다. | +::: | [[commands:reference:irtcsquarewave|IrtcSquareWave()]] | RTC의 사각파 출력을 설정합니다. | 
-RTC | [[commands:display_rtc|IrtcSquareWave()]] | RTC의 사각파 출력을 설정합니다. | +::: | [[commands:reference:irtc32khz|Irtc32kHz()]] | RTC의 32kHz 출력을 켜거나 끕니다. | 
-RTC | [[commands:display_rtc|Irtc32kHz()]] | RTC의 32kHz 출력을 켜거나 끕니다. | +| 디버그 | [[commands:reference:debugstart|debugStart()]] | 디버그 출력에 사용할 포트와 보레이트를 설정합니다. | 
-| 디버그 | [[commands:debug_watchdog|debugStart()]] | 디버그 출력에 사용할 포트와 보레이트를 설정합니다. | +::: | [[commands:reference:debugstop|debugStop()]] | 디버그 출력을 중지합니다. | 
-디버그 | [[commands:debug_watchdog|debugStop()]] | 디버그 출력을 중지합니다. | +::: | [[commands:reference:debugstate|debugState()]] | 디버그 출력의 활성 상태를 반환합니다. | 
-디버그 | [[commands:debug_watchdog|debugState()]] | 디버그 출력의 활성 상태를 반환합니다. | +::: | [[commands:reference:debug|debug()]] | 디버그가 활성화된 경우에만 값을 출력합니다. | 
-디버그 | [[commands:debug_watchdog|debug()]] | 디버그가 활성화된 경우에만 값을 출력합니다. | +::: | [[commands:reference:debugln|debugln()]] | 디버그 값을 출력한 뒤 줄을 바꿉니다. | 
-디버그 | [[commands:debug_watchdog|debugln()]] | 디버그 값을 출력한 뒤 줄을 바꿉니다. | +| Watchdog | [[commands:reference:wdt_enable|WDT_ENABLE()]] | Watchdog 제한시간을 설정하고 동작을 시작합니다. | 
-| Watchdog | [[commands:debug_watchdog|WDT_ENABLE()]] | Watchdog 제한시간을 설정하고 동작을 시작합니다. | +::: | [[commands:reference:wdt_disable|WDT_DISABLE()]] | Watchdog 동작을 중지합니다. | 
-Watchdog | [[commands:debug_watchdog|WDT_DISABLE()]] | Watchdog 동작을 중지합니다. | +::: | [[commands:reference:wdt|WDT()]] | 제한시간이 끝나기 전에 Watchdog를 갱신합니다. | 
-Watchdog | [[commands:debug_watchdog|WDT()]] | 제한시간이 끝나기 전에 Watchdog를 갱신합니다. | +| 고속카운터 | [[commands:reference:tcntsetup|TCNTSETUP()]] | 타이머 외부 클럭 입력과 32비트 확장 모드를 설정합니다. | 
-| 고속카운터 | [[commands:high_speed_counter|TCNTSETUP()]] | 타이머 외부 클럭 입력과 32비트 확장 모드를 설정합니다. | +::: | [[commands:reference:tcntout|TCNTOUT()]] | 32비트 확장 모드의 누적 상위 오버플로 값을 반환합니다. | 
-고속카운터 | [[commands:high_speed_counter|TCNTOUT()]] | 32비트 확장 모드의 누적 상위 오버플로 값을 반환합니다. | +| Modbus RTU Slave | [[commands:reference:imodbusrtumem|ImodbusRTUMem()]] | Slave가 사용할 M·D 메모리 크기를 설정합니다. | 
-| Modbus RTU Slave | [[commands:communication|ImodbusRTUMem()]] | Slave가 사용할 M·D 메모리 크기를 설정합니다. | +::: | [[commands:reference:imodbusrtuadr|ImodbusRTUAdr()]] | M·D 메모리의 시작 주소를 설정합니다. | 
-Modbus RTU Slave | [[commands:communication|ImodbusRTUAdr()]] | M·D 메모리의 시작 주소를 설정합니다. | +::: | [[commands:reference:imodbusrtuinit|ImodbusRTUInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | 
-Modbus RTU Slave | [[commands:communication|ImodbusRTUInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | +::: | [[commands:reference:imodbusrtu|ImodbusRTU()]] | 수신 요청을 확인하고 Slave 응답을 처리합니다. | 
-Modbus RTU Slave | [[commands:communication|ImodbusRTU()]] | 수신 요청을 확인하고 Slave 응답을 처리합니다. | +| Modbus RTU Master | [[commands:reference:imodbusrtumasterinit|ImodbusRTUmasterInit()]] | Master 통신 포트와 보레이트를 설정합니다. | 
-| Modbus RTU Master | [[commands:communication|ImodbusRTUmasterInit()]] | Master 통신 포트와 보레이트를 설정합니다. | +::: | [[commands:reference:imodbusrtumaster|ImodbusRTUmaster()]] | 하나의 Master 요청을 즉시 실행합니다. | 
-Modbus RTU Master | [[commands:communication|ImodbusRTUmaster()]] | 하나의 Master 요청을 즉시 실행합니다. | +::: | [[commands:reference:imodbusrtumasteradd|ImodbusRTUmasterAdd()]] | 반복 실행할 Master 요청을 등록합니다. | 
-Modbus RTU Master | [[commands:communication|ImodbusRTUmasterAdd()]] | 반복 실행할 Master 요청을 등록합니다. | +::: | [[commands:reference:imodbusrtumasterrun|ImodbusRTUmasterRun()]] | 등록 요청 또는 지정한 단일 요청을 실행합니다. | 
-Modbus RTU Master | [[commands:communication|ImodbusRTUmasterRun()]] | 등록 요청 또는 지정한 단일 요청을 실행합니다. | +| LS산전 Cnet Slave | [[commands:reference:icnetmem|ICnetMem()]] | Cnet Slave가 사용할 M·D·R 메모리 크기를 설정합니다. | 
-| LS산전 Cnet Slave | [[commands:communication|ICnetMem()]] | Cnet Slave가 사용할 M·D·R 메모리 크기를 설정합니다. | +::: | [[commands:reference:icnetadr|ICnetAdr()]] | M·D·R 메모리의 시작 주소를 설정합니다. | 
-LS산전 Cnet Slave | [[commands:communication|ICnetAdr()]] | M·D·R 메모리의 시작 주소를 설정합니다. | +::: | [[commands:reference:icnetinit|ICnetInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | 
-LS산전 Cnet Slave | [[commands:communication|ICnetInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | +::: | [[commands:reference:icnet|ICnet()]] | 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다. | 
-LS산전 Cnet Slave | [[commands:communication|ICnet()]] | 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다. | +| Mitsubishi MC Protocol | [[commands:reference:imcmem|IMcMem()]] | MC Protocol에서 사용할 X·Y·M·D 메모리 크기를 설정합니다. | 
-| Mitsubishi MC Protocol | [[commands:communication|IMcMem()]] | MC Protocol에서 사용할 X·Y·M·D 메모리 크기를 설정합니다. | +::: | [[commands:reference:imcadr|IMcAdr()]] | X·Y·M·D 메모리의 시작 주소를 설정합니다. | 
-Mitsubishi MC Protocol | [[commands:communication|IMcAdr()]] | X·Y·M·D 메모리의 시작 주소를 설정합니다. | +::: | [[commands:reference:imcinit|IMcInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | 
-Mitsubishi MC Protocol | [[commands:communication|IMcInit()]] | 통신 포트, 국번과 보레이트를 설정합니다. | +::: | [[commands:reference:imcprotocol|IMcProtocol()]] | 수신 요청을 확인하고 MC Protocol 응답을 처리합니다. |
-Mitsubishi MC Protocol | [[commands:communication|IMcProtocol()]] | 수신 요청을 확인하고 MC Protocol 응답을 처리합니다. |+
  
-===== 기본 제어 명령어 =====+===== 디지털 입력 필터 ===== 
 + 
 +명령어 형식 ^ 반환값 ^ 사용 기준 ^ 
 +| [[commands:reference:idigitalread|IdigitalRead(pin, samples)]] | 필터링된 ''HIGH'' 또는 ''LOW'' | 모든 샘플이 같을 때만 상태를 갱신하고, 값이 섞이면 이전 안정 상태를 유지 | 
 +| [[commands:ibounce|Ibounce(pin, ms)]] | 안정화된 입력 상태 | ON과 OFF가 설정 시간 동안 유지될 때 상태 변경 | 
 +| [[commands:reference:ibounceon|IbounceOn(pin, ms)]] | ON 방향이 지연된 입력 상태 | OFF→ON 방향만 시간 필터 적용 | 
 +| [[commands:reference:ibounceoff|IbounceOff(pin, ms)]] | OFF 방향이 지연된 입력 상태 | ON→OFF 방향만 시간 필터 적용 | 
 + 
 +''IdigitalRead()''는 짧은 시간 동안 반복 샘플링하는 방식이고, ''Ibounce()''는 ''millis()'' 기준으로 입력이 안정된 시간을 확인하는 방식입니다. 기계식 스위치에는 보통 ''Ibounce()''가 알맞습니다. 
 + 
 +===== 에지 검출 =====
  
 ^ 명령어 형식 ^ 반환값 ^ 설명 ^ ^ 명령어 형식 ^ 반환값 ^ 설명 ^
-''Iup(id, input)'' | 상승 순간에만 ''true'' | OFF에서 ON으로 바뀌는 순간을 한 번 검출 | +[[commands:reference:iup|Iup(id, input)]] | 상승 순간에만 ''true'' | OFF에서 ON으로 바뀌는 순간을 한 번 검출 | 
-''Idown(id, input)'' | 하강 순간에만 ''true'' | ON에서 OFF로 바뀌는 순간을 한 번 검출 +[[commands:reference:idown|Idown(id, input)]] | 하강 순간에만 ''true'' | ON에서 OFF로 바뀌는 순간을 한 번 검출 |
-| ''Ialt(input, state)'' | 없음 | 입력 상승 순간마다 ''state'' 값을 ON/OFF 반전 | +
-| ''Iscale(x, inMin, inMax, outMin, outMax)'' | ''int32_t'' | 정수 입력 범위를 원하는 정수 범위로 변환 | +
-| ''Iscalef(x, inMin, inMax, outMin, outMax)'' | ''float'' | 소수점을 유지하여 실수 범위 변환 |+
  
-''Iup()''과 ''Idown()''의 ''id''는 각 에지 검출 상태를 구분합니다. 서로 다른 입력에 같은 ''id''를 사용하면 상태가 섞일 수 있습니다.+''id''는 각 에지 검출 상태를 구분합니다. 서로 다른 입력에 같은 ''id''를 사용하면 상태가 섞일 수 있습니다. 
 + 
 +===== 상태 반전 ===== 
 + 
 +^ 명령어 형식 ^ 반환값 ^ 설명 ^ 
 +| [[commands:reference:ialt|Ialt(input, state)]] | 없음 | 입력 상승 순간마다 ''state'' 값을 ON/OFF 반전 | 
 + 
 +다음 예제는 MPAINO-8A8R(T)의 첫 입력 ''0''과 첫 출력 ''64''를 사용합니다.
  
 <code cpp> <code cpp>
 bool lampState = false; bool lampState = false;
 +
 +void setup() {}
  
 void loop() { void loop() {
줄 163: 줄 187:
 </code> </code>
  
-===== 디지털 입력과 노이즈 필터 =====+===== 범위 변환 =====
  
-^ 명령어 형식 ^ 반환값 ^ 사용 기준 +^ 명령어 형식 ^ 반환값 ^ 설명 
-''IdigitalRead(pinsamples)'' 필터링된 ''HIGH'' 또는 ''LOW'' | 입력을 여러 번 즉시 읽어 짧은 노이즈를 줄임 | +[[commands:reference:iscale|Iscale(xinMin, inMax, outMin, outMax)]] | ''int32_t''정수 입력 범위를 원하는 수 범위로 환 
-| ''Ibounce(pin, ms)'' | 안화된 입력 상태 | ON과 OFF가 설정 시간 동안 유지될 때 상태 경 +[[commands:reference:iscalef|Iscalef(xinMin, inMax, outMin, outMax)]] | ''float''소수점을 유지하여 실수 범위 변환 |
-''IbounceOn(pinms)'' | ON 방향이 지연된 입력 상태 | OFF→ON 방향만 시간 필터 적용 | +
-| ''IbounceOff(pin, ms)''OFF 방향이 연된 입력 상태 | ON→OFF 방향만 시간 필터 적용 | +
-| ''digitalReset()'' | 없음 | 코어가 관리는 디지털 출력 상태 초기화 |+
  
-''IdigitalRead()''는 짧은 시간 동안 반복 샘플링하는 방식이고, ''Ibounce()''는 ''millis()'' 기준으로 입력이 안정된 시간을 확인하는 방식입니다. 기계식 스위치에는 보통 ''Ibounce()''가 알맞습니다. +===== 타이머 =====
- +
-===== PLC 스타일 타이머 =====+
  
 ^ 명령어 형식 ^ 동작 ^ ^ 명령어 형식 ^ 동작 ^
-''Iton(id, state, ms)'' | 입력이 설정 시간 동안 ON이면 출력 ON | +[[commands:reference:iton|Iton(id, state, ms)]] | 입력이 설정 시간 동안 ON이면 출력 ON | 
-''Itof(id, state, ms)'' | 입력이 OFF된 뒤 설정 시간이 지나면 출력 OFF | +[[commands:reference:itof|Itof(id, state, ms)]] | 입력이 OFF된 뒤 설정 시간이 지나면 출력 OFF | 
-''Itpl(id, state, ms)'' | 입력 상승 순간부터 설정 시간 동안 펄스 출력 | +[[commands:reference:itpl|Itpl(id, state, ms)]] | 입력 상승 순간부터 설정 시간 동안 펄스 출력 | 
-''Itmon(id, state, ms)'' | 실행 중 다시 입력되어도 연장되지 않는 단안정 펄스 | +[[commands:reference:itmon|Itmon(id, state, ms)]] | 실행 중 다시 입력되어도 연장되지 않는 단안정 펄스 | 
-''Itmr(id, state, ms, reset)'' | 입력 ON 시간을 누적하며 ''reset''으로 초기화 +[[commands:reference:itmr|Itmr(id, state, ms, reset)]] | 입력 ON 시간을 누적하며 ''reset''으로 초기화 |
-| ''IgetTime(id)'', ''IgetState(id)'' | 경과시간과 출력 상태 확인 |+
  
 PLC 스타일 타이머는 ''delay()''처럼 프로그램을 멈추지 않습니다. 대신 ''loop()''가 반복될 때마다 계속 호출해야 합니다. 같은 ''id''를 서로 다른 타이머에 중복 사용하지 마십시오. PLC 스타일 타이머는 ''delay()''처럼 프로그램을 멈추지 않습니다. 대신 ''loop()''가 반복될 때마다 계속 호출해야 합니다. 같은 ''id''를 서로 다른 타이머에 중복 사용하지 마십시오.
 +
 +다음 예제는 MPAINO-8A8R(T)의 첫 입력 ''0''과 첫 출력 ''64''를 사용합니다.
  
 <code cpp> <code cpp>
 +void setup() {}
 +
 void loop() { void loop() {
   bool run = Ibounce(0, 30);   bool run = Ibounce(0, 30);
줄 194: 줄 216:
 </code> </code>
  
-===== 주기 콜백 타이머 =====+===== 타이머 상태 ===== 
 + 
 +^ 명령어 형식 ^ 반환값 ^ 설명 ^ 
 +| [[commands:reference:igettime|IgetTime(id)]] | ''unsigned long'' | 지정한 타이머의 현재 경과시간 반환 | 
 +| [[commands:reference:igetstate|IgetState(id)]] | ''bool'' | 지정한 타이머의 현재 출력 상태 반환 | 
 + 
 +===== 콜백 타이머 =====
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''ItimerSet(intervalMs, callback)'' | 기본 타이머의 실행 주기와 콜백 함수 설정 | +[[commands:reference:itimerset|ItimerSet(intervalMs, callback)]] | 기본 타이머의 실행 주기와 콜백 함수 설정 | 
-''ItimerSet(timerNo, intervalMs, callback)'' | 하드웨어 타이머 번호를 지정하여 설정 | +[[commands:reference:itimerset|ItimerSet(timerNo, intervalMs, callback)]] | 하드웨어 타이머 번호를 지정하여 설정 | 
-''ItimerStart()''''ItimerStart(timerNo)'' | 콜백 타이머 시작 | +[[commands:reference:itimerstart|ItimerStart()]][[commands:reference:itimerstart|ItimerStart(timerNo)]] | 콜백 타이머 시작 | 
-''ItimerStop()''''ItimerStop(timerNo)'' | 콜백 타이머 정지 | +[[commands:reference:itimerstop|ItimerStop()]][[commands:reference:itimerstop|ItimerStop(timerNo)]] | 콜백 타이머 정지 | 
-''ItimerStopAll()'' | 콜백 타이머 전체 정지 | +[[commands:reference:itimerstopall|ItimerStopAll()]] | 콜백 타이머 전체 정지 | 
-''ItimerState()''''ItimerState(timerNo)'' | 실행 상태 확인 |+[[commands:reference:itimerstate|ItimerState()]][[commands:reference:itimerstate|ItimerState(timerNo)]] | 실행 상태 확인 |
  
 콜백 함수는 인터럽트 안에서 실행됩니다. 콜백에서는 플래그나 짧은 카운트만 변경하고 ''delay()'', Serial 출력, I²C, SPI와 긴 계산을 사용하지 마십시오. 콜백 함수는 인터럽트 안에서 실행됩니다. 콜백에서는 플래그나 짧은 카운트만 변경하고 ''delay()'', Serial 출력, I²C, SPI와 긴 계산을 사용하지 마십시오.
줄 226: 줄 254:
 </code> </code>
  
-===== 카운터와 데이터 버퍼 =====+===== 카운터 =====
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''Ictu(id, CU, RESET, PV)'' | ''CU'' 상승 에지를 세어 ''PV''에 도달하면 ON | +[[commands:reference:ictu|Ictu(id, CU, RESET, PV)]] | ''CU'' 상승 에지를 세어 ''PV''에 도달하면 ON | 
-''Ictd(id, CD, LOAD, PV)'' | ''LOAD''로 값을 불러온 뒤 ''CD'' 상승 에지마다 감소 | +[[commands:reference:ictd|Ictd(id, CD, LOAD, PV)]] | ''LOAD''로 값을 불러온 뒤 ''CD'' 상승 에지마다 감소 | 
-''Ictud(id, CU, CD, RESET, LOAD, PV)'' | 증가와 감소를 함께 처리 | +[[commands:reference:ictud|Ictud(id, CU, CD, RESET, LOAD, PV)]] | 증가와 감소를 함께 처리 | 
-''IgetCount(id)''''IsetCount(id, value)'' | 현재 카운트값 조회와 변경 | +[[commands:reference:igetcount|IgetCount(id)]][[commands:reference:isetcount|IsetCount(id, value)]] | 현재 카운트값 조회와 변경 | 
-''IctudDownState(id)'' | Up/Down 카운터의 하한 완료 상태 확인 +[[commands:reference:ictuddownstate|IctudDownState(id)]] | Up/Down 카운터의 하한 완료 상태 확인 |
-| ''FIFO(...)'' | 먼저 저장한 16비트 데이터를 먼저 꺼내는 버퍼 | +
-| ''FILO(...)'' | 나중에 저장한 16비트 데이터를 먼저 꺼내는 버퍼 |+
  
 카운터 명령어는 ''loop()''에서 계속 호출합니다. ''id''는 다른 카운터와 중복하지 않게 배정합니다. 카운터 명령어는 ''loop()''에서 계속 호출합니다. ''id''는 다른 카운터와 중복하지 않게 배정합니다.
  
-===== 아날로그 입력과 범위 변환 =====+===== 데이터 버퍼 ===== 
 + 
 +^ 명령어 형식 ^ 설명 ^ 
 +| [[commands:reference:fifo|FIFO(...)]] | 저장한 순서대로 16비트 데이터를 꺼내는 버퍼 | 
 +| [[commands:reference:filo|FILO(...)]] | 나중에 저장한 16비트 데이터를 먼저 꺼내는 버퍼 | 
 + 
 +===== 아날로그 입력 ===== 
 + 
 +^ 명령어 형식 ^ 반환값·용도 ^ 
 +| [[commands:reference:analogreadinit|analogReadInit(sps)]] | MPAINO ADS1118 아날로그 모듈의 샘플링 속도 설정 | 
 +| [[commands:reference:analogread|analogRead(ch)]] | 선택 채널의 원시 아날로그 값 읽기 | 
 +| [[commands:reference:analogreadavg|analogReadAvg(ch, samples)]], [[commands:reference:analogreadavgf|analogReadAvgf(ch, samples)]] | 정수 또는 실수 이동평균 입력 | 
 + 
 +===== 아날로그 입력 필터 ===== 
 + 
 +^ 명령어 형식 ^ 반환값·용도 ^ 
 +| [[commands:reference:ianalogfilter|IanalogFilter(id, raw, samples)]] | 사용자가 전달한 임의 값을 이동평균 처리 | 
 + 
 +===== 아날로그 범위 변환 ===== 
 + 
 +^ 명령어 형식 ^ 반환값·용도 ^ 
 +| [[commands:reference:ianalogread|IanalogRead(ch, min, max)]], [[commands:reference:ianalogreadf|IanalogReadf(ch, min, max)]] | 입력을 사용자 정수·실수 범위로 변환 | 
 + 
 +===== 4~20mA 입력 ===== 
 + 
 +^ 명령어 형식 ^ 반환값·용도 ^ 
 +| [[commands:reference:analogread2|analogRead2(ch)]] | 4~20mA 보정 입력값 읽기 | 
 +| [[commands:reference:analogread2avg|analogRead2Avg(ch, samples)]], [[commands:reference:analogread2avgf|analogRead2Avgf(ch, samples)]] | 4~20mA 입력값의 정수 또는 실수 평균 반환 | 
 + 
 +===== 4~20mA 범위 변환 =====
  
 ^ 명령어 형식 ^ 반환값·용도 ^ ^ 명령어 형식 ^ 반환값·용도 ^
-''analogReadInit(sps)'' MPAINO ADS1118 아날로그 모듈의 샘플링 속도 설정 | +[[commands:reference:ianalogread2|IanalogRead2(ch, min, max)]][[commands:reference:ianalogread2f|IanalogRead2f(ch, min, max)]] | 4~20mA 입력을 사용자 범위로 변환 |
-| ''analogRead(ch)'' | 선택 채널의 원시 아날로그 값 읽기 | +
-| ''analogReadAvg(ch, samples)'', ''analogReadAvgf(ch, samples)'' | 정수 또는 실수 이동평균 입력 | +
-| ''IanalogFilter(id, raw, samples)'' | 사용자가 전달한 임의 값을 이동평균 처리 | +
-| ''IanalogRead(ch, min, max)''''IanalogReadf(ch, min, max)'' 입력을 사용자 정수·실수 범위로 변환 | +
-| ''analogRead2(ch)'', ''analogRead2Avg(ch, samples)'' | 4~20mA 보정 입력과 이동평균 | +
-| ''IanalogRead2(ch, min, max)'', ''IanalogRead2f(ch, min, max)'' | 4~20mA 입력을 사용자 범위로 변환 |+
  
 MPAINO에서는 장착된 아날로그 입력 모듈과 딥스위치의 전압·전류 범위를 먼저 확인합니다. 샘플링 속도를 높이면 응답은 빨라지지만 노이즈와 측정 특성이 달라질 수 있습니다. MPAINO에서는 장착된 아날로그 입력 모듈과 딥스위치의 전압·전류 범위를 먼저 확인합니다. 샘플링 속도를 높이면 응답은 빨라지지만 노이즈와 측정 특성이 달라질 수 있습니다.
줄 268: 줄 317:
  
 ^ 명령어 형식 ^ 반환값 ^ 대상 ^ ^ 명령어 형식 ^ 반환값 ^ 대상 ^
-''ntcRead(ch)'' | 0.1℃ 단위 정수 | NTC 3950 10kΩ 온도센서 입력 | +[[commands:reference:ntcread|ntcRead(ch)]] | 0.1℃ 단위 정수 | NTC 3950 10kΩ 온도센서 입력 | 
-''ntcReadf(ch)'' | ℃ 단위 ''float'' | NTC 3950 10kΩ 온도센서 입력 | +[[commands:reference:ntcreadf|ntcReadf(ch)]] | ℃ 단위 ''float'' | NTC 3950 10kΩ 온도센서 입력 | 
-''pt100Read(ch)'' | 0.1℃ 단위 정수 | MPAINO PT100 입력 모듈 |+[[commands:reference:pt100read|pt100Read(ch)]] | 0.1℃ 단위 정수 | MPAINO PT100 입력 모듈 |
  
 NTC와 PT100은 센서 종류와 입력 회로가 다릅니다. 서로 바꾸어 사용하지 말고 선택 제품에 해당 입력 기능이 있는지 확인하십시오. NTC와 PT100은 센서 종류와 입력 회로가 다릅니다. 서로 바꾸어 사용하지 말고 선택 제품에 해당 입력 기능이 있는지 확인하십시오.
  
-===== 아날로그 출력과 PWM =====+===== 아날로그 출력 =====
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''analogWriteInit(ch, top, prescaler)'' | PWM 타이머의 분해능과 분주비 설정 | +[[commands:reference:analogwriteinit|analogWriteInit(ch, top, prescaler)]] | PWM 타이머의 분해능과 분주비 설정 | 
-''analogWriteFreq(ch, hz)''''analogWriteMax(ch)'' | PWM 주파수 설정과 현재 최댓값 확인 | +[[commands:reference:analogwritefreq|analogWriteFreq(ch, hz)]][[commands:reference:analogwritemax|analogWriteMax(ch)]] | PWM 주파수 설정과 현재 최댓값 확인 | 
-''IanalogWriteInit(ch, max, min, mode)'' | MPAINO 아날로그 출력 범위 초기화 | +[[commands:reference:ianalogwriteinit|IanalogWriteInit(ch, max, min, mode)]] | MPAINO 아날로그 출력 범위 초기화 | 
-''IanalogWrite(ch, min, max, value)''''IanalogWritef(...)'' | 정수·실수 사용자값을 아날로그 출력 범위로 변환 | +[[commands:reference:ianalogwrite|IanalogWrite(ch, min, max, value)]][[commands:reference:ianalogwritef|IanalogWritef(...)]] | 정수·실수 사용자값을 아날로그 출력 범위로 변환 | 
-''analogWrite2(ch, value)'', ''IanalogWrite2(...)'' MPAINO 4~20mA 출력 변환 | + 
-''PWM(pin, value, bit16)'' | 8비트 또는 16비트 PWM 출력 | +===== 4~20mA 출력 ===== 
-''FDPWM(pin, hz, duty)'' | 주파수와 Duty 비율을 지정한 PWM 출력 | + 
-''NPWM_BEGIN(pin, hz, duty, count)''''NPWM(pin)'' | 지정한 개수만큼 펄스 출력 +^ 명령어 형식 ^ 설명 ^ 
-| ''PWMOFF(pin, off)'', ''PWM_RESET()'' | 개별 PWM 정지 또는 전체 초기화 |+| [[commands:reference:analogwrite2|analogWrite2(ch, value)]] | 지정한 채널에 4~20mA 변환용 원시값 출력 | 
 +| [[commands:reference:ianalogwrite2|IanalogWrite2(ch, min, max, value)]], [[commands:reference:ianalogwrite2f|IanalogWrite2f(...)]] 정수·실수 사용자값을 4~20mA 출력 범위로 변환 | 
 + 
 +===== PWM 출력 ===== 
 + 
 +^ 명령어 형식 ^ 설명 ^ 
 +| [[commands:reference:pwm|PWM(pin, value, bit16)]] | 8비트 또는 16비트 PWM 출력 | 
 +[[commands:reference:fdpwm|FDPWM(pin, hz, duty)]] | 주파수와 Duty 비율을 지정한 PWM 출력 | 
 +[[commands:reference:pwmoff|PWMOFF(pin, off)]], [[commands:reference:pwm_reset|PWM_RESET()]] | 개별 PWM 정지 또는 전체 초기화 | 
 + 
 +===== 펄스 출력 ===== 
 + 
 +^ 명령어 형식 ^ 설명 ^ 
 +| [[commands:reference:npwm_begin|NPWM_BEGIN(pin, hz, duty, count)]][[commands:reference:npwm|NPWM(pin)]] | 지정한 개수만큼 펄스 출력 |
  
 PWM, 고속펄스, ''analogWrite()''와 콜백 타이머는 같은 하드웨어 타이머를 공유할 수 있습니다. 여러 기능을 함께 사용할 때는 해당 제품의 타이머 지원표를 확인하십시오. PWM, 고속펄스, ''analogWrite()''와 콜백 타이머는 같은 하드웨어 타이머를 공유할 수 있습니다. 여러 기능을 함께 사용할 때는 해당 제품의 타이머 지원표를 확인하십시오.
줄 292: 줄 354:
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''IpidSet(id, kp, ki, kd, sampleMs, outMin, outMax)'' | PID 계수, 계산 주기와 출력 범위 설정 | +[[commands:reference:ipidset|IpidSet(id, kp, ki, kd, sampleMs, outMin, outMax)]] | PID 계수, 계산 주기와 출력 범위 설정 | 
-''IpidRun(id, pv, sv)'' | 현재값 ''PV''와 설정값 ''SV''로 출력 계산 | +[[commands:reference:ipidrun|IpidRun(id, pv, sv)]] | 현재값 ''PV''와 설정값 ''SV''로 출력 계산 | 
-''IpidReset(id)'' | 내부 상태 초기화 | +[[commands:reference:ipidreset|IpidReset(id)]] | 내부 상태 초기화 | 
-''IpidReverse(id, reverse)'' | 정동작 또는 역동작 선택 | +[[commands:reference:ipidreverse|IpidReverse(id, reverse)]] | 정동작 또는 역동작 선택 | 
-''IpidItermLimit(id, min, max)'' | 적분항 범위 제한 | +[[commands:reference:ipiditermlimit|IpidItermLimit(id, min, max)]] | 적분항 범위 제한 | 
-''IpidOutput(id)'' | 마지막 출력값 확인 |+[[commands:reference:ipidoutput|IpidOutput(id)]] | 마지막 출력값 확인 |
  
 <code cpp> <code cpp>
줄 313: 줄 375:
 PID 출력은 계산값일 뿐 안전장치가 아닙니다. 센서 단선, 과온, 출력 고착과 비상정지는 별도의 안전회로로 처리하십시오. PID 출력은 계산값일 뿐 안전장치가 아닙니다. 센서 단선, 과온, 출력 고착과 비상정지는 별도의 안전회로로 처리하십시오.
  
-===== 표시 장치와 RTC =====+===== TM1637 FND =====
  
-기능 ^ 주요 명령어 ^ 설명 ^ +대상 ^ 주요 명령어 ^ 설명 ^ 
-| TM1637 4자리 FND | ''IsegBegin()''''IsegBrightness()''''IsegDecimal()''''IsegHex()''''IsegClear()'' | 최대 7개 장치를 ''device'' 번호로 구분 | +| TM1637 4자리 FND | [[commands:reference:isegbegin|IsegBegin()]][[commands:reference:isegbrightness|IsegBrightness()]][[commands:reference:isegdecimal|IsegDecimal()]][[commands:reference:iseghex|IsegHex()]][[commands:reference:isegclear|IsegClear()]] | 최대 7개 장치를 ''device'' 번호로 구분 | 
-| PCF8574 문자 LCD | ''IclcdBegin()''''IclcdSetCursor()''''IclcdPrint()''''IclcdClear()'' | 최대 4개 LCD를 ''device'' 번호로 구분 | + 
-| DS3231 RTC | ''IrtcBegin()''''IrtcRead()''''IrtcSet()''''IrtcGetTemperature()''''IrtcSetAlarm1()'' | 날짜·시간, 온도, 알람과 주파수 출력 사용 |+===== 문자 LCD ===== 
 + 
 +^ 대상 ^ 주요 명령어 ^ 설명 ^ 
 +| PCF8574 문자 LCD | [[commands:reference:iclcdbegin|IclcdBegin()]][[commands:reference:iclcdsetcursor|IclcdSetCursor()]][[commands:reference:iclcdprint|IclcdPrint()]][[commands:reference:iclcdclear|IclcdClear()]] | 최대 4개 LCD를 ''device'' 번호로 구분 | 
 + 
 +===== RTC ===== 
 + 
 +^ 대상 ^ 주요 명령어 ^ 설명 ^ 
 +| DS3231 RTC | [[commands:reference:irtcbegin|IrtcBegin()]][[commands:reference:irtcread|IrtcRead()]][[commands:reference:irtcset|IrtcSet()]][[commands:reference:irtcgettemperature|IrtcGetTemperature()]][[commands:reference:irtcsetalarm1|IrtcSetAlarm1()]] | 날짜·시간, 온도, 알람과 주파수 출력 사용 |
  
 표시 장치와 RTC는 각각의 ''Begin'' 명령어를 먼저 호출합니다. I²C 주소, 연결 핀과 다른 기능의 공유 여부를 확인하십시오. 표시 장치와 RTC는 각각의 ''Begin'' 명령어를 먼저 호출합니다. I²C 주소, 연결 핀과 다른 기능의 공유 여부를 확인하십시오.
  
-===== Debug와 Watchdog =====+===== 디버그 =====
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''debugStart()''''debugStart(baud)''''debugStart(serial, baud)'' | Debug 출력 시작과 포트 선택 | +[[commands:reference:debugstart|debugStart()]][[commands:reference:debugstart|debugStart(baud)]][[commands:reference:debugstart|debugStart(serial, baud)]] | Debug 출력 시작과 포트 선택 | 
-''debug()''''debugln()'' | Debug가 활성화된 경우에만 값 출력 | +[[commands:reference:debug|debug()]][[commands:reference:debugln|debugln()]] | Debug가 활성화된 경우에만 값 출력 | 
-''debugStop()''''debugState()'' | Debug 중지와 상태 확인 | +[[commands:reference:debugstop|debugStop()]][[commands:reference:debugstate|debugState()]] | Debug 중지와 상태 확인 | 
-''WDT_ENABLE(time)'' | Watchdog 제한시간 설정 및 활성화 | + 
-''WDT()''''WDT_DISABLE()'' | Watchdog 리셋과 비활성화 |+===== Watchdog ===== 
 + 
 +^ 명령어 형식 ^ 설명 ^ 
 +[[commands:reference:wdt_enable|WDT_ENABLE(time)]] | Watchdog 제한시간 설정 및 활성화 | 
 +[[commands:reference:wdt|WDT()]][[commands:reference:wdt_disable|WDT_DISABLE()]] | Watchdog 리셋과 비활성화 |
  
 Watchdog를 활성화한 뒤 ''WDT()'' 호출이 늦어지면 보드가 재시작됩니다. 통신 대기와 긴 반복문의 최악 실행시간을 먼저 확인하십시오. Watchdog를 활성화한 뒤 ''WDT()'' 호출이 늦어지면 보드가 재시작됩니다. 통신 대기와 긴 반복문의 최악 실행시간을 먼저 확인하십시오.
줄 336: 줄 410:
  
 ^ 명령어 형식 ^ 설명 ^ ^ 명령어 형식 ^ 설명 ^
-''TCNTSETUP(timerNo, bit32)'' | 타이머 외부 클럭 입력과 32비트 확장 모드 설정 | +[[commands:reference:tcntsetup|TCNTSETUP(timerNo, bit32)]] | 타이머 외부 클럭 입력과 32비트 확장 모드 설정 | 
-''TCNTOUT(timerNo)'' | 32비트 확장 모드에서 누적된 상위 오버플로 횟수 확인 |+[[commands:reference:tcntout|TCNTOUT(timerNo)]] | 32비트 확장 모드에서 누적된 상위 오버플로 횟수 확인 |
  
 현재 타이머 외부 클럭 방식의 전용 고속카운터 지원 제품은 MPINO-8A8R과 MPINO-16A8R8T입니다. 다른 제품은 제품별 인터럽트 입력을 확인해 ''attachInterrupt()'' 방식을 사용합니다. 현재 타이머 외부 클럭 방식의 전용 고속카운터 지원 제품은 MPINO-8A8R과 MPINO-16A8R8T입니다. 다른 제품은 제품별 인터럽트 입력을 확인해 ''attachInterrupt()'' 방식을 사용합니다.
  
-===== 산업용 통신 =====+===== Modbus RTU Slave =====
  
-^ 프로토콜 ^ 초기 설정 ^ ''loop()'' 실행 명령어 ^ +^ 초기 설정 ^ ''loop()'' 실행 명령어 ^ 
-Modbus RTU Slave ''ImodbusRTUMem()''''ImodbusRTUAdr()''''ImodbusRTUInit()'' ''ImodbusRTU()''+[[commands:reference:imodbusrtumem|ImodbusRTUMem()]][[commands:reference:imodbusrtuadr|ImodbusRTUAdr()]][[commands:reference:imodbusrtuinit|ImodbusRTUInit()]] | [[commands:reference:imodbusrtu|ImodbusRTU()]] |
-| Modbus RTU Master | ''ImodbusRTUmasterInit()'', ''ImodbusRTUmasterAdd()'' | ''ImodbusRTUmaster()'' 또는 ''ImodbusRTUmasterRun()''+
-| LS산전 Cnet Slave | ''ICnetMem()'', ''ICnetAdr()'', ''ICnetInit()'' | ''ICnet()''+
-| Mitsubishi MC Protocol Slave | ''IMcMem()'', ''IMcAdr()'', ''IMcInit()'' | ''IMcProtocol()'' |+
  
 <code cpp> <code cpp>
줄 360: 줄 431:
 } }
 </code> </code>
 +
 +===== Modbus RTU Master =====
 +
 +^ 초기 설정 ^ 실행 명령어 ^
 +| [[commands:reference:imodbusrtumasterinit|ImodbusRTUmasterInit()]], [[commands:reference:imodbusrtumasteradd|ImodbusRTUmasterAdd()]] | [[commands:reference:imodbusrtumaster|ImodbusRTUmaster()]] 또는 [[commands:reference:imodbusrtumasterrun|ImodbusRTUmasterRun()]] |
 +
 +===== LS산전 Cnet Slave =====
 +
 +^ 초기 설정 ^ ''loop()'' 실행 명령어 ^
 +| [[commands:reference:icnetmem|ICnetMem()]], [[commands:reference:icnetadr|ICnetAdr()]], [[commands:reference:icnetinit|ICnetInit()]] | [[commands:reference:icnet|ICnet()]] |
 +
 +===== Mitsubishi MC Protocol =====
 +
 +^ 초기 설정 ^ ''loop()'' 실행 명령어 ^
 +| [[commands:reference:imcmem|IMcMem()]], [[commands:reference:imcadr|IMcAdr()]], [[commands:reference:imcinit|IMcInit()]] | [[commands:reference:imcprotocol|IMcProtocol()]] |
  
 제품별 RS-232, RS-485와 UART의 ''Serial'' 번호가 다를 수 있습니다. 통신 전에 포트 역할, 전기 규격, 보레이트, 국번, 종단저항과 딥스위치 설정을 확인하십시오. 제품별 RS-232, RS-485와 UART의 ''Serial'' 번호가 다를 수 있습니다. 통신 전에 포트 역할, 전기 규격, 보레이트, 국번, 종단저항과 딥스위치 설정을 확인하십시오.
줄 371: 줄 457:
 const uint8_t outputChannel = 64; const uint8_t outputChannel = 64;
  
-void setup() { +void setup() {}
-  pinMode(inputChannel, INPUT); +
-  pinMode(outputChannel, OUTPUT); +
-}+
  
 void loop() { void loop() {
줄 404: 줄 487:
  
   * [[products:overview|제품 선택 가이드]]   * [[products:overview|제품 선택 가이드]]
-  * [[products:mpino|MPINO 제품 특징과 사용 흐름]]+  * [[products:mpino_series|MPINO 제품 특징과 사용 흐름]]
   * [[products:mpaino|MPAINO 모듈 구성과 논리 채널]]   * [[products:mpaino|MPAINO 모듈 구성과 논리 채널]]
   * [[guide:getting_started|Arduino IDE로 처음 시작하기]]   * [[guide:getting_started|Arduino IDE로 처음 시작하기]]
-  * [[guide:wiring|입출력 배선 원칙]] +  * [[guide:wiring|첫 결선과 입출력 확인]] 
-  * [[safety|안전 및 설치 주의사항]]+  * [[:safety|안전 및 설치 주의사항]]
  
commands/builtin.1788185842.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki