products:mpino_8a8r
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| products:mpino_8a8r [2026/09/17 12:16] – 바깥 편집 127.0.0.1 | products:mpino_8a8r [2026/11/01 21:38] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 19: | 줄 19: | ||
| | 릴레이 출력 | | 릴레이 출력 | ||
| | 아날로그 입력 | | 아날로그 입력 | ||
| - | | 고속카운터 입력 | + | | 고속카운터 입력 |
| | 인터럽트 입력 | | 인터럽트 입력 | ||
| | PWM 출력 | | PWM 출력 | ||
| 줄 35: | 줄 35: | ||
| ===== 디지털 입력 ===== | ===== 디지털 입력 ===== | ||
| - | [[: | + | [[: |
| ^ 그룹 ^ 단자 ^ Arduino 핀 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ | ^ 그룹 ^ 단자 ^ Arduino 핀 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ | ||
| | COM0 | I(22)~I(29) | D22~D29 | 디지털 입력 8점, COM0 공유 | {{: | | COM0 | I(22)~I(29) | D22~D29 | 디지털 입력 8점, COM0 공유 | {{: | ||
| 줄 71: | 줄 71: | ||
| </ | </ | ||
| - | IdigitalRead(22, | + | IdigitalRead(22, |
| <code cpp> | <code cpp> | ||
| 줄 79: | 줄 79: | ||
| void loop() { | void loop() { | ||
| - | const bool inputOn = IdigitalRead(22, | + | const bool inputOn = IdigitalRead(22, |
| Serial.println(inputOn ? F("D22 ON") : F("D22 OFF" | Serial.println(inputOn ? F("D22 ON") : F("D22 OFF" | ||
| delay(200); | delay(200); | ||
| 줄 135: | 줄 135: | ||
| </ | </ | ||
| - | Ialt(input, state)는 입력이 OFF에서 ON으로 바뀔 때마다 state를 반전합니다. D22을 한 번 누르면 D62가 ON, 다시 누르면 OFF가 되며 누르고 있는 동안은 유지됩니다. 예제는 Ibounce(22, 30)로 채터링을 걸러 Ialt()에 전달합니다. outputOn은 호출 사이에 유지되는 전역 변수이며, | + | Ialt(input, state)는 입력이 OFF에서 ON으로 바뀔 때마다 state를 반전합니다. D22를 한 번 누르면 D62가 ON, 다시 누르면 OFF가 되며 누르고 있는 동안은 유지됩니다. 예제는 Ibounce(22, 30)로 채터링을 걸러 Ialt()에 전달합니다. outputOn은 호출 사이에 유지되는 전역 변수이며, |
| <code cpp> | <code cpp> | ||
| 줄 157: | 줄 157: | ||
| </ | </ | ||
| + | |||
| + | ===== STATUS LED ===== | ||
| + | |||
| + | MPINO-8A8R의 STATUS LED는 보드에 실장된 상태 표시등입니다. 사용자 프로그램에서 보드의 동작 상태를 표시할 때 사용할 수 있습니다. | ||
| + | |||
| + | STATUS LED는 디지털 핀 D13에 연결되어 있습니다. 스케치에서는 D13 대신 '' | ||
| + | |||
| + | **주의사항: | ||
| + | |||
| + | ==== 예제 · STATUS LED 점멸 ==== | ||
| + | |||
| + | 다음 예제는 STATUS LED를 0.5초 간격으로 켜고 끕니다. | ||
| + | |||
| + | <code cpp> | ||
| + | void setup() { | ||
| + | pinMode(LED_BUILTIN, | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | digitalWrite(LED_BUILTIN, | ||
| + | delay(500); | ||
| + | digitalWrite(LED_BUILTIN, | ||
| + | delay(500); | ||
| + | } | ||
| + | </ | ||
| ===== 릴레이 출력 ===== | ===== 릴레이 출력 ===== | ||
| - | [[: | + | [[: |
| ^ 그룹 ^ 단자 ^ Arduino 핀 ^ 접점 정격 ^ 단자대 및 결선 예시 ^ | ^ 그룹 ^ 단자 ^ Arduino 핀 ^ 접점 정격 ^ 단자대 및 결선 예시 ^ | ||
| | COM2 | R(62), R(63) | D62, D63 | AC 250V 또는 DC 30V, 최대 5A/1점 | {{: | | COM2 | R(62), R(63) | D62, D63 | AC 250V 또는 DC 30V, 최대 5A/1점 | {{: | ||
| 줄 167: | 줄 192: | ||
| | COM5 | R(68), R(69) | D68, D69 | AC 250V 또는 DC 30V, 최대 5A/1점 | ::: | | | COM5 | R(68), R(69) | D68, D69 | AC 250V 또는 DC 30V, 최대 5A/1점 | ::: | | ||
| - | 릴레이 출력은 각 COM 단자와 출력 단자를 물리적으로 연결하는 무전압 접점입니다. 부하 전원은 별도로 연결합니다. | + | 릴레이 출력은 각 COM 단자와 출력 단자를 물리적으로 연결하는 무전압 접점입니다. 부하 전원은 별도로 연결해야 |
| ==== 예제 프로그램 · 릴레이 출력 ==== | ==== 예제 프로그램 · 릴레이 출력 ==== | ||
| 줄 368: | 줄 393: | ||
| | 절연 고속카운터 | TCNT1(D79), TCNT5(D47), COM1 | 2점 | | | 절연 고속카운터 | TCNT1(D79), TCNT5(D47), COM1 | 2점 | | ||
| | 외부 인터럽트 | PWM2(D2), PWM3(D3), SDA(D20), SCL(D21) | 4점 | | | 외부 인터럽트 | PWM2(D2), PWM3(D3), SDA(D20), SCL(D21) | 4점 | | ||
| - | | 엔코더 입력 | A상: SDA(D20), B상: SCL(D21) | 1채널 | | + | | 엔코더 입력 | A상: SDA(D20), B상: SCL(D21) | 1채널, 입력 주파수: 최소 50kHz 이상 |
| TCNT1과 TCNT5는 TIMER1·TIMER5의 외부 클럭 입력으로 사용합니다. SDA와 SCL을 엔코더 입력으로 사용하면 I²C 통신을 동시에 사용할 수 없습니다. | TCNT1과 TCNT5는 TIMER1·TIMER5의 외부 클럭 입력으로 사용합니다. SDA와 SCL을 엔코더 입력으로 사용하면 I²C 통신을 동시에 사용할 수 없습니다. | ||
| 줄 473: | 줄 498: | ||
| ==== 예제 프로그램 · 엔코더 입력 ==== | ==== 예제 프로그램 · 엔코더 입력 ==== | ||
| - | A상은 SDA(D20), B상은 SCL(D21)에 연결합니다. 4.7kΩ 풀업 (SDA/ | + | A상은 SDA(D20), B상은 SCL(D21)에 연결해주시기 바랍니다. 4.7kΩ 풀업 (SDA/ |
| <code cpp> | <code cpp> | ||
| 줄 733: | 줄 758: | ||
| D22 상태를 M[0], A0 원시값(0~1023)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-232(Serial1), | D22 상태를 M[0], A0 원시값(0~1023)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-232(Serial1), | ||
| - | M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, | + | M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, |
| <code cpp> | <code cpp> | ||
| 줄 773: | 줄 798: | ||
| </ | </ | ||
| - | RS-232(Serial1)로 상대 슬레이브의 홀딩 레지스터 1개를 1초마다 읽습니다. 상대 기기는 국번 1, 9600bps, 8N1, FC03·실제 시작 주소 0으로 준비합니다. 응답은 received[0]에 저장하며 성공한 경우에만 표시합니다. 오류 코드는 16진수로 표시합니다. 위 슬레이브 예제와는 별도 스케치이며, | + | RS-232(Serial1)로 상대 슬레이브의 홀딩 레지스터 1개를 1초마다 읽습니다. 상대 기기는 국번 1, 9600bps, 8N1, FC03·실제 시작 주소 0으로 준비합니다. 응답은 received[0]에 저장하며 성공한 경우에만 표시합니다. 오류 코드는 16진수로 표시합니다. 위 슬레이브 예제와는 별도 스케치이며, |
| <code cpp> | <code cpp> | ||
| 줄 804: | 줄 829: | ||
| **관련 내장 명령어** | **관련 내장 명령어** | ||
| - | === 함수 예제 · LS산전 Cnet SLave: ICnetMem(), ICnetAdr(), ICnetInit(), | + | === 함수 예제 · LS산전 Cnet Slave: ICnetMem(), ICnetAdr(), ICnetInit(), |
| **함수 원형** | **함수 원형** | ||
| 줄 815: | 줄 840: | ||
| </ | </ | ||
| - | D22 상태를 M[0], A0 원시값(0~1023)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정합니다. 비트는 %MX00000(M[0]), | + | D22 상태를 M[0], A0 원시값(0~1023)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정해주시기 바랍니다. 비트는 %MX00000(M[0]), |
| - | M·D·R은 코어가 제공하는 공유 전역 메모리이며, | + | M·D·R은 코어가 제공하는 공유 전역 메모리이며, |
| <code cpp> | <code cpp> | ||
products/mpino_8a8r.1789615016.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
