본문 바로가기
MPINO-16A8R8T 산업용 아두이노 컨트롤러 — 전면 이미지

MPINO Series

MPINO-16A8R8T

MPINO-16A8R8T 산업용 아두이노 컨트롤러

I/O 한눈에 보기
16 DI / 8 Relay / 8 Transistor / 4 AI / 2 AO / 2 NTC / RS-232 / RS-485 / UART / I²C

MPINO-16A8R8T은(는) ATmega2560 기반 산업용 아두이노 호환 PLC 컨트롤러로, 절연 디지털 입력 16점과 릴레이 + 트랜지스터 출력 16점을 제공합니다. RS-232, RS-485, UART, I²C 통신 및 Modbus RTU을 지원하며 Arduino IDE로 프로그래밍합니다. DIN 레일 장착형으로 자동화, 시험, HMI 연동, 임베디드 제어에 적합합니다.

₩110,000 재고 있음
옵션 선택
상단 케이스
추가 구성 상품
함께 필요한 제품을 담으세요 (선택)
MP Download Cable — 제품 이미지 1
MP Download Cable
MP 다운로드 케이블 (USB-TTL 컨버터 내장)
₩16,500
슈퍼 캐패시터 DDL 5.5V 1F — +5V 단자에 연결하는 리드선 2개짜리 원통형 캐패시터
Super Capacitor DDL 5.5V 1F
슈퍼 캐패시터 DDL 5.5V 1F (정전유지용)
₩4,400
총 상품금액₩110,000

배송

택배 ₩3,000 · ₩50,000 이상 무료배송 (CJ대한통운)

본사 방문수령 가능

배송 계산 무게 350 g (제품 1개 기준)

발송

오후 2시 이전 주문 시 당일 발송

대량 주문은 발송이 1일 더 소요될 수 있습니다

반품 · 교환

배송 전 주문 취소 · 수령 후 반품/교환 요청 가능

주요 특징

/ FEATURES
  • ATmega2560 코어, Arduino IDE 및 MPINO STUDIO2로 프로그래밍
  • 옵토커플러 절연 디지털 입력 16점 (NPN/PNP, 최대 40V 허용)
  • AC/DC 무전압 접점 스위칭용 릴레이 출력 8점
  • 고속 DC 스위칭용 트랜지스터(싱크) 출력 8점
  • 아날로그 입력 4점 (0–5V / 4–20mA / 0–10V 레인지)
  • 아날로그 출력 2점
  • NTC 온도 입력 2점 (−40 ~ +120 °C)
  • 산업용 통신: RS-485, RS-232, UART, I²C · Modbus RTU
  • DIN 레일 35mm 장착, 산업 현장용 절연 I/O

사양

/ SPEC
MCUATmega2560
전원 입력DC 12V ~ 24V
디지털 입력16
릴레이 출력8
트랜지스터 출력8
아날로그 입력4
아날로그 출력2
온도센서 입력2
고속펄스 입력2
고속펄스 출력4
RS-2321ch
RS-4851ch
UART1ch
I²C1ch
Modbus RTUYES
LS산전 CnetYES
Mitsubishi MCYES
Arduino IDE 호환YES

소프트웨어

Arduino IDE / MPINO Studio 2

Arduino IDE에서 MPINO 컨트롤러용 스케치를 편집하고 시리얼 모니터로 동작을 확인하는 화면MPINO Studio 2에서 코드와 래더 로직을 한 화면에서 편집하는 화면 — 탐색기, 코드 편집기, 래더 다이어그램

ARDUINO IDE 호환

기존 Arduino 개발 환경과 완벽 호환

MPINO STUDIO2 제공

아두이노 코딩 + 래더 로직을 하나로

ARDUINO + LADDER LOGIC

손쉬운 제어 로직 구현으로 개발 효율 향상

개발 환경 준비

ARDUINO SDK를 설치하면 Arduino IDE에 이 제품의 보드 정의가 추가되고, 산업용에서 유용하게 사용할 수 있는 함수들을 내장 명령어로 사용할 수 있습니다. 별도 라이브러리를 추가할 필요 없이 ARDUINO IDE에서 자동완성 기능과 함께 사용이 가능합니다.

SDK를 설치하면 쓸 수 있는 내장 명령어

  • PLC 타이머 · 콜백 타이머Iton · Itof · Itpl · Itmr · ItimerSet
  • 카운터Ictu · Ictd · Ictud · IgetCount
  • 스케일 · PID 제어Iscale · Iscalef · IpidSet · IpidRun
  • 선입선출 · 후입선출 버퍼FIFO · FILO
  • 입력 디바운스 · 엣지 검출Ibounce · IdigitalRead · Iup · Idown · Ialt
  • 디버그 · Watchdogdebug · debugln · WDT_ENABLE · WDT
  • Modbus RTU · LS Cnet · Mitsubishi MCImodbusRTU · ICnet · IMcProtocol
  • 아날로그 입력 · 4~20mA 보정analogRead2 · IanalogRead · IanalogFilter · ntcRead
  • 아날로그 출력IanalogWrite · IanalogWrite2 · analogWriteFreq
  • PWM · 펄스 · 고속카운터PWM · FDPWM · NPWM · TCNTSETUP · TCNTOUT

ARDUINO IDE를 사용할 경우 ARDUINO SDK(아이로직스 필수설치파일)를 반드시 설치해야 합니다. MPINO STUDIO2를 사용할 경우에는 설치 없이 사용이 가능합니다.

본 제품은 ARDUINO SDK 없이 ARDUINO IDE에서 MEGA2560 보드를 선택하여 사용이 가능합니다. 다만, 자사에서 제공하는 내장 명령어를 사용할 수 없습니다.

다운로드 케이블MP DOWNLOAD CABLE

프로그램을 넣으려면 전용 다운로드 케이블이 필요합니다

이 보드의 업로드 포트는 mini 5P USB이지만, USB를 시리얼로 바꾸는 변환 회로는 보드가 아니라 케이블 쪽에 들어 있습니다. 그래서 시중에서 파는 mini 5P USB 케이블을 꽂으면 PC가 포트를 잡지 못하고 업로드도 되지 않습니다. MP 다운로드 케이블은 직접 제작하는 케이블이며 하나를 구매하시면 계속 사용이 가능합니다.

  • USB-TTL 컨버터 내장

    변환 IC가 커넥터 하우징 안에 들어 있습니다

  • 시중 mini 5P 케이블 사용불가

    일반 케이블로는 포트 인식·업로드가 되지 않습니다

  • USB-A ↔ mini 5P

    PC의 USB단자와 보드의 업로드 포트를 연결합니다.

  • 아이로직스 자체제작

    아이로직스 제품에서 사용할 수 있는 전용 케이블입니다.

케이블 구성

USB-TTL 컨버터 내장USB-TTL케이블 길이 1 mUSB-A · PCmini 5P · 보드 업로드 포트

* 변환 IC가 하우징 안에 있다는 점이 일반 케이블과 다른 점입니다. 보드 쪽은 mini 5P, PC 쪽은 USB-A이며 길이는 1 m입니다.

별도 판매 — 추가 구성 상품에서 보드와 함께 구매하실 수 있습니다.

케이블 사양

항목내용
PC 쪽USB-A 플러그
변환USB-TTL 컨버터 케이블 내장
보드 쪽USB mini 5P 플러그
길이1 m
드라이버FTDI

드라이버 설치 방법

  1. MP 다운로드 케이블로 PC의 USB 단자와 보드의 업로드 포트를 연결합니다.
  2. 장치 관리자를 열어 포트(COM & LPT) 항목에 USB Serial Port (COMx)가 표시되는지 확인합니다.
  3. 표시되지 않으면 자료실의 FTDI 드라이버를 설치한 뒤 케이블을 다시 연결합니다.
  4. 개발 도구에서 장치 관리자에 표시된 것과 같은 COM 번호를 선택하면 업로드할 수 있습니다.

디지털 입력Digital Input

16채널 디지털 입력 / 포토커플러 절연

16개의 디지털 입력 채널을 제공하여 다양한 외부 스위치 및 센서 신호를 안정적으로 감지합니다.

  • D22~D37 입력

    총 16포인트 디지털 입력 지원

  • COM0 / COM1 공통

    2개의 독립 입력 그룹 구성

  • 포토커플러 절연

    외부 노이즈로부터 제어 회로 보호

  • NPN / PNP 지원

    다양한 센서 배선 방식 호환

입력 채널 구성

D22D23D24D25D26D27D28D29+COM0D22~D29 / COM08P · 1COMD30D31D32D33D34D35D36D37+COM1D30~D37 / COM18P · 1COM

* 외부 스위치 또는 센서 연결 예시 (NPN/PNP 공통 사용)

포토커플러 절연

DxCOMx

디지털 입력은 양방향 포토커플러 절연 구조(역병렬 LED)를 적용하여 NPN 또는 PNP 신호 모두를 안정적으로 감지하며, COM0 / COM1 기준으로 16채널 입력을 안정적으로 수집합니다.

릴레이 출력Relay Output

8채널 릴레이 출력 / 1a1c 릴레이

8채널 릴레이 출력을 제공하여 AC 및 DC를 사용하는 외부 부하를 안정적으로 제어할 수 있습니다.

  • D62~D69 출력

    8포인트 릴레이 접점 출력

  • 1a1c 릴레이 8

    각 출력은 릴레이 접점으로 독립 제어

  • 2출력 1COM 구조

    각 COM 단자가 2개 출력을 공유

  • 전기적 절연

    제어부와 출력부를 릴레이로 분리하여 보호

출력 채널 구성

D62D63+COM3D64D65+COM4D66D67ACCOM5D68D69ACCOM6D62~D698P · 2P/1COM

* 외부 부하 연결 예시 (릴레이 접점 출력 방식)

릴레이 출력 구조

제어부 (MCU)출력부

각 릴레이 출력은 1a1c 릴레이로 구성되어 제어부와 출력부를 기계적으로 분리하며, 2개 출력이 1개의 COM 단자를 공유하는 2출력 1COM 구조입니다. 무전압 접점이라 AC·DC 부하를 모두 스위칭할 수 있습니다.

예제 코드 — 릴레이 출력 제어
void setup() {
  pinMode(62, OUTPUT);     // R(62) as an output
}

void loop() {
  if (digitalRead(22) == HIGH) digitalWrite(62, HIGH);  // I(22) ON -> R(62) ON
  else                          digitalWrite(62, LOW);
}

트랜지스터 출력Transistor Output

8채널 트랜지스터 출력 / N-MOSFET 싱크

8채널 트랜지스터 싱크 출력을 제공하여 외부 부하를 안정적으로 스위칭 및 제어할 수 있습니다.

  • D39~D46 출력

    8포인트 트랜지스터 싱크 출력

  • DO_V+ 공통 전원

    부하는 DO_V+와 출력 단자 사이에 연결

  • N-MOSFET 싱크

    IRFRU024N · 3A/1점 · 15A/1COM

  • DC 0~55V 부하

    ON 시 GND 연결(싱크), OFF 시 개방

출력 채널 구성

부하D39부하D40부하D41부하D42부하D43부하D44부하D45부하D46V++V−D39~D468P OUTPUT

* 외부 부하 연결 예시 (트랜지스터 싱크 출력 방식)

N-MOSFET 싱크 출력 구조

MCU GPIOOUTPUTGND제어부 (MCU)출력부 (N-MOSFET)

트랜지스터 출력은 IRFRU024N N-MOSFET을 사용한 싱크 출력입니다. MCU GPIO가 게이트를 구동하면 출력 단자가 GND로 연결(ON)되며, 부하는 DO_V+와 출력 단자 사이에 연결합니다. 1점당 3A, 1COM당 15A까지 DC 0~55V 부하를 구동할 수 있습니다.

예제 코드 — 트랜지스터 출력 제어
void setup() {
  pinMode(39, OUTPUT);     // O(39) as an output
}

void loop() {
  // O(39) is a SINK output: writing HIGH ties it to GND (load ON)
  digitalWrite(39, digitalRead(22));
}

아날로그 입력Analog Input

4채널 아날로그 입력 / 채널별 전류·전압 선택

A(0)~A(3)은 보드 좌측의 5극 단자대로 인출되며, 위에서부터 AGND · A(3) · A(2) · A(1) · A(0) 순서로 배치됩니다. 출하 시에는 SELECT 헤더에 캡이 끼워진 0~20mA / 4~20mA 전류 입력이며, 해당 채널의 캡을 제거하면 DC 0~5V 전압 입력으로 전환됩니다. DC 0~10V는 주문 시 옵션입니다.

  • A(0)~A(3) · 4채널

    10비트 분해능(0~1023) 아날로그 입력 4포인트

  • 기본 0~20mA

    출하 시 캡 장착 · 약 250Ω

  • 캡 제거 시 DC 0~5V

    채널마다 독립적으로 전환 · 2kΩ

  • 외부 기준전압

    REF3025 2.5V ±0.2%를 AREF로 공급

아날로그 입력 단자 구성

A(0)~A(3)4CH · 10BIT보드 내부AGNDA(3)A(2)A(1)A(0)입력 회로 → ADCSELECT 0~20mA0250Ω1250Ω2250Ω3250Ω캡 장착 시 0~20mA
아날로그 입력 A(0)~A(3)SELECT 범위 선택 캡AGND

* 보드 좌측의 실크 ADC 5극 단자대이며, 위에서부터 AGND · A(3) · A(2) · A(1) · A(0) 순서입니다. 입력 범위는 SELECT 0-20mA 헤더에서 설정하고, 위치 실크는 0~3(채널에 대응)이며 출하 시 4채널 모두 장착되어 있습니다.

입력 범위 선택

입력 범위설정 방법입력 저항
0~20mA / 4~20mA캡 장착 (출하 시 기본)약 250 Ω
DC 0~5V캡 제거2 kΩ
DC 0~10V주문 시 옵션 (분압 저항 변경)

4채널 모두 10비트 분해능(0~1023)이며, 기준 전압은 REF3025 2.5V ±0.2%를 AREF로 공급합니다. 전류 모드의 250Ω 션트는 전압원에 부담이 크므로, 0~5V 신호를 넣기 전에 캡을 제거하십시오.

예제 코드 — 아날로그 입력 읽기
unsigned int ADC0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  ADC0 = analogRead(0);        // read A(0)
  Serial.println(ADC0);
  delay(200);
}

NTC 온도 입력NTC Temperature

전용 단자의 NTC 온도 입력 2채널

T(4) · T(5)는 전용 온도 입력이며, 보드 좌측의 실크 TEMP 3극 단자대에 배치됩니다. 10kΩ 풀업 저항이 내장되어 있어 NTC 서미스터를 해당 T 단자와 공통 AGND 사이에 바로 연결하면 되고, 외부 분압 회로가 필요 없습니다.

  • T(4) · T(5) · 2채널

    A(0)~A(3)과 별개인 전용 온도 단자

  • NTC 10kΩ @25

    β = 3950 서미스터 (예제 기준)

  • 풀업 내장

    보드에 10kΩ · 외부 분압 회로 불필요

  • AGND 공용

    두 채널이 공통 GND 극 하나를 사용

NTC 온도 입력 단자

NTC 3950 10kΩT(4)T(5)AGNDA4 (D58)A5 (D59)

* 보드 좌측의 실크 TEMP 3극 단자대이며 T(4) · T(5) · AGND 순서입니다. 서미스터는 각자의 T 단자와 AGND 사이에 연결합니다. NTC 입력은 극성이 없어 두 선을 바꿔 연결해도 됩니다.

온도 입력 사양

센서NTC 10kΩ @25℃ · β = 3950
채널T(4) = A4 (D58) · T(5) = A5 (D59)
풀업10kΩ 내장
분해능10비트 (0~1023)
단자3극 단자대 · T(4) · T(5) · AGND 공용
반환값ntcRead()는 0.1℃ 단위 정수 (251 → 25.1℃)

T(4) · T(5)는 아날로그 입력과 같은 ADC를 사용하므로 기준 전압도 공통입니다. 더 높은 정확도가 필요하면 예제의 Steinhart 계산 대신 통합 라이브러리의 보간 온도 함수를 사용하십시오.

예제 코드 — NTC 온도 읽기
unsigned int Temp;  // tenths of a degree (251 = 25.1C)

void setup() {
  Serial.begin(9600);
}

void loop() {
  Temp = ntcRead(analogRead(4));   // T(4)
  Serial.println(Temp);
  delay(500);
}

int ntcRead(unsigned int RawADC) {
  float v;
  v = (1023.0F / (float)RawADC) - 1.0F;
  v = 10000.0F / v;
  float steinhart;
  steinhart  = v / 10000.0F;
  steinhart  = log(steinhart);
  steinhart /= 3950.0F;
  steinhart += 1.0F / (25.0F + 273.15F);
  steinhart  = 1.0F / steinhart;
  steinhart -= 273.15F;
  return (unsigned int)(steinhart * 10);
}

아날로그 출력Analog Output

아날로그 출력 2채널 / DC 0~5V · 16비트 분해능

AO(6) · AO(7)은 보드 좌측의 2극 단자대로 인출되어 DC 0~5V를 출력합니다. DAC 전용 회로가 아니라 TIMER4의 PWM 파형을 로우패스 필터로 평활하고 OP-AMP로 버퍼한 출력입니다. 그래서 타이머 자원을 점유하고, 외부 전원이 없으면 출력이 나오지 않습니다.

  • AO(6) · AO(7) · 2채널

    DC 0~5V 아날로그 출력

  • 16비트 분해능

    analogWriteInit() 설정 후 0~65535

  • PWM → 필터 → 버퍼

    DAC가 아니라 평활·버퍼한 PWM

  • 외부 전원 필요

    USB 전원만으로는 출력이 0V

출력이 만들어지는 방식

DC 0~5V · 16BITTIMER4 PWM로우패스 필터OP-AMP 버퍼외부 DC 12~24VAO(6)D6 (OC4A)AO(7)D7 (OC4B)

* 보드 좌측의 실크 DAC 2극 단자대이며 AO(6) · AO(7) 순서입니다. 버퍼는 보드의 외부 DC 입력에서 전원을 받으므로, 외부 전원을 연결해야 출력이 나옵니다.

아날로그 출력 사양

채널AO(6) = D6 (OC4A) · AO(7) = D7 (OC4B)
출력 전압DC 0~5V
분해능16비트 (0~65535)
타이머 자원TIMER4 — 두 채널이 공유
신호 경로TIMER4 PWM → 로우패스 필터 → OP-AMP 버퍼
단자2극 단자대 · 실크 DAC (GND 극 없음)

analogWriteInit(6, 65535, 1)으로 타이머를 16비트로 설정한 뒤 analogWrite(6, …) / analogWrite(7, …)로 값을 씁니다. 두 채널은 같은 TIMER4를 쓰므로 한쪽에서 설정한 TOP과 분주비가 다른 쪽에도 적용되며, 출력 레벨은 개별입니다. 현재 적용 중인 최댓값은 analogWriteMax(6)으로 확인할 수 있습니다.

사용 전 확인

  • USB 전원만으로는 출력이 0V가 됩니다. 버퍼가 보드의 외부 DC 전원에서 급전되므로 반드시 외부 전원을 연결하십시오.
  • 이 출력은 TIMER4를 쓰므로 TCNT4 고속 카운터와 동시에 사용할 수 없습니다.
  • 이 커넥터는 신호 2극뿐이며 GND 극이 없습니다. 기준 전위는 보드의 접지 단자(아날로그 · 온도 단자대의 AGND, 펄스 출력 · 전원 단자대의 GND)에서 가져오십시오.
  • 이 출력은 절연되어 있지 않습니다.
예제 코드 — 아날로그 출력 내보내기
void setup() {
  // TIMER4 in 16-bit mode (duty range 0~65535)
  TCCR4A = 0xAA;
  TCCR4B = 0x19;
  ICR4   = 65535;
}

void loop() {
  analogWrite(6, analogWriteScale(2.5F));   // AO(6) = 2.5V
  analogWrite(7, analogWriteScale(3.0F));   // AO(7) = 3.0V
}

unsigned int analogWriteScale(float outVolt) {
  return (unsigned int)((outVolt / 5.0F) * 65535);
}

고속 펄스 출력PWM Output

나사 단자의 PWM 출력 4점 / 8비트 · 16비트 듀티

P(11) · P(12) · P(5) · P(2)이 나사 단자로 PWM 출력 4점으로 인출됩니다. 각 점은 150Ω 직렬 보호저항을 거쳐 0V~5V를 최대 30mA로 출력하며, 듀티는 기본 8비트이고 타이머 레지스터를 설정하면 16비트가 됩니다. 같은 타이머를 쓰는 점끼리는 주파수가 공통이고 듀티는 개별로 설정합니다.

  • PWM 출력 4

    나사 단자 · P(11) · P(12) · P(5) · P(2)

  • Timer1 / Timer3

    같은 타이머의 점은 주파수 공통

  • 8비트 / 16비트 듀티

    기본 0~255 · 레지스터 설정 시 0~65535

  • 0V / 5V · 30mA

    전 점에 150Ω 직렬 보호저항

펄스 출력 사양

항목비고
점수4점나사 단자 PWM 출력
출력 레벨LOW DC 0V / HIGH DC 5V1점당 최대 30mA
직렬 보호저항150 Ω단락 보호
듀티 분해능8비트 (0~255)최대 16비트 (0~65535)
Timer1P(11) · P(12) (D11 · D12)주파수 공통
Timer3P(5) · P(2) (D5 · D2)주파수 공통

analogWrite(pin, duty)로 출력합니다. 같은 타이머의 두 점을 서로 다른 주파수로 동작시킬 수는 없습니다(듀티만 개별).

PWM 단자와 듀티

Timer1 · Timer3P(11)Timer1P(12)Timer1P(5)Timer3P(2)Timer3GND듀티 (analogWrite)25%50%75%5V0V
Timer1Timer3GND (공통 귀환)

* 배선은 실크 표기를 기준으로 합니다. 각 극 아래의 작은 글씨는 그 점이 쓰는 자원입니다. GND는 모든 점의 공통 귀환입니다.

사용 전 확인

  • 이 출력은 절연되어 있지 않고 정격이 30mA입니다. 릴레이 · 솔레노이드 같은 유도성 부하는 반드시 외부 드라이버를 거쳐 구동하십시오.
  • 16비트 듀티를 위해 타이머 레지스터를 설정하면 그 타이머의 모든 점에 영향을 줍니다.
예제 코드 — PWM 출력
void setup() {
  // nothing to set up — 8-bit PWM by default
}

void loop() {
  if (digitalRead(22) == HIGH) analogWrite(5, 127);  // P(5) duty 50%
  else                          analogWrite(5, 0);
}

인터럽트 · 고속 카운터Interrupt · Counter

인터럽트 입력 3점과 절연 카운터 입력 2점

P(2) · SDA · SCL은 attachInterrupt()로 사용하고, 이와 별개로 TCNT4 · TCNT5 · COM2은 포토커플러로 절연된 카운터 입력이며 타이머의 외부 클럭 모드로 셉니다. 최대 5kHz이고, 단자는 인터럽트 핀의 5V가 아니라 DC 0~80V를 받을 수 있습니다.

  • 인터럽트 입력 3

    P(2) · SDA · SCL

  • 절연 카운터 입력 2

    TCNT4 · TCNT5 · COM2 · 최대 5kHz

  • 로터리 엔코더

    SDA / SCL을 A상 · B상으로 · 50kHz 이상

  • 4.7kΩ 풀업

    SDA · SCL에 내장 (I²C와 공유)

인터럽트 · 카운터 사양

항목비고
인터럽트 입력3점P(2) · SDA · SCL
인터럽트 레벨DC 0~5VHIGH 인식 3V 이상 · MCU I/O 직결 · 비절연
카운터 입력2점TCNT4 · TCNT5 · COM2 · LTV-214 절연
카운터 레벨DC 0~80VHIGH 인식 5V 이상
카운터 속도최대 5kHz타이머 외부 클럭 모드
카운터 자원TIMER4 / TIMER516비트 · 오버플로 인터럽트로 32비트

카운터 단자는 타이머의 카운트 레지스터에서 읽습니다(digitalRead()는 동작하지 않습니다). 인터럽트 핀은 일반 MCU I/O이며 절연되어 있지 않습니다.

입력 카운트

펄스 카운트+5VGNDCLKGND4.7kΩ스케치가 아니라 타이머가 센다로터리 엔코더CLKDIO위상 관계로 회전 방향 판정

* 왼쪽은 카운터 단자에 들어온 펄스를 하드웨어가 세는 구성입니다. 오른쪽은 엔코더의 두 상이 90° 어긋나 있어 한쪽 엣지 시점의 다른 쪽 레벨이 곧 회전 방향이 됩니다.

인터럽트 · 카운터 단자

HIGH COUNTERTCNT4D74TCNT5D47COM2PWMP(2)D2INT4I2CSDAD20INT1SCLD21INT0

* 큰 글씨가 실크 표기이고 작은 글씨가 아두이노 핀 번호와 INT 번호입니다. 카운터 극은 공통 단자 하나를 공유하며, 인터럽트 핀은 MCU I/O 직결이라 최대 5V까지입니다.

사용 전 확인

  • 인터럽트 입력은 MCU I/O에 직결됩니다. DC 5V를 넘기면 MCU가 손상되며, 현장 전압을 받을 수 있는 쪽은 절연 카운터 입력입니다.
  • SDA · SCL을 인터럽트나 엔코더 입력으로 쓰면 I²C 통신은 함께 사용할 수 없습니다.
  • 카운트에 쓰는 타이머로는 PWM 출력을 할 수 없습니다(반대도 같습니다).
  • TCNT4 고속 카운터와 아날로그 출력 AO(6) · AO(7)은 TIMER4를 함께 쓰므로 동시에 사용할 수 없습니다.
예제 코드 — 인터럽트
void setup() {
  Serial.begin(9600);
  // a rising edge on P(2) calls _INT2()
  attachInterrupt(digitalPinToInterrupt(2), _INT2, RISING);
}

void loop() {
}

void _INT2() {
  Serial.println("ok");
}
예제 코드 — 로터리 엔코더
volatile long encoderValue = 0;

void setup() {
  Serial.begin(115200);
  // SDA(20) = phase A, SCL(21) = phase B. I2C cannot be used at the same time.
  attachInterrupt(digitalPinToInterrupt(SDA), updateEncoder, FALLING);
}

void loop() {
  Serial.print("Encoder: ");
  Serial.println(encoderValue);
  delay(500);
}

void updateEncoder() {
  if (digitalRead(SCL) == LOW) encoderValue++;
  else                         encoderValue--;
}
예제 코드 — 하드웨어 카운터
unsigned int HCNT4, HCNT5;

void setup(void) {
  // TIMER4 external clock mode (T4 pin)
  TIMSK4 = 0x00; TCCR4A = 0x00; TCCR4B = 0x07; TCNT4 = 0x00;
  // TIMER5 external clock mode (T5 pin)
  TIMSK5 = 0x00; TCCR5A = 0x00; TCCR5B = 0x07; TCNT5 = 0x00;
}

void loop(void) {
  HCNT4 = TCNT4;  // pulses counted on the TCNT4 terminal
  HCNT5 = TCNT5;  // pulses counted on the TCNT5 terminal
}

void hcntReset() {
  TCNT4 = 0; TCNT5 = 0;
}

통신RS-232 · RS-485 · UART · I²C

RS-232 · RS-485 · TTL UART · I²C 4채널 통신

RS-232는 Serial1, RS-485는 Serial2, TTL UART는 Serial3으로 각각 전용 단자에 인출되어 있고, I²C는 Wire 라이브러리로 사용하며 풀업 저항이 내장되어 있습니다. 모든 외부 포트에서 Modbus RTU 마스터 · 슬레이브를 사용할 수 있습니다. RS-485는 MAX13487 트랜시버가 송수신을 자동으로 전환하므로 DE/RE 제어 핀이 필요 없습니다.

  • RS-485 · 1채널

    Serial2 · 1:N 멀티드롭 · MAX13487 자동 전환

  • RS-232 · 1채널

    Serial1 · TX / RX 단자로 1:1 연결

  • UART(TTL) · 1채널

    Serial3 · TXD · RXD · GND 단자 · 레벨 변환 없음

  • I²C · 1채널

    Wire · 4.7kΩ 풀업 내장 · 1:N

  • Modbus RTU

    모든 외부 포트에서 마스터 · 슬레이브

RS-232 · UART · I²C · USB 커넥터

RS-232TXRXUARTTXDRXDGNDI²CSDASCLUSBUPLOAD

* 각 커넥터는 실크 표기 그대로 그렸습니다. I²C 커넥터는 신호 2핀뿐이므로 I²C 기기의 전원은 전원 단자대의 +5V · GND에서 가져오십시오. 프로그램 포트의 실크는 UPLOAD입니다.

RS-485 연결

MAX13487 · Serial2485+485-RS-485 연결노드 1노드 2노드 3

* RS-485는 멀티드롭 버스이므로 485+는 각 노드의 485+에, 485−는 각 노드의 485−에 연결합니다. 송수신 전환은 트랜시버가 스스로 하므로 스케치에서 DE/RE 제어 핀을 다룰 필요가 없습니다.

통신 포트

포트용도
SerialD1(TX0) · D0(RX0)UPLOAD USB 포트로 업로드와 디버깅
Serial1D18(TX1) · D19(RX1)TX / RX 단자의 RS-232 · 1:1
Serial2D16(TX2) · D17(RX2)485+ / 485− 단자의 RS-485 · 1:N
Serial3D14(TX3) · D15(RX3)TXD · RXD · GND 단자의 TTL UART
Wire(I²C)SDA = D20 · SCL = D212핀 커넥터 · 4.7kΩ 풀업 내장

외부 포트 4개 모두 Modbus RTU 마스터 · 슬레이브를 지원합니다. UART 채널은 TTL 레벨이며 라인 드라이버가 없으므로, 장거리 배선이 아니라 가까운 모듈과의 연결에 사용합니다.

사용 전 확인

  • I²C 커넥터는 신호 핀만 있습니다. 기기의 +5V · GND는 전원 단자대(1A 이하 전원 출력)에서 가져오십시오.
  • SDA · SCL을 외부 인터럽트나 엔코더 입력으로 사용하면 I²C 통신은 함께 쓸 수 없습니다.
  • UART 채널은 TTL 레벨이며 절연되어 있지 않습니다. RS-232나 RS-485 회선에 직접 연결하지 마십시오.
  • 업로드에는 USB-TTL 컨버터가 내장된 MP 다운로드 케이블이 필요합니다. 시중의 USB 케이블로는 업로드할 수 없습니다.
예제 코드 — 시리얼 송수신
void setup() {
  Serial.begin(9600);    // USB download (debug)
  Serial1.begin(9600);   // RS232
  Serial2.begin(9600);   // RS485 (automatic direction control)
  Serial3.begin(9600);   // UART
}

void loop() {
  if (Serial1.available()) Serial.write(Serial1.read());
  if (Serial2.available()) Serial.write(Serial2.read());
  if (Serial3.available()) Serial.write(Serial3.read());
}

7세그먼트(FND) 연결FND · TM1637

4자리 7세그먼트 표시기를 신호 2선으로 — 최대 2개

표시기 모듈에 TM1637이 들어 있어 4자리 표시에 클럭선과 데이터선 2가닥이면 됩니다. 이 보드에는 표시기 전용 커넥터가 없고, 두 신호를 일반 나사 단자에 연결합니다(권장 CLK = P(5) · DIO = P(2)). +5V·GND는 하단 전원 단자대에서 가져오므로 배선은 모두 4선입니다.

  • CLK · DIO 2선 제어

    TM1637 내장 4자리 모듈은 이 2선이면 동작

  • 최대 2개 연결

    표시기 1개당 단자 1쌍 사용

  • 보드에서 급전

    하단 전원 단자대의 +5V · GND · 최대 1A

  • 내장 명령어

    IsegDecimal · IsegHex로 10진수 · 16진수 표시

표시기와 연결 단자

표시기연결 단자
1번째CLK = P(5) · DIO = P(2)D5 · D2
2번째CLK = P(11) · DIO = P(12)D11 · D12
전원+5V · GND보드 출력 · 최대 1A

신호 쪽 단자는 펄스 출력(PWM) 단자를 겸해서 씁니다. 표시기에 쓰는 동안 그 단자는 원래 용도로 쓸 수 없습니다. +5V 단자는 이 보드에서 출력으로 쓸 수 있어 표시기에 별도 전원이 필요하지 않습니다. 표시기 모듈 자체는 별매 액세서리입니다.

권장 결선

4자리 7세그먼트(FND) 모듈DIOCLK+5VGNDP(2)D2P(5)D5+5VGND

* 단자의 실크 표기는 P(2) · P(5) · +5V · GND입니다. 보드에는 CLK · DIO라는 표기가 없으므로 각 선의 역할을 연결되는 쪽에 함께 적었습니다. P(5) = D5, P(2) = D2입니다. 표시기는 소수점을 표시하는 형식과 시간을 표시하는 형식이 있으며 둘 다 별매입니다.

여러 개 연결하기

1P(2)DIOD2P(5)CLKD52P(12)DIOD12P(11)CLKD11

* 표시기 1개마다 CLK · DIO 한 쌍이 필요하고, +5V · GND는 모든 표시기가 함께 씁니다. 아래 단자 이름은 보드에 적힌 순서(왼쪽에서 오른쪽)라서 클럭선이 항상 왼쪽인 것은 아닙니다.

사용 전 확인

  • 표시기에 사용한 단자는 펄스 출력(PWM)으로 동시에 사용할 수 없습니다.
  • 아래 예제의 Iseg 계열 명령어는 ARDUINO SDK에 내장돼 있습니다. SDK만 설치하면 바로 쓸 수 있고, 별도 라이브러리 추가나 #include가 필요 없습니다.
  • P(2) · P(5)는 TIMER3, P(11) · P(12)는 TIMER1 자원입니다. 표시기에 사용한 단자는 PWM 출력으로 동시에 쓸 수 없습니다.
  • P(2)는 외부 인터럽트(INT4) 겸용 단자입니다. 표시기에 사용하면 인터럽트로 동시에 쓸 수 없습니다.
  • 7세그먼트 모듈은 별매 액세서리로, 제품에 포함되지 않습니다.
예제 코드 — 7세그먼트 표시
// 4-digit 7-segment (TM1637) on the P(5) and P(2) terminals - CLK, DIO, +5V, GND
// Iseg* are ARDUINO SDK built-in commands: nothing to install, no #include to add.

void setup()
{
  IsegBegin(5, 2);
  IsegBrightness(7);   // 0-7 - required, nothing lights without it
  IsegClear();
}

void loop()
{
  IsegDecimal((millis() / 1000UL) % 10000UL, true);
  delay(200);
}

전원 · 정전유지Power · Backup

DC 12V ~ 24V 입력 · 5V 변환, 정전이 되어도 데이터 유지

본체는 DC 12V ~ 24V를 입력받아 내부에서 LM2576 레귤레이터로 5V로 변환해 사용합니다. 전원 용량은 24V 0.5A 이상으로 잡으십시오.

  • DC 12V ~ 24V

    전원 용량은 24V 0.5A 이상

  • 내부 5V 변환

    LM2576 DC-DC 변환

  • +5V 출력 1A

    전원 단자대의 +5V 단자에서 공급

  • 슈퍼 캐패시터 정전유지

    +5V 단자에 연결 시 약 10초 유지

전원 배선 전 확인

  • EEPROM은 같은 섹션 기준 약 100,000회 쓰기 수명이 있습니다. 빠르게 변하는 값은 RAM에 두고, 정전이 감지될 때만 저장하십시오(아래 두 가지 방법 참조).
  • USB 전원만으로는 아날로그 출력이 정상 동작하지 않습니다. 출력 버퍼가 24V 전원을 필요로 하므로 외부 전원을 투입하십시오.

전원이 흐르는 경로

DC 12V ~ 24V24V 0.5A 이상LM2576DC-DC 5V 변환내부 5V제어 회로에 공급+5V 단자최대 1A 출력USB 5V다운로드 포트슈퍼 캐패시터약 10초 유지
전원 입력5V 라인정전유지

* 두 전원 중 어느 쪽으로도 동작합니다. 외부 전원은 레귤레이터를 거치고, 다운로드 포트의 5V는 곧바로 들어옵니다. 슈퍼 캐패시터는 같은 5V 노드에 붙어, 두 전원이 모두 없어졌을 때 그 노드를 유지합니다.

전원 · 정전유지 사양

입력 전압DC 12V ~ 24V
권장 전원 용량24V 0.5A 이상
내부 변환LM2576 DC-DC로 5V
+5V 출력전원 단자대의 +5V 단자에서 최대 1A
USB 전원 동작다운로드 포트로 컴퓨터의 5V를 받아 동작
비휘발 메모리EEPROM 4 KB · 쓰기 약 100,000회
정전 시 유지 시간+5V 단자의 슈퍼 캐패시터로 약 10초
유지 가능한 정전 횟수정전 시에만 기록하므로 100,000회 이상

전원 용량은 24V 0.5A 이상에, +5V 단자로 내보낼 전류(최대 1A)를 더해 선정하십시오.

정전 시 데이터를 유지하는 두 가지 방법

값이 얼마나 자주 바뀌는지에 따라 방법이 달라집니다. 두 가지는 함께 씁니다.

EEPROM — 가끔 바뀌는 값

내장 EEPROM은 전원이 꺼져도 4 KB의 데이터를 유지하며 바이트 단위로 쓰고 지울 수 있습니다. 다만 같은 영역 기준 쓰기 수명이 약 100,000회이므로, 설정값·캘리브레이션 데이터·설비 파라미터처럼 가끔 바뀌는 값에 적합하고 루프마다 갱신되는 값에는 적합하지 않습니다.

슈퍼 캐패시터 — 상시 변하는 값

+5V 단자에 슈퍼 캐패시터를 연결하면 메인 전원이 차단된 뒤에도 내부 5V가 약 10초간 유지됩니다. 메인 전원을 디지털 입력에 연결해 두고, digitalRead()로 그 입력이 OFF되는 순간 값을 EEPROM에 기록한 뒤 정전해지시 setup()에서 EEPROM에 저장한 값을 다시 읽어서 메모리에 기록하면 됩니다. EEPROM에 기록이 정전 순간에만 일어나므로, 100,000회 이상의 정전을 견딜 수 있습니다.

MPINO STUDIO2 — 옵션으로 간단히

MPINO STUDIO2에서는 슈퍼 캐패시터를 이용한 정전유지를 옵션으로 제공하므로, 위 절차를 직접 코딩하지 않고 설정만으로 구현할 수 있습니다.

설치 · 딘레일DIN Rail

35mm 딘레일 클립 장착 또는 PCB 직접 장착

제어반 안에서는 35mm 딘레일에 클립으로 고정하고, 기계에 내장할 때는 PCB의 Ø3.5 장착홀로 나사 고정합니다. 레일 클립을 쓰지 않을 때의 외형은 160.0 × 100.0 mm이고, 레일에 클립을 체결한 뒤 높이는 114.2 mm입니다.

  • 35mm 딘레일

    제어반 레일에 클립으로 고정

  • PCB 직접 장착

    Ø3.5 장착홀로 나사 고정

  • 160.0 × 100.0 mm

    레일 클립 없는 PCB 외형

  • 체결 후 114.2 mm

    클립 열림 119.4 mm · 체결 후 114.2 mm

설치와 기구 치수

장착 방식35mm 딘레일 또는 PCB 직접 체결(Ø3.5 홀)
딘레일 규격35 mm
PCB 단독 (클립 미장착)160.0 × 100.0 mm
마운팅 홀Ø3.5 mm · 피치 143.2 × 90.0 mm
클립 열었을 때 (체결 전)약 119.4 mm
클립 닫았을 때 (체결 후)약 114.2 mm

딘레일을 쓰지 않을 때는 PCB의 Ø3.5 장착홀로 나사 고정하고, 레일에 설치할 때는 35mm 레일에 클립을 체결해 전체 높이가 114.2 mm가 됩니다.

35mm 딘레일 장착

35 mm
딘레일 클립35mm 딘레일보드

* 35mm 딘레일에 클립을 걸어 고정합니다. 전체 높이는 클립을 열었을 때 119.4 mm, 닫아 체결한 뒤에는 114.2 mm입니다. 그림은 클립 자체의 형상이 아니라 장착 방식을 나타낸 것입니다.

외형과 장착홀

160.0143.2100.0장착홀 Ø3.5

* 레일 클립을 쓰지 않을 때의 외형과 장착홀입니다. 단위는 mm입니다.

설치 시 주의

  • 실내 전용입니다. 비 · 먼지 · 서리 · 직사광 · 결로가 있는 환경에는 설치할 수 없습니다.
  • 인화성 · 폭발성 가스가 있는 환경에는 설치하지 마십시오.
  • 진동이나 충격이 많은 곳에는 설치하지 마십시오.
  • 인명이나 재산에 영향이 큰 설비(원자력 · 의료 · 선박 · 차량 · 항공 등)에 사용할 때는 반드시 2중 안전장치를 부착하십시오.

다운로드

/ FILES

자주 묻는 질문

MPINO-16A8R8T의 I/O 점수는 어떻게 되나요?

MPINO-16A8R8T은(는) 절연 디지털 입력 16점과 릴레이 출력 16점을 제공하며, RS-485, RS-232, UART, I²C 통신을 내장합니다. 전체 내역은 사양 표를 참고하십시오.

MPINO-16A8R8T은(는) Modbus RTU를 지원하나요?

네. MPINO-16A8R8T은(는) 시리얼 인터페이스에서 Modbus RTU를 지원하며, 마스터·슬레이브 모두 사용할 수 있습니다.

관련 컨트롤러

/ RELATED

관련 가이드

/ DOCS