User Tools

Site Tools


en-us_products:mpaino_8a8r

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en-us_products:mpaino_8a8r [2026/09/07 21:52] – 만듦 - 바깥 편집 127.0.0.1en-us_products:mpaino_8a8r [2026/10/25 08:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== MPAINO-8A8R ====== ====== MPAINO-8A8R ======
  
-MPAINO Series is an assembled industrial Arduino combining a CPU module with digital input and output modules. \\+The MPAINO Series comprises modular industrial Arduino controllers assembled from a CPU module and digital input and output modules. \\
 Analog input/output, temperature sensor input, and high-speed pulse output modules can be added as options. \\ Analog input/output, temperature sensor input, and high-speed pulse output modules can be added as options. \\
 The selected I/O and optional modules are assembled and shipped as one product. Users cannot add or remove modules. The selected I/O and optional modules are assembled and shipped as one product. Users cannot add or remove modules.
  
-[[:en-us_products:mpaino_x|X analog input module details — DIP settings, wiring and examples →]]+[[:en-us_products:mpaino_x|X analog input module details]] \\ 
 +[[:en-us_products:mpaino_y|Y analog output module details]] \\ 
 +[[:en-us_products:mpaino_f|F PT100 temperature input module details]] \\ 
 +[[:en-us_products:mpaino_k|K high-speed pulse output module details]]
  
 MPAINO-8A8R provides 8 digital inputs and 8 relay outputs. RS-232, RS-485, UART, and I²C communication are available. MPAINO-8A8R provides 8 digital inputs and 8 relay outputs. RS-232, RS-485, UART, and I²C communication are available.
  
 Program the controller with Arduino IDE (Arduino C/C++) or MPINO STUDIO 2 (Arduino C/C++ & ladder logic). Program the controller with Arduino IDE (Arduino C/C++) or MPINO STUDIO 2 (Arduino C/C++ & ladder logic).
 +
 +See the [[:en-us_products:mpaino#mpaino_series_specifications|MPAINO Series specifications]] for the board name and base pin numbers for MPAINO-8A8R.
 +
 +
 +
 +
  
 \\ \\
Line 25: Line 34:
 |  Power  |  -  |  Supply voltage  | DC 12~24V \\ For DC 24V, a power supply rated 0.5A or more is recommended  | |  Power  |  -  |  Supply voltage  | DC 12~24V \\ For DC 24V, a power supply rated 0.5A or more is recommended  |
 |  Digital inputs  |  8 points \\ (Isolated)  |  D0~D3 / COM0 \\ D4~D7 / COM1  | operating input voltage: DC 0~40V \\ HIGH detection voltage: DC 5V or higher \\ 4 points/1COM \\ NPN/PNP input support  | |  Digital inputs  |  8 points \\ (Isolated)  |  D0~D3 / COM0 \\ D4~D7 / COM1  | operating input voltage: DC 0~40V \\ HIGH detection voltage: DC 5V or higher \\ 4 points/1COM \\ NPN/PNP input support  |
-|  Relay outputs  |  8 points \\ (Isolated dry contacts)  |  D64~D67 / COM2 \\ D68~D71 / COM3  | connection voltage: DC 0~30V or AC 0~250V \\ maximum allowable current: 5A/1 points, 8A/1COM \\ 4 points/1COM  |+|  Relay outputs  |  8 points \\ (Isolated dry contacts)  |  D64~D67 / COM2 \\ D68~D71 / COM3  | connection voltage: DC 0~30V or AC 0~250V \\ maximum allowable current: 5A/1 point, 8A/1COM \\ 4 points/1COM  |
 |  High-Speed Inputs / Interrupts  |  2 points \\ (Isolated)  |  D0(INT0), D1(INT1) / COM0  | Max. 8kHz \\ Shared with digital inputs  | |  High-Speed Inputs / Interrupts  |  2 points \\ (Isolated)  |  D0(INT0), D1(INT1) / COM0  | Max. 8kHz \\ Shared with digital inputs  |
 | ::: |  2 points \\ (Non-isolated)  |  SDA(D20·INT2), SCL(D21·INT3)  | Max. 50kHz \\ Built-in 4.7kΩ pull-up \\ Shared with I²C communication  | | ::: |  2 points \\ (Non-isolated)  |  SDA(D20·INT2), SCL(D21·INT3)  | Max. 50kHz \\ Built-in 4.7kΩ pull-up \\ Shared with I²C communication  |
Line 39: Line 48:
 ===== Digital inputs ===== ===== Digital inputs =====
  
 +[[:en-us_guide:wiring#digital_input_one_channel_check|See the one-channel digital-input check before wiring for the first time. →]]
 ^ Group ^ Terminal ^ Input Configuration ^ Terminals and Wiring Example ^ ^ Group ^ Terminal ^ Input Configuration ^ Terminals and Wiring Example ^
 | COM0 | D0~D3 | 4 isolated digital inputs \\ D0/D1 also serve as INT0/INT1 |  {{:en-us_products:mpaino-input-io8.svg?740|MPAINO-8A8R digital input terminals and NPN/PNP wiring}}  | | COM0 | D0~D3 | 4 isolated digital inputs \\ D0/D1 also serve as INT0/INT1 |  {{:en-us_products:mpaino-input-io8.svg?740|MPAINO-8A8R digital input terminals and NPN/PNP wiring}}  |
Line 72: Line 82:
  
 === Function example · consecutive-read filter: IdigitalRead() === === Function example · consecutive-read filter: IdigitalRead() ===
 +
 +**Function details:** [[en-us_commands:reference:idigitalread|IdigitalRead()]]
  
 **Function prototype** **Function prototype**
Line 94: Line 106:
  
 === Function example · debouncing: Ibounce(), IbounceOn(), IbounceOff() === === Function example · debouncing: Ibounce(), IbounceOn(), IbounceOff() ===
 +
 +**Function details:** [[en-us_commands:ibounce|Ibounce()]] · [[en-us_commands:reference:ibounceon|IbounceOn()]] · [[en-us_commands:reference:ibounceoff|IbounceOff()]]
  
 **Function prototype** **Function prototype**
Line 136: Line 150:
  
 === Function example · input toggle: Ialt() === === Function example · input toggle: Ialt() ===
 +
 +**Function details:** [[en-us_commands:reference:ialt|Ialt()]]
  
 **Function prototype** **Function prototype**
Line 168: Line 184:
 ===== Relay outputs ===== ===== Relay outputs =====
  
 +[[:en-us_guide:wiring#relay_output_one_channel_check|See the one-channel relay-output check before wiring for the first time. →]]
 ^ Group ^ Output terminals ^ Contact configuration ^ Terminals and Wiring Example ^ ^ Group ^ Output terminals ^ Contact configuration ^ Terminals and Wiring Example ^
 | COM2 | D64~D67 | 4 relay outputs share COM2 |  {{:en-us_products:mpaino-output-relay8.svg?740|MPAINO-8A8R output terminals and load wiring}}  | | COM2 | D64~D67 | 4 relay outputs share COM2 |  {{:en-us_products:mpaino-output-relay8.svg?740|MPAINO-8A8R output terminals and load wiring}}  |
Line 176: Line 193:
 ^ Item ^ Rating ^ ^ Item ^ Rating ^
 | Connection voltage | DC 0~30V or AC 0~250V | | Connection voltage | DC 0~30V or AC 0~250V |
-| Maximum allowable current | 5A/1 points |+| Maximum allowable current | 5A/1 point |
 | Maximum allowable current per COM | 8A/1COM | | Maximum allowable current per COM | 8A/1COM |
  
Line 206: Line 223:
 ==== Example program · pulse counting ==== ==== Example program · pulse counting ====
  
-SDA(D20) on the I²C terminals is a 4.7kΩ pull-up input. Do not use this example simultaneously with I²C communication. In the current core, argument 2 of digitalPinToInterrupt() is the logical interrupt number assigned to SDA, not digital input 2. Count FALLING edges when SDA changes from HIGH to LOW. This is a software ISR example and does not guarantee lossless counting at the maximum frequency.+SDA(D20) on the I²C terminals is a 4.7kΩ pull-up input. Do not use this example simultaneously with I²C communication. In the MPAINO board package, argument 2 of digitalPinToInterrupt() is the logical interrupt number assigned to SDA, not digital input 2. Count FALLING edges when SDA changes from HIGH to LOW. This is a software ISR example and does not guarantee lossless counting at the maximum frequency.
  
 <code cpp> <code cpp>
Line 231: Line 248:
 ==== Example program · encoder inputs ==== ==== Example program · encoder inputs ====
  
-SDA(D20) on the I²C terminals is a 4.7kΩ pull-up input. Do not use this example simultaneously with I²C communication. In the current core, argument 2 of digitalPinToInterrupt() is the logical interrupt number assigned to SDA, not digital input 2. Connect phase A to SDA and phase B to SCL. At the falling edge of phase A, increment when B is HIGH and decrement when B is LOW. The direction changes with the phase A/B connections. Because SCL overlaps the digital module logical numbers, read the physical pin state directly.+SDA(D20) on the I²C terminals is a 4.7kΩ pull-up input. Do not use this example simultaneously with I²C communication. In the MPAINO board package, argument 2 of digitalPinToInterrupt() is the logical interrupt number assigned to SDA, not digital input 2. Connect phase A to SDA and phase B to SCL. At the falling edge of phase A, increment when B is HIGH and decrement when B is LOW. The direction changes with the phase A/B connections. Because SCL overlaps the digital module logical numbers, read the physical pin state directly.
  
 <code cpp> <code cpp>
Line 276: Line 293:
  
 <code cpp> <code cpp>
-// Serial Monitor via MP download cable ↔ RS-232 Serial1+// Serial Monitor via USB download port ↔ RS-232 Serial1
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
Line 295: Line 312:
  
 <code cpp> <code cpp>
-// MP download cable Serial monitor ↔ RS-232 Serial2+// USB download port Serial Monitor ↔ RS-485 Serial2
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
Line 314: Line 331:
  
 <code cpp> <code cpp>
-// MP download cable Serial monitor ↔ RS-232 Serial3+// USB download port Serial Monitor ↔ UART Serial3
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
Line 368: Line 385:
  
 === Function example · Modbus RTU Slave: ImodbusRTUMem(), ImodbusRTUAdr(), ImodbusRTUInit(), ImodbusRTU() === === Function example · Modbus RTU Slave: ImodbusRTUMem(), ImodbusRTUAdr(), ImodbusRTUInit(), ImodbusRTU() ===
 +
 +**Function details:** [[en-us_commands:reference:imodbusrtumem|ImodbusRTUMem()]] · [[en-us_commands:reference:imodbusrtuadr|ImodbusRTUAdr()]] · [[en-us_commands:reference:imodbusrtuinit|ImodbusRTUInit()]] · [[en-us_commands:reference:imodbusrtu|ImodbusRTU()]]
  
 **Function prototype** **Function prototype**
Line 412: Line 431:
  
 === Function example · Modbus RTU Master: ImodbusRTUmasterInit(), ImodbusRTUmaster() === === Function example · Modbus RTU Master: ImodbusRTUmasterInit(), ImodbusRTUmaster() ===
 +
 +**Function details:** [[en-us_commands:reference:imodbusrtumasterinit|ImodbusRTUmasterInit()]] · [[en-us_commands:reference:imodbusrtumaster|ImodbusRTUmaster()]]
  
 **Function prototype** **Function prototype**
Line 451: Line 472:
 **Related built-in functions** **Related built-in functions**
  
-=== Function example · LS Industrial Systems Cnet SLave: ICnetMem(), ICnetAdr(), ICnetInit(), ICnet() ===+=== Function example · LS Industrial Systems Cnet Slave: ICnetMem(), ICnetAdr(), ICnetInit(), ICnet() === 
 + 
 +**Function details:** [[en-us_commands:reference:icnetmem|ICnetMem()]] · [[en-us_commands:reference:icnetadr|ICnetAdr()]] · [[en-us_commands:reference:icnetinit|ICnetInit()]] · [[en-us_commands:reference:icnet|ICnet()]]
  
 **Function prototype** **Function prototype**
Line 497: Line 520:
  
 ===== Optional modules ===== ===== Optional modules =====
 +
 +The following optional modules can be added to the product configuration. The product is assembled and shipped in the selected configuration. \\
 +Users cannot add or remove I/O modules or optional modules.
 +
 +^ Code ^ Function ^ Points per module ^ Maximum configuration ^ Key features ^
 +| [[:en-us_products:mpaino_x|X · Details]] | Analog inputs | 4 points | Up to 5 units, 20 points | ADS1118 \\ Select DC 0~5V / 0~10V / 0(4)~20mA / NTC input |
 +| [[:en-us_products:mpaino_f|F · Details]] | PT100Ω temperature sensor input | 4 points | Up to 5 units, 20 points | ADS1118 \\ 2-wire or 3-wire PT100Ω input |
 +| [[:en-us_products:mpaino_y|Y · Details]] | Analog outputs | 3 points | Up to 4 units, 12 points | PWM smoothing \\ Select DC 0~5V / 0~10V / 0(4)~20mA output |
 +| [[:en-us_products:mpaino_k|K · Details]] | High-speed pulse outputs | 6 points | Up to 2 units, 12 points | Direct MCU PWM signal output |
 +
 +The combined total of analog inputs and PT100Ω temperature sensor inputs cannot exceed 20 points. \\
 +The combined total of analog outputs and high-speed pulse outputs cannot exceed 12 points. \\
 +Products with optional modules are custom-built, so exchanges or refunds may be difficult.
  
 This example is for a product shipped with the corresponding optional module. Match the module configuration shown in the example to the actual factory configuration. This example is for a product shipped with the corresponding optional module. Match the module configuration shown in the example to the actual factory configuration.
Line 522: Line 558:
  
 === Function example · input range scaling: IanalogRead(), IanalogReadf() === === Function example · input range scaling: IanalogRead(), IanalogReadf() ===
 +
 +**Function details:** [[en-us_commands:reference:ianalogread|IanalogRead()]] · [[en-us_commands:reference:ianalogreadf|IanalogReadf()]]
  
 **Function prototype** **Function prototype**
Line 553: Line 591:
  
 === Function example · 4~20mA range scaling: IanalogRead2(), IanalogRead2f() === === Function example · 4~20mA range scaling: IanalogRead2(), IanalogRead2f() ===
 +
 +**Function details:** [[en-us_commands:reference:ianalogread2|IanalogRead2()]] · [[en-us_commands:reference:ianalogread2f|IanalogRead2f()]]
  
 **Function prototype** **Function prototype**
Line 586: Line 626:
  
 === Function example · moving average: analogReadAvg(), analogRead2Avg() === === Function example · moving average: analogReadAvg(), analogRead2Avg() ===
 +
 +**Function details:** [[en-us_commands:reference:analogreadavg|analogReadAvg()]] · [[en-us_commands:reference:analogread2avg|analogRead2Avg()]]
  
 **Function prototype** **Function prototype**
Line 635: Line 677:
  
 === Function example · NTC temperature conversion: ntcRead(), ntcReadf() === === Function example · NTC temperature conversion: ntcRead(), ntcReadf() ===
 +
 +**Function details:** [[en-us_commands:reference:ntcread|ntcRead()]] · [[en-us_commands:reference:ntcreadf|ntcReadf()]]
  
 **Function prototype** **Function prototype**
Line 666: Line 710:
  
 === Function example · read PT100 input: pt100Read() === === Function example · read PT100 input: pt100Read() ===
 +
 +**Function details:** [[en-us_commands:reference:pt100read|pt100Read()]]
  
 **Function prototype** **Function prototype**
Line 710: Line 756:
  
 === Function example · output range scaling: IanalogWrite(), IanalogWritef() === === Function example · output range scaling: IanalogWrite(), IanalogWritef() ===
 +
 +**Function details:** [[en-us_commands:reference:ianalogwrite|IanalogWrite()]] · [[en-us_commands:reference:ianalogwritef|IanalogWritef()]]
  
 **Function prototype** **Function prototype**
Line 751: Line 799:
  
 === Function example · specify duty value: PWM() === === Function example · specify duty value: PWM() ===
 +
 +**Function details:** [[en-us_commands:reference:pwm|PWM()]]
  
 **Function prototype** **Function prototype**
Line 771: Line 821:
  
 === Function example · set frequency/duty: FDPWM() === === Function example · set frequency/duty: FDPWM() ===
 +
 +**Function details:** [[en-us_commands:reference:fdpwm|FDPWM()]]
  
 **Function prototype** **Function prototype**
Line 791: Line 843:
  
 === Function example · output a specified pulse count: NPWM_BEGIN(), NPWM() === === Function example · output a specified pulse count: NPWM_BEGIN(), NPWM() ===
 +
 +**Function details:** [[en-us_commands:reference:npwm_begin|NPWM_BEGIN()]] · [[en-us_commands:reference:npwm|NPWM()]]
  
 **Function prototype** **Function prototype**
Line 813: Line 867:
  
 === Function example · stop/resume channel output: PWMOFF() === === Function example · stop/resume channel output: PWMOFF() ===
 +
 +**Function details:** [[en-us_commands:reference:pwmoff|PWMOFF()]]
  
 **Function prototype** **Function prototype**
Line 840: Line 896:
  
 === Function example · stop/reset PWM timers: PWM_RESET() === === Function example · stop/reset PWM timers: PWM_RESET() ===
 +
 +**Function details:** [[en-us_commands:reference:pwm_reset|PWM_RESET()]]
  
 **Function prototype** **Function prototype**
Line 866: Line 924:
  
 Control the CPU module STATUS LED with D128. Control the CPU module STATUS LED with D128.
 +
 +You can use the CPU module's STATUS LED to show activity in your program. This LED is on the CPU module and is not an external load output.
 +
 +First set ''pinMode(LED_BUILTIN, OUTPUT)''. Then use ''digitalWrite(LED_BUILTIN, HIGH)'' to turn the LED on and ''digitalWrite(LED_BUILTIN, LOW)'' to turn it off.
 +
 +==== Example · STATUS LED blink ====
 +
 +This example turns the CPU module's STATUS LED on and off every 500 ms.
 +
 +<code cpp>
 +void setup() {
 +  pinMode(LED_BUILTIN, OUTPUT);
 +}
 +
 +void loop() {
 +  digitalWrite(LED_BUILTIN, HIGH);
 +  delay(500);
 +  digitalWrite(LED_BUILTIN, LOW);
 +  delay(500);
 +}
 +</code>
  
 ==== Example program · status LED ==== ==== Example program · status LED ====
  
 Display the input 0 state on the CPU module STATUS LED (LED_BUILTIN, logical number 128). Display the input 0 state on the CPU module STATUS LED (LED_BUILTIN, logical number 128).
 +
 +**Output setup:** To use the input-state example below, add ''pinMode(LED_BUILTIN, OUTPUT);'' inside its ''setup()'' function.
  
 <code cpp> <code cpp>
Line 888: Line 969:
   - Select the verified COM number under Tools → Port in Arduino IDE.   - Select the verified COM number under Tools → Port in Arduino IDE.
   - Select ''MPAINO-8A8R(T)'' under Tools → Board.   - Select ''MPAINO-8A8R(T)'' under Tools → Board.
-  - Select ''AVR ISP'' under Tools → Programmer and upload the program.+  - Click **Verify (✓)** in Arduino IDE. If there are no errors, click **Upload (→)** to transfer the program.
  
 [[https://www.ilogics.net/ko-kr/resources/downloads/manual/15|Download MPAINO manual]] [[https://www.ilogics.net/ko-kr/resources/downloads/manual/15|Download MPAINO manual]]
Line 909: Line 990:
 |  [[https://www.ilogics.net/docs/_media/products:mpaino-8a8r-dimension-rear.svg|{{ :en-us_products:mpaino-8a8r-dimension-rear.svg?nolink&360 }}]]  |  | |  [[https://www.ilogics.net/docs/_media/products:mpaino-8a8r-dimension-rear.svg|{{ :en-us_products:mpaino-8a8r-dimension-rear.svg?nolink&360 }}]]  |  |
  
-[[:en-us_products:mpaino|← Back to MPAINO Series comparison]]+[[https://www.ilogics.net/en-us/products/mpaino-8a8r|View MPAINO-8A8R price and purchase options]]
  
 +[[:en-us_products:mpaino|← Back to MPAINO Series comparison]]
  
en-us_products/mpaino_8a8r.1788785570.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki