사용자 도구

사이트 도구


products:mpaino_64a64r

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
products:mpaino_64a64r [2026/09/07 18:23] – 바깥 편집 127.0.0.1products:mpaino_64a64r [2026/10/25 11:33] (현재) – 바깥 편집 127.0.0.1
줄 6: 줄 6:
  
 [[products:mpaino_x|아날로그 입력 X모듈 상세 안내 — DIP 설정·배선·프로그램 예제 →]] [[products:mpaino_x|아날로그 입력 X모듈 상세 안내 — DIP 설정·배선·프로그램 예제 →]]
 +[[products:mpaino_f|PT100 입력 F모듈 상세 안내 — 결선·채널·프로그램 예제 →]]
 +[[products:mpaino_y|아날로그 출력 Y모듈 상세 안내 — DIP 설정·배선·프로그램 예제 →]]
 +[[products:mpaino_k|고속펄스 출력 K모듈 상세 안내 — 채널·Timer·프로그램 예제 →]]
  
 MPAINO-64A64R는 디지털 입력 64점과 릴레이 출력 64점을 제공합니다. MPAINO-64A64R는 디지털 입력 64점과 릴레이 출력 64점을 제공합니다.
  
 Arduino IDE(Arduino C/C++) 또는 MPINO STUDIO 2(Arduino C/C++ & 래더로직)로 프로그램할 수 있습니다. Arduino IDE(Arduino C/C++) 또는 MPINO STUDIO 2(Arduino C/C++ & 래더로직)로 프로그램할 수 있습니다.
 +
 +[[:products:mpaino#mpaino_series_사양표|MPAINO Series 사양표]]에서 MPAINO-64A64R의 보드 이름과 기본 핀번호를 확인할 수 있습니다.
 +
 +
 +
  
 \\ \\
줄 38: 줄 46:
 ===== 디지털 입력 ===== ===== 디지털 입력 =====
  
 +[[:guide:wiring#디지털_입력_한_채널_확인|처음 결선할 때는 디지털 입력 한 채널 확인 절차를 참고해주시기 바랍니다. →]]
 ^ 모듈 ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ ^ 모듈 ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^
 | 모듈 0 | COM0 \\ COM1 | D0~D3 \\ D4~D7 | 절연 디지털 입력 8점 |  {{:products:mpaino-input-io8.svg?740|MPAINO-64A64R 디지털 입력 단자대와 NPN·PNP 결선}}  | | 모듈 0 | COM0 \\ COM1 | D0~D3 \\ D4~D7 | 절연 디지털 입력 8점 |  {{:products:mpaino-input-io8.svg?740|MPAINO-64A64R 디지털 입력 단자대와 NPN·PNP 결선}}  |
줄 50: 줄 59:
 디지털 입력은 포토커플러로 절연되어 있으며 DC 5~24V의 NPN 또는 PNP 방식 스위치·센서를 연결할 수 있습니다. 입력 방식은 각 모듈의 COM 단자 결선 방향으로 선택합니다. 디지털 입력은 포토커플러로 절연되어 있으며 DC 5~24V의 NPN 또는 PNP 방식 스위치·센서를 연결할 수 있습니다. 입력 방식은 각 모듈의 COM 단자 결선 방향으로 선택합니다.
  
-  * 입력 단자에 DC 5~24V가 들어오는 구성: 해당 COM을 GND에 연결합니다. +  * 입력 단자에 DC 5~24V가 들어오는 구성: 해당 COM을 GND에 연결해주시기 바랍니다. 
-  * 입력 단자에 GND가 들어오는 구성: 해당 COM을 DC 5~24V에 연결합니다.+  * 입력 단자에 GND가 들어오는 구성: 해당 COM을 DC 5~24V에 연결해주시기 바랍니다.
  
 ==== 예제 프로그램 · 디지털 입력 ==== ==== 예제 프로그램 · 디지털 입력 ====
줄 171: 줄 180:
 ===== 릴레이 출력 ===== ===== 릴레이 출력 =====
  
 +[[:guide:wiring#릴레이_출력_한_채널_확인|처음 결선할 때는 릴레이 출력 한 채널 확인 절차를 참고해주시기 바랍니다. →]]
 ^ 모듈 ^ 그룹 ^ 출력 단자 ^ 접점 구성 ^ 단자대 및 결선 예시 ^ ^ 모듈 ^ 그룹 ^ 출력 단자 ^ 접점 구성 ^ 단자대 및 결선 예시 ^
 | 모듈 0 | COM2 \\ COM3 | D64~D67 \\ D68~D71 | 릴레이 출력 8점 \\ 4점/1COM |  {{:products:mpaino-output-relay8.svg?740|MPAINO-64A64R 출력 단자대와 부하 결선}}  | | 모듈 0 | COM2 \\ COM3 | D64~D67 \\ D68~D71 | 릴레이 출력 8점 \\ 4점/1COM |  {{:products:mpaino-output-relay8.svg?740|MPAINO-64A64R 출력 단자대와 부하 결선}}  |
줄 181: 줄 191:
 | 모듈 7 | COM2 \\ COM3 | D120~D123 \\ D124~D127 | 릴레이 출력 8점 \\ 4점/1COM | ::: | | 모듈 7 | COM2 \\ COM3 | D120~D123 \\ D124~D127 | 릴레이 출력 8점 \\ 4점/1COM | ::: |
  
-릴레이 출력은 무전압 접점입니다. 출력이 ON되면 해당 출력 단자와 COM 단자가 물리적으로 연결되므로 DC와 AC 부하를 제어할 수 있습니다. 부하 전원은 COM 쪽에 별도로 연결합니다.+릴레이 출력은 무전압 접점입니다. 출력이 ON되면 해당 출력 단자와 COM 단자가 물리적으로 연결되므로 DC와 AC 부하를 제어할 수 있습니다. 부하 전원은 COM 쪽에 별도로 연결해야 합니다.
  
 ^ 항목 ^ 정격 ^ ^ 항목 ^ 정격 ^
줄 214: 줄 224:
 ==== 예제 프로그램 · 펄스 카운트 ==== ==== 예제 프로그램 · 펄스 카운트 ====
  
-I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. 현재 코어의 digitalPinToInterrupt() 인수 2는 디지털 입력 2가 아니라 SDA에 배정된 인터럽트 논리 번호입니다. SDA가 HIGH에서 LOW로 바뀌는 FALLING 에지를 계수합니다. 소프트웨어 ISR 예제이며 최대 주파수에서 무손실을 보장하지 않습니다.+I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. MPAINO 보드 패키지의 digitalPinToInterrupt() 인수 2는 디지털 입력 2가 아니라 SDA에 배정된 인터럽트 논리 번호입니다. SDA가 HIGH에서 LOW로 바뀌는 FALLING 에지를 계수합니다. 소프트웨어 ISR 예제이며 최대 주파수에서 무손실을 보장하지 않습니다.
  
 <code cpp> <code cpp>
줄 239: 줄 249:
 ==== 예제 프로그램 · 엔코더 입력 ==== ==== 예제 프로그램 · 엔코더 입력 ====
  
-I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. 현재 코어의 digitalPinToInterrupt() 인수 2는 디지털 입력 2가 아니라 SDA에 배정된 인터럽트 논리 번호입니다. SDA에 A상, SCL에 B상을 연결하고 A상 하강 시 B상이 HIGH이면 증가, LOW이면 감소합니다. 방향은 A·B상 연결에 따라 바뀝니다. SCL은 디지털 모듈 논리 번호와 겹치므로 실제 핀 상태를 직접 읽습니다.+I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. MPAINO 보드 패키지의 digitalPinToInterrupt() 인수 2는 디지털 입력 2가 아니라 SDA에 배정된 인터럽트 논리 번호입니다. SDA에 A상, SCL에 B상을 연결하고 A상 하강 시 B상이 HIGH이면 증가, LOW이면 감소합니다. 방향은 A·B상 연결에 따라 바뀝니다. SCL은 디지털 모듈 논리 번호와 겹치므로 실제 핀 상태를 직접 읽습니다.
  
 <code cpp> <code cpp>
줄 284: 줄 294:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial1+// USB 다운로드 포트의 Serial 모니터 ↔ RS-232 Serial1
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 303: 줄 313:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial2+// USB 다운로드 포트의 Serial 모니터 ↔ RS-485 Serial2
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 322: 줄 332:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial3+// USB 다운로드 포트의 Serial 모니터 ↔ UART Serial3
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 388: 줄 398:
 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-485(Serial2), 국번 1, 9600bps, 8N1로 설정하고, M[0]은 FC01·시작 주소 0·1비트, D[0]은 FC03·시작 주소 0·1워드로 읽습니다. 주소는 실제 전송 주소(0부터) 기준입니다. 통신 함수는 loop()마다 호출하며 출력은 제어하지 않습니다. 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-485(Serial2), 국번 1, 9600bps, 8N1로 설정하고, M[0]은 FC01·시작 주소 0·1비트, D[0]은 FC03·시작 주소 0·1워드로 읽습니다. 주소는 실제 전송 주소(0부터) 기준입니다. 통신 함수는 loop()마다 호출하며 출력은 제어하지 않습니다.
  
-M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, 다른 프로토콜과 함께 사용할 때는 메모리를 중복 할당하지 않습니다.+M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, 다른 프로토콜과 함께 사용할 때는 메모리를 중복 할당하지 않아야 합니다.
  
 <code cpp> <code cpp>
줄 470: 줄 480:
 </code> </code>
  
-입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정합니다. 비트는 %MX00000(M[0]), 워드는 %DW0(D[0])을 읽습니다. 통신 함수는 loop()마다 호출하며 출력은 제어하지 않습니다.+입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정해주시기 바랍니다. 비트는 %MX00000(M[0]), 워드는 %DW0(D[0])을 읽습니다. 통신 함수는 loop()마다 호출하며 출력은 제어하지 않습니다.
  
-M·D·R은 코어가 제공하는 공유 전역 메모리이며, 이 예제는 R을 사용하지 않습니다. Modbus 예제와는 단독 실행하며, 다른 프로토콜과 함께 사용할 때는 메모리를 중복 할당하지 않습니다.+M·D·R은 코어가 제공하는 공유 전역 메모리이며, 이 예제는 R을 사용하지 않습니다. Modbus 예제와는 단독 실행하며, 다른 프로토콜과 함께 사용할 때는 메모리를 중복 할당하지 않아야 합니다.
  
 <code cpp> <code cpp>
줄 510: 줄 520:
 ==== 예제 프로그램 · 아날로그 입력 (X 모듈 장착 시) ==== ==== 예제 프로그램 · 아날로그 입력 (X 모듈 장착 시) ====
  
-X 모듈 1개를 실제 장착하고 Analog Input Module → X를 선택한 구성입니다. analogRead(0~3)은 첫 X 모듈의 ADS1118 원시값(0~32767)을 읽습니다. 채널별 DIP와 배선을 입력 신호에 맞춥니다.+X 모듈 1개를 실제 장착하고 Analog Input Module → X를 선택한 구성입니다. analogRead(0~3)은 첫 X 모듈의 ADS1118 원시값(0~32767)을 읽습니다. 채널별 DIP와 배선을 입력 신호에 맞춰야 합니다.
  
 <code cpp> <code cpp>
줄 681: 줄 691:
 </code> </code>
  
-F 모듈 1개를 실제 장착하고 Temperature Sensor Input Module → F를 선택합니다. 0~3은 첫 F 모듈 채널입니다. F 모듈 채널 0~3의 입력값을 Serial 모니터에 표시합니다.+F 모듈 1개가 실제로 장착된 제품에서 Temperature Sensor Input Module → F를 선택해주시기 바랍니다. 0~3은 첫 F 모듈 채널입니다. F 모듈 채널 0~3의 입력값을 Serial 모니터에 표시합니다.
  
 <code cpp> <code cpp>
줄 702: 줄 712:
 ==== 예제 프로그램 · 아날로그 출력 (Y 모듈 장착 시) ==== ==== 예제 프로그램 · 아날로그 출력 (Y 모듈 장착 시) ====
  
-Y 모듈 1개를 실제 장착하고 Analog Output Module → Y를 선택합니다. analogWrite(0~2, 값)의 값은 0~65535입니다. 채널 0에 중간값 32768을 출력하며 출력 전압·전류 범위는 모듈 DIP 설정에 따릅니다.+Y 모듈 1개가 실제로 장착된 제품에서 Analog Output Module → Y를 선택해주시기 바랍니다. analogWrite(0~2, 값)의 값은 0~65535입니다. 채널 0에 중간값 32768을 출력하며 출력 전압·전류 범위는 모듈 DIP 설정에 따릅니다.
  
 <code cpp> <code cpp>
줄 743: 줄 753:
 ==== 예제 프로그램 · PWM 출력 (K 모듈 장착 시) ==== ==== 예제 프로그램 · PWM 출력 (K 모듈 장착 시) ====
  
-K 모듈 1개를 실제 장착하고 High-Speed Pulse Output Module → K를 선택하며 Y 모듈은 None입니다. Arduino analogWrite()는 20~25, 내장 PWM 계열은 0~5, GPIO 제어는 130~135를 사용합니다. 첫 K 출력에 약 50% 듀티를 출력합니다.+K 모듈 1개가 실제로 장착된 제품에서 High-Speed Pulse Output Module → K를 선택해주시기 바랍니다. Y 모듈은 None입니다. Arduino analogWrite()는 20~25, 내장 PWM 계열은 0~5, GPIO 제어는 130~135를 사용합니다. 첫 K 출력에 약 50% 듀티를 출력합니다.
  
 <code cpp> <code cpp>
줄 874: 줄 884:
  
 CPU 모듈의 STATUS LED는 ''LED_BUILTIN''(D128)으로 제어합니다. CPU 모듈의 STATUS LED는 ''LED_BUILTIN''(D128)으로 제어합니다.
 +
 +CPU 모듈의 STATUS LED를 사용자 프로그램의 동작 표시등으로 사용할 수 있습니다. 이 LED는 외부 부하 출력 단자가 아닙니다.
 +
 +제어하려면 먼저 ''pinMode(LED_BUILTIN, OUTPUT)''으로 출력 모드를 설정해야 합니다. ''digitalWrite(LED_BUILTIN, HIGH)''이면 LED가 켜지고, ''digitalWrite(LED_BUILTIN, LOW)''이면 꺼집니다.
 +
 +==== 예제 · STATUS LED 점멸 ====
 +
 +다음 예제는 CPU 모듈의 STATUS LED를 500ms마다 켜고 끕니다.
 +
 +<code cpp>
 +void setup() {
 +  pinMode(LED_BUILTIN, OUTPUT);
 +}
 +
 +void loop() {
 +  digitalWrite(LED_BUILTIN, HIGH);
 +  delay(500);
 +  digitalWrite(LED_BUILTIN, LOW);
 +  delay(500);
 +}
 +</code>
  
 ==== 예제 프로그램 · 상태 LED ==== ==== 예제 프로그램 · 상태 LED ====
  
 입력 0의 상태를 CPU 모듈 STATUS LED(LED_BUILTIN, 논리 번호 128)에 표시합니다. 입력 0의 상태를 CPU 모듈 STATUS LED(LED_BUILTIN, 논리 번호 128)에 표시합니다.
 +
 +**출력 설정:** 아래 입력 상태 표시 예제를 사용할 때도 ''setup()''에 ''pinMode(LED_BUILTIN, OUTPUT);''을 추가해야 합니다.
  
 <code cpp> <code cpp>
줄 892: 줄 925:
 ===== 개발 환경 설정 ===== ===== 개발 환경 설정 =====
  
-  - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결합니다. +  - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결해주시기 바랍니다. 
-  - 장치 관리자에서 다운로드 포트의 COM 번호를 확인합니다. +  - 장치 관리자에서 다운로드 포트의 COM 번호를 확인해주시기 바랍니다. 
-  - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택합니다. +  - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택해주시기 바랍니다. 
-  - 도구 → 보드에서 ''MPAINO-64A64R(T)''을 선택합니다. +  - 도구 → 보드에서 ''MPAINO-64A64R(T)''을 선택해주시기 바랍니다. 
-  - 도구 → 프로그래머에서 ''AVR ISP''를 선택하고 프로그램을 업로드합니다.+  - Arduino IDE 상단에서 **검증(✓)**을 누르고 오류가 없으면 **업로드(→)**를 눌러 프로그램을 전송해주시기 바랍니다.
  
 [[https://www.ilogics.net/ko-kr/resources/downloads/manual/15|MPAINO 사용설명서 다운로드]] [[https://www.ilogics.net/ko-kr/resources/downloads/manual/15|MPAINO 사용설명서 다운로드]]
줄 917: 줄 950:
 |  [[https://www.ilogics.net/docs/_media/products:mpaino-64a64r-dimension-rear.svg|{{ :products:mpaino-64a64r-dimension-rear.svg?nolink&360 }}]]  |  | |  [[https://www.ilogics.net/docs/_media/products:mpaino-64a64r-dimension-rear.svg|{{ :products:mpaino-64a64r-dimension-rear.svg?nolink&360 }}]]  |  |
  
-[[products:mpaino|← MPAINO Series 비교표로 돌아가기]]+[[https://www.ilogics.net/ko-kr/products/mpaino-64a64r|MPAINO-64A64R 가격 및 구매하기]]
  
 +[[products:mpaino|← MPAINO Series 비교표로 돌아가기]]
  
products/mpaino_64a64r.1788773001.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki