User Tools

Site Tools


en-us_products:mpino_8a4t_s

Differences

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

Link to this comparison view

Next revision
Previous revision
en-us_products:mpino_8a4t_s [2026/09/07 21:01] – 만듦 - 바깥 편집 127.0.0.1en-us_products:mpino_8a4t_s [2026/09/15 17:45] (current) – external edit 127.0.0.1
Line 5: Line 5:
 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).
  
-{{ :en-us_products:mpino-8a4t-s-connectors.svg?nolink |MPINO-8A4T-S Connector Guide }}+See the [[:en-us_products:mpino_series#mpino_series_specifications|MPINO Series specifications]] for the board name, connection method, and first I/O numbers for MPINO-8A4T-S. 
 + 
 + 
 + 
 + 
 + 
 +{{ :en-us_products:mpino-8a4t-s-connectors.svg?nolink |MPINO-8A4T-S connector guide }}
  
 ===== Product Specifications ===== ===== Product Specifications =====
  
 ^  Category  ^  Quantity  ^  Terminal / Item  ^  Specifications  ^ ^  Category  ^  Quantity  ^  Terminal / Item  ^  Specifications  ^
-|  Power  |  -  |  Supply voltage  | DC 12~24V (at least 0.5A when using DC 24V)  | +|  Power  |  -  |  Supply voltage  | DC 12~24V (0.5A or more when using DC 24V)  | 
-|  Digital Inputs   8 points \\ (solid-state, isolated)  |  P0~P7  | Operating input voltage: DC 0~40V \\ HIGH detection voltage: DC 5V or higher \\ 8 points/1COM \\ NPN/PNP input support +|  Digital inputs   8 points \\ (Solid-state, isolated)  |  P0~P7  | operating input voltage: DC 0~40V \\ HIGH detection voltage: DC 5V or higher \\ 8 points/1COM \\ NPN/PNP input support 
-|  Transistor Outputs   4 points \\ (solid-state, isolated)  |  P32~P35  | Output Type: SINK output \\ Output operation: connected to V- when ON \\ Maximum output current: 1A/1 point \\ Load voltage: DC 0~100V \\ Connect the load supply to V+ and V-  | +|  Transistor outputs   4 points \\ (Solid-state, isolated)  |  P32~P35  | Output type: SINK \\ Output operation: connected to V- when ON \\ maximum allowable output current: 1A/1 points \\ load voltage: DC 0~100V \\ Connect the load supply to V+ and V-  | 
-|  Analog Inputs   2 points \\ (non-isolated)  |  A0, A1  | Input voltage: DC 0~5V \\ Resolution: 10bit (0~1023) \\ Input resistance: 100MΩ (±1%) +|  Analog inputs   2 points \\ (Non-isolated)  |  A0, A1  | input voltage: DC 0~5V \\ resolution: 10bit (0~1023) \\ input resistance: 100MΩ (±1%) 
-|  Analog Inputs   2 points \\ (non-isolated)  |  A2, A3  | Input current: 0~20mA or 4~20mA \\ Resolution: 0~20mA10bit (0~1023)4~20mA0~818 \\ Input resistance: 250Ω (±1%) +|  Analog inputs   2 points \\ (Non-isolated)  |  A2, A3  | input current: 0~20mA or 4~20mA \\ Resolution: 0~20mA is 10bit (0~1023)4~20mA is 0~818 \\ input resistance: 250Ω (±1%) 
-|  Analog Inputs   2 points \\ (non-isolated)  |  A4, A5  | Input voltage: DC 0~10V \\ Resolution: 10bit (0~1023) \\ Input resistance: 200kΩ (±1%) +|  Analog inputs   2 points \\ (Non-isolated)  |  A4, A5  | input voltage: DC 0~10V \\ resolution: 10bit (0~1023) \\ input resistance: 200kΩ (±1%) 
-|  Temperature Sensor Inputs   2 points \\ (non-isolated)  |  NTEMP \\ A6, A7  | Temperature range: -40~120℃ \\ Sensor: NTC 3950K, 10kΩ(25℃) \\ Resolution: 0.1℃ (0~40℃ reference)  | +|  Temperature sensor inputs   2 points \\ (Non-isolated)  |  NTEMP \\ A6, A7  | input temperature: -40~120℃ \\ Sensor: NTC 3950K, 10kΩ(25℃) \\ Resolution: 0.1℃ (at 0~40℃) 
-|  Interrupts \\ High-Speed Counter / Encoder  |  4 points \\ (non-isolated)  |  D24(CLK), D25(DIO) \\ D18(SCL), D19(SDA) Input voltage: DC 0~5V \\ HIGH detection voltage: DC 3V or higher \\ Input frequency: up to 50kHz \\ D24·D25: 4.7kΩ built-in pull-up \\ D18·D19: 4.7kΩ built-in pull-up +|  Interrupts \\ High-Speed Counter / Encoder  |  4 points \\ (Non-isolated)  |  D24(CLK), D25(DIO) \\ D18(SCL), D19(SDA) input voltage: DC 0~5V \\ HIGH detection voltage: DC 3V or higher \\ input frequency: Max. 50kHz \\ D24/D25built-in 4.7kΩ pull-up \\ D18/D19built-in 4.7kΩ pull-up 
-|  Pulse Outputs   3 points \\ (non-isolated)  |  PWM \\ D21, D22, D23  | Output voltage: LOW(DC 0V), HIGH(DC 5V) \\ Maximum output current: 30mA  | +|  Pulse outputs   3 points \\ (Non-isolated)  |  PWM \\ D21, D22, D23  | output voltage: LOW(DC 0V), HIGH(DC 5V) \\ maximum output current: 30mA  | 
-|  Communication Channels  |  1 channel \\ (non-isolated)  |  I²C  | I²C master/slave support \\ Can be used as interrupt inputs (4.7kΩ pull-up) +|  Communication Channels  |  1 channel \\ (Non-isolated)  |  I²C  | I²C master/slave supported \\ Can be used as interrupt ports (4.7kΩ pull-up) 
-| ::: | ::: |  RS-232  | Uses Serial1 \\ Modbus RTU Master & Slave built-in function support \\ LS Industrial Systems Cnet built-in function support  |+| ::: | ::: |  RS-232  | Uses Serial1 \\ Built-in Modbus RTU Master & Slave commands supported \\ Built-in LS Industrial Systems Cnet commands supported  |
 |  Memory  |  -  |  Flash  | 128KB  | |  Memory  |  -  |  Flash  | 128KB  |
 | ::: | ::: |  SRAM  | 4KB  | | ::: | ::: |  SRAM  | 4KB  |
 | ::: | ::: |  EEPROM  | 4KB  | | ::: | ::: |  EEPROM  | 4KB  |
 +
 +**Markdown file:** [[https://www.ilogics.net/docs/downloads:mpino:en:mpino_8a4t_s?do=export_raw|Download MPINO-8A4T-S.md]]
  
  
-===== 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. →]]
 ^ Terminal ^ Arduino Pin ^ Input Configuration ^ Terminals and Wiring Example ^ ^ Terminal ^ Arduino Pin ^ Input Configuration ^ Terminals and Wiring Example ^
-| P0~P3 | D0~D3 | Digital Inputs points, COM0 shared |  {{:en-us_products:mpino-8a4t-s-digital-input.svg?740|MPINO-8A4T-S digital input terminals and NPN/PNP wiring}} +| P0~P3 | D0~D3 | 4 digital inputssharing COM0 |  {{:en-us_products:mpino-8a4t-s-digital-input.svg?740|MPINO-8A4T-S digital input terminals and NPN/PNP wiring}} 
-| P4~P7 | D4~D7 | Digital Inputs points, COM1 shared | ::: |+| P4~P7 | D4~D7 | 4 digital inputssharing COM1 | ::: |
  
 The digital inputs are isolated by optocouplers and accept DC 5~24V NPN or PNP signals. Select the input type by wiring the COM terminal accordingly. The digital inputs are isolated by optocouplers and accept DC 5~24V NPN or PNP signals. Select the input type by wiring the COM terminal accordingly.
  
-==== Example Program · Digital Inputs ====+==== Example program · digital inputs ====
  
 Read P0~P7 with digitalRead() and display their states in the Serial Monitor every 200ms. HIGH is displayed as 1 and LOW as 0. Read P0~P7 with digitalRead() and display their states in the Serial Monitor every 200ms. HIGH is displayed as 1 and LOW as 0.
  
 <code cpp> <code cpp>
-// MPINO-8A4T-S: Display P0~P7 input states in the Serial Monitor.+// MPINO-8A4T-S: display P0~P7 input states in the serial monitor.
 void setup() { void setup() {
   Serial.begin(115200);   Serial.begin(115200);
Line 57: Line 66:
 </code> </code>
  
-**Related Built-in Functions**+**Related built-in functions**
  
-=== Function Example · Consecutive-read filter: IdigitalRead() ===+=== Function example · consecutive-read filter: IdigitalRead() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 81: Line 90:
 </code> </code>
  
-=== Function Example · Debouncing: Ibounce(), IbounceOn(), IbounceOff() ===+=== Function example · debouncing: Ibounce(), IbounceOn(), IbounceOff() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 123: Line 132:
 </code> </code>
  
-=== Function Example · Input toggle: Ialt() ===+=== Function example · input toggle: Ialt() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 154: Line 163:
  
  
-===== Transistor Outputs =====+===== Transistor outputs =====
  
 +[[:en-us_guide:wiring#sink_transistor_output_one_channel_check|See the one-channel SINK transistor-output check before wiring for the first time. →]]
 ^ Terminal ^ Arduino Pin ^ Output Type ^ Maximum Rating ^ Terminals and Wiring Example ^ ^ Terminal ^ Arduino Pin ^ Output Type ^ Maximum Rating ^ Terminals and Wiring Example ^
-| P32 | D32 | SINK output | DC 100V, 1A/1 point |  {{:en-us_products:mpino-8a4t-s-transistor-output.svg?698|MPINO-8A4T-S transistor output terminals and SINK wiring}} +| P32 | D32 | SINK outputs | DC 100V, 1A/1 points |  {{:en-us_products:mpino-8a4t-s-transistor-output.svg?698|MPINO-8A4T-S transistor output terminals and SINK wiring}} 
-| P33 | D33 | SINK output | DC 100V, 1A/1 point | ::: | +| P33 | D33 | SINK outputs | DC 100V, 1A/1 points | ::: | 
-| P34 | D34 | SINK output | DC 100V, 1A/1 point | ::: | +| P34 | D34 | SINK outputs | DC 100V, 1A/1 points | ::: | 
-| P35 | D35 | SINK output | DC 100V, 1A/1 point | ::: |+| P35 | D35 | SINK outputs | DC 100V, 1A/1 points | ::: |
  
 The transistor outputs use a SINK configuration: when ON, the output terminal connects to V-. Connect the external DC supply for the load to V+ and V-. The transistor outputs use a SINK configuration: when ON, the output terminal connects to V-. Connect the external DC supply for the load to V+ and V-.
  
-==== Example Program · Transistor Outputs ====+==== Example program · transistor outputs ====
  
 Read P0~P3 with digitalRead() and drive P32~P35 with digitalWrite(). The mapping is P0→P32, P1→P33, P2→P34, and P3→P35. A HIGH input turns the corresponding output ON. Read P0~P3 with digitalRead() and drive P32~P35 with digitalWrite(). The mapping is P0→P32, P1→P33, P2→P34, and P3→P35. A HIGH input turns the corresponding output ON.
  
 <code cpp> <code cpp>
-// MPINO-8A4T-S: Control P32~P35 SINK outputs with P0~P3 inputs.+// MPINO-8A4T-S: control P32~P35 SINK outputs with P0~P3 inputs.
 void setup() { void setup() {
   for (uint8_t channel = 0; channel < 4; channel++) {   for (uint8_t channel = 0; channel < 4; channel++) {
Line 190: Line 200:
 | A2, A3 | Current input | 0~20mA or 4~20mA | ::: | | A2, A3 | Current input | 0~20mA or 4~20mA | ::: |
 | A4, A5 | Voltage input | DC 0~10V | ::: | | A4, A5 | Voltage input | DC 0~10V | ::: |
-| A6, A7 | NTC Temperature Sensor Inputs | NTC 10kΩ, 3950K | ::: |+| A6, A7 | NTC temperature sensor inputs | NTC 10kΩ, 3950K | ::: |
  
-==== Example Program · Analog Inputs ====+==== Example program · analog inputs ====
  
 Use analogRead() to display the raw ADC readings (0~1023) of A0~A5 in the Serial Monitor. Voltage/current conversion and averaging are explained in the built-in function examples below. Use analogRead() to display the raw ADC readings (0~1023) of A0~A5 in the Serial Monitor. Voltage/current conversion and averaging are explained in the built-in function examples below.
Line 214: Line 224:
 </code> </code>
  
-**Related Built-in Functions**+**Related built-in functions**
  
-=== Function Example · Input scaling: IanalogRead(), IanalogReadf() ===+=== Function example · input range scaling: IanalogRead(), IanalogReadf() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 247: Line 257:
 </code> </code>
  
-=== Function Example · 4~20mA scaling: IanalogRead2(), IanalogRead2f() ===+=== Function example · 4~20mA range scaling: IanalogRead2(), IanalogRead2f() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 280: Line 290:
 </code> </code>
  
-=== Function Example · Moving average: analogReadAvg(), analogRead2Avg() ===+=== Function example · moving average: analogReadAvg(), analogRead2Avg() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 312: Line 322:
  
  
-==== Example Program · Temperature Sensor Inputs ====+==== Example program · temperature sensor inputs ====
  
 Display the raw ADC readings (0~1023) of NTC0(A6) and NTC1(A7) with analogRead(). To convert them to degrees Celsius, see the ntcRead() and ntcReadf() examples below. Display the raw ADC readings (0~1023) of NTC0(A6) and NTC1(A7) with analogRead(). To convert them to degrees Celsius, see the ntcRead() and ntcReadf() examples below.
Line 330: Line 340:
 </code> </code>
  
-**Related Built-in Functions**+**Related built-in functions**
  
-=== Function Example · Read NTC temperature: ntcRead(), ntcReadf() ===+=== Function example · read NTC temperature: ntcRead(), ntcReadf() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 364: Line 374:
  
 ^ Function ^ Arduino Pin ^ Points ^ Connector Pinout ^ ^ Function ^ Arduino Pin ^ Points ^ Connector Pinout ^
-| PWM Outputs | D21, D22, D23 | 3 points |  {{:en-us_products:mpino-8a4t-s-pwm-output.svg?334|MPINO-8A4T-S PWM Outputs connector pinout}}  |+| PWM outputs | D21, D22, D23 | 3 points |  {{:en-us_products:mpino-8a4t-s-pwm-output.svg?334|MPINO-8A4T-S PWM output connector pinout}}  |
 | High-Speed Inputs / Interrupts | D18, D19, D24, D25 | 4 points | ::: | | High-Speed Inputs / Interrupts | D18, D19, D24, D25 | 4 points | ::: |
 | Encoder Inputs | D24, D25 | 2 points | ::: | | Encoder Inputs | D24, D25 | 2 points | ::: |
Line 370: Line 380:
 D18 and D19 share the I²C SCL and SDA functions. These pins cannot be used as high-speed inputs while I²C communication is active. D18 and D19 share the I²C SCL and SDA functions. These pins cannot be used as high-speed inputs while I²C communication is active.
  
-==== Example Program · PWM Outputs ====+==== Example program · PWM outputs ====
  
 Specify the PWM duty cycle with an analogWrite() value of 0~255. Writing 64, 128, and 191 to PWM0(D21), PWM1(D22), and PWM2(D23) produces approximately 25%, 50%, and 75% duty cycles, respectively. For direct frequency and duty-cycle settings, see the FDPWM() example below. Specify the PWM duty cycle with an analogWrite() value of 0~255. Writing 64, 128, and 191 to PWM0(D21), PWM1(D22), and PWM2(D23) produces approximately 25%, 50%, and 75% duty cycles, respectively. For direct frequency and duty-cycle settings, see the FDPWM() example below.
Line 386: Line 396:
 </code> </code>
  
-**Related Built-in Functions**+**Related built-in functions**
  
-=== Function Example · Set duty value: PWM() ===+=== Function example · specify duty value: PWM() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 408: Line 418:
 </code> </code>
  
-=== Function Example · Set frequency and duty: FDPWM() ===+=== Function example · set frequency/duty: FDPWM() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 428: Line 438:
 </code> </code>
  
-=== Function Example · Output a specified pulse count: NPWM_BEGIN(), NPWM() ===+=== Function example · output a specified pulse count: NPWM_BEGIN(), NPWM() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 450: Line 460:
 </code> </code>
  
-=== Function Example · Stop/resume channel: PWMOFF() ===+=== Function example · stop/resume channel output: PWMOFF() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 477: Line 487:
 </code> </code>
  
-=== Function Example · Stop/reset PWM timers: PWM_RESET() ===+=== Function example · stop/reset PWM timers: PWM_RESET() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 501: Line 511:
  
  
-==== Example Program · Pulse Counting ====+==== Example program · pulse counting ====
  
 CLK(D24) is pulled up and stays HIGH when no signal is applied. Count each HIGH→LOW transition caused by an external signal pulling it to GND with FALLING, and display the count every 500ms. Read the 32-bit value with ATOMIC_BLOCK. This software-interrupt example does not guarantee lossless counting at the maximum input frequency. CLK(D24) is pulled up and stays HIGH when no signal is applied. Count each HIGH→LOW transition caused by an external signal pulling it to GND with FALLING, and display the count every 500ms. Read the 32-bit value with ATOMIC_BLOCK. This software-interrupt example does not guarantee lossless counting at the maximum input frequency.
Line 532: Line 542:
  
  
-==== Example Program · Encoder Inputs ====+==== Example program · encoder inputs ====
  
 Connect phase A to the pulled-up CLK(D24) input and phase B to DIO(D25). This x1 decoding example increments the count when DIO is LOW at the CLK falling edge (FALLING), and decrements it when DIO is HIGH. The actual rotation direction depends on the phase A/B wiring. Connect phase A to the pulled-up CLK(D24) input and phase B to DIO(D25). This x1 decoding example increments the count when DIO is LOW at the CLK falling edge (FALLING), and decrements it when DIO is HIGH. The actual rotation direction depends on the phase A/B wiring.
Line 576: Line 586:
 | I²C | D18(SCL), D19(SDA) | ''Wire'' | ::: | | I²C | D18(SCL), D19(SDA) | ''Wire'' | ::: |
  
-==== Example Program · Basic Communication ====+==== Example program · basic communication ====
  
 Forward characters received on Serial(115200bps) to Serial1(9600bps, 8-N-1), and forward Serial1 input back to Serial. Check transmit-buffer space with availableForWrite(). Continuous transmission faster than the receiving device can process may overflow its receive buffer. Forward characters received on Serial(115200bps) to Serial1(9600bps, 8-N-1), and forward Serial1 input back to Serial. Check transmit-buffer space with availableForWrite(). Continuous transmission faster than the receiving device can process may overflow its receive buffer.
Line 598: Line 608:
  
  
-==== Example Program · I²C Communication ====+==== Example program · I²C communication ====
  
 Use Wire to scan I²C addresses 0x08~0x77 and display responding addresses in the Serial Monitor every 3 seconds. A return value of 0 from endTransmission() means that the address responded. Use Wire to scan I²C addresses 0x08~0x77 and display responding addresses in the Serial Monitor every 3 seconds. A return value of 0 from endTransmission() means that the address responded.
Line 630: Line 640:
  
  
-==== Example Program · Modbus RTU Communication ====+==== Example program · Modbus RTU communication ====
  
-**Related Built-in Functions**+**Related built-in functions**
  
-=== Function Example · Modbus RTU Slave: ImodbusRTUMem(), ImodbusRTUAdr(), ImodbusRTUInit(), ImodbusRTU() ===+=== Function example · Modbus RTU Slave: ImodbusRTUMem(), ImodbusRTUAdr(), ImodbusRTUInit(), ImodbusRTU() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 678: Line 688:
 </code> </code>
  
-=== Function Example · Modbus RTU Master: ImodbusRTUmasterInit(), ImodbusRTUmaster() ===+=== Function example · Modbus RTU Master: ImodbusRTUmasterInit(), ImodbusRTUmaster() ===
  
-**Function Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 714: Line 724:
  
  
-==== Example Program · LS Industrial Systems Cnet Communication ====+==== Example program · LS Industrial Systems Cnet communication ====
  
-**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 Prototypes**+**Function prototype**
  
 <code cpp> <code cpp>
Line 762: Line 772:
 </code> </code>
  
-[[https://www.ilogics.net/docs/products:mpino_series|← MPINO Series comparison (Korean)]] +[[:en-us_products:mpino_series|← MPINO Series comparison (Korean)]]
  
en-us_products/mpino_8a4t_s.1788782470.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki