사용자 도구

사이트 도구


products:mpaino_8a8t

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
products:mpaino_8a8t [2026/09/07 18:23] – 바깥 편집 127.0.0.1products:mpaino_8a8t [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-8A8T는 디지털 입력 8점과 SINK 트랜지스터 출력 8점을 제공하며 RS-232, RS-485, UART, I²C 통신을 사용할 수 있습니다. MPAINO-8A8T는 디지털 입력 8점과 SINK 트랜지스터 출력 8점을 제공하며 RS-232, RS-485, UART, I²C 통신을 사용할 수 있습니다.
  
 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-8A8T의 보드 이름과 기본 핀번호를 확인할 수 있습니다.
 +
 +
 +
 +
  
 \\ \\
줄 39: 줄 48:
 ===== 디지털 입력 ===== ===== 디지털 입력 =====
  
 +[[:guide:wiring#디지털_입력_한_채널_확인|처음 결선할 때는 디지털 입력 한 채널 확인 절차를 참고해주시기 바랍니다. →]]
 ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^
 | COM0 | D0~D3 | 절연 디지털 입력 4점 \\ D0·D1은 INT0·INT1 겸용 |  {{:products:mpaino-input-io8.svg?740|MPAINO-8A8T 디지털 입력 단자대와 NPN·PNP 결선}}  | | COM0 | D0~D3 | 절연 디지털 입력 4점 \\ D0·D1은 INT0·INT1 겸용 |  {{:products:mpaino-input-io8.svg?740|MPAINO-8A8T 디지털 입력 단자대와 NPN·PNP 결선}}  |
줄 45: 줄 55:
 디지털 입력은 포토커플러로 절연되어 있으며 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에 연결해주시기 바랍니다.
  
 아날로그 출력 또는 고속펄스 출력 옵션인 YK, Y2K, K2, Y3, Y4 모듈이 포함되어도 프로그램에서는 디지털 입력 D0~D7을 동일하게 사용합니다. 해당 구성에서는 INT0·INT1을 사용할 수 없습니다. 아날로그 출력 또는 고속펄스 출력 옵션인 YK, Y2K, K2, Y3, Y4 모듈이 포함되어도 프로그램에서는 디지털 입력 D0~D7을 동일하게 사용합니다. 해당 구성에서는 INT0·INT1을 사용할 수 없습니다.
줄 168: 줄 178:
 ===== 트랜지스터 출력 ===== ===== 트랜지스터 출력 =====
  
 +[[:guide:wiring#sink_트랜지스터_출력_한_채널_확인|처음 결선할 때는 SINK 트랜지스터 출력 한 채널 확인 절차를 참고해주시기 바랍니다. →]]
 ^ 그룹 ^ 출력 단자 ^ 출력 구성 ^ 단자대 및 결선 예시 ^ ^ 그룹 ^ 출력 단자 ^ 출력 구성 ^ 단자대 및 결선 예시 ^
 | COM2 | D64~D71 | 절연 SINK 트랜지스터 출력 8점 |  {{:products:mpaino-output-tr8.svg?1002|MPAINO-8A8T 출력 단자대와 부하 결선}}  | | COM2 | D64~D71 | 절연 SINK 트랜지스터 출력 8점 |  {{:products:mpaino-output-tr8.svg?1002|MPAINO-8A8T 출력 단자대와 부하 결선}}  |
 | 출력 전원 | P24 \\ N24 | P24: DC 5~24V \\ N24: P24 전원의 GND | ::: | | 출력 전원 | P24 \\ N24 | P24: DC 5~24V \\ N24: P24 전원의 GND | ::: |
  
-출력이 ON되면 해당 출력 단자에서 N24에 연결된 GND가 출력됩니다. 부하의 양극은 P24 전원에 연결하고 부하의 음극은 사용할 출력 단자에 연결합니다.+출력이 ON되면 해당 출력 단자가 N24를 통해 해당 전원의 GND에 연결됩니다. 부하의 양극은 P24 전원에, 음극은 사용할 출력 단자에 연결해주시기 바랍니다.
  
 ^ 항목 ^ 정격 ^ ^ 항목 ^ 정격 ^
줄 206: 줄 217:
 ==== 예제 프로그램 · 펄스 카운트 ==== ==== 예제 프로그램 · 펄스 카운트 ====
  
-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>
줄 231: 줄 242:
 ==== 예제 프로그램 · 엔코더 입력 ==== ==== 예제 프로그램 · 엔코더 입력 ====
  
-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>
줄 276: 줄 287:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial1+// USB 다운로드 포트의 Serial 모니터 ↔ RS-232 Serial1
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 295: 줄 306:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial2+// USB 다운로드 포트의 Serial 모니터 ↔ RS-485 Serial2
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 314: 줄 325:
  
 <code cpp> <code cpp>
-// MP 다운로드 케이블의 Serial 모니터 ↔ RS-232 Serial3+// USB 다운로드 포트의 Serial 모니터 ↔ UART Serial3
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
줄 380: 줄 391:
 입력 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>
줄 462: 줄 473:
 </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>
줄 502: 줄 513:
 ==== 예제 프로그램 · 아날로그 입력 (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>
줄 673: 줄 684:
 </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>
줄 694: 줄 705:
 ==== 예제 프로그램 · 아날로그 출력 (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>
줄 735: 줄 746:
 ==== 예제 프로그램 · 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>
줄 866: 줄 877:
  
 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>
줄 884: 줄 918:
 ===== 개발 환경 설정 ===== ===== 개발 환경 설정 =====
  
-  - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결합니다. +  - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결해주시기 바랍니다. 
-  - 장치 관리자에서 다운로드 포트의 COM 번호를 확인합니다. +  - 장치 관리자에서 다운로드 포트의 COM 번호를 확인해주시기 바랍니다. 
-  - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택합니다. +  - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택해주시기 바랍니다. 
-  - 도구 → 보드에서 ''MPAINO-8A8R(T)''을 선택합니다. +  - 도구 → 보드에서 ''MPAINO-8A8R(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 사용설명서 다운로드]]
줄 909: 줄 943:
 |  [[https://www.ilogics.net/docs/_media/products:mpaino-8a8t-dimension-rear.svg|{{ :products:mpaino-8a8t-dimension-rear.svg?nolink&360 }}]]  |  | |  [[https://www.ilogics.net/docs/_media/products:mpaino-8a8t-dimension-rear.svg|{{ :products:mpaino-8a8t-dimension-rear.svg?nolink&360 }}]]  |  |
  
-[[products:mpaino|← MPAINO Series 비교표로 돌아가기]]+[[https://www.ilogics.net/ko-kr/products/mpaino-8a8t|MPAINO-8A8T 가격 및 구매하기]]
  
 +[[products:mpaino|← MPAINO Series 비교표로 돌아가기]]
  
products/mpaino_8a8t.1788773001.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki