====== MPAINO Y analog output module ======
The Y option module filters the MCU's PWM signal to produce DC voltage and current outputs. One module provides three channels and is assembled into the ordered MPAINO product before shipment. A channel's DIP switch and the terminal used determine its output range; changing a program channel number does not select a voltage or current range.
{{ :en-us_products:mpaino-y-signal.svg?1000 |PWM filtering, DIP ranges, and V+ and I+ output terminals of the Y module }}
===== Specifications =====
{{:en-us_products:mpaino-option-y-front.png?220|Y analog output module front}}
^ Item ^ Description ^
| Option codes | Y, Y2, Y3, Y4 |
| Outputs per module | Three channels, CH0–CH2 |
| Output type | DC voltage and current from filtered PWM |
| Voltage ranges | DC 0–5V or 0–10V, selected by each channel's DIP switch |
| Current ranges | DC 0–10mA or 0–20mA; software scaling can use 2–10mA or 4–20mA within those ranges |
| Resolution | 16 bit |
| Accuracy | ±0.5% or less at DC 12V and half range |
| Maximum configuration | Four Y modules, 12 channels; Y and K outputs together no more than 12 channels |
| Product supply | DC 12–24V main supply required; download-cable power alone cannot provide normal output |
===== Configuration and program channels =====
^ Option ^ Y modules ^ Analog outputs ^ Y channels for ''analogWrite(ch, value)'' ^
| Y | 1 | 3 | 0–2 |
| Y2 | 2 | 6 | 0–5 |
| Y3 | 3 | 9 | 0–8 |
| Y4 | 4 | 12 | 0–11 |
Each module labels its terminals CH0–CH2, but program channels continue across modules: 0–2 on the first and 3–5 on the second. K pulse outputs use a different channel range. With one K module, up to Y2 can also be configured; with K2, no Y module can be configured. Y is available regardless of the model's digital I/O point count.
===== DIP setting and terminals =====
^ Channel DIP ^ Voltage at ''V+'' ^ Current at ''I+'' ^ Common terminal ^
| ON | DC 0–5V | DC 0–10mA, or 2–10mA with software scaling | ''−'' |
| OFF | DC 0–10V | DC 0–20mA, or 4–20mA with software scaling | ''−'' |
Use ''V+'' and ''−'' for voltage, or ''I+'' and ''−'' for current. Both signals are present, so connect the receiving device only to the terminals for the required signal. The ''−'' terminal is connected to the product's internal GND.
- Turn off both devices and check the DIP switch for the channel being wired.
- Match the receiving device's input type, range, and polarity to the chosen terminals.
- Apply the DC 12–24V main supply. Start with a small output value and measure that channel before connecting the process load.
- Use shielded signal cable if the installation requires noise protection.
===== Example: voltage or zero-based current =====
Select the shipped **Analog Output Module** option in Arduino IDE. The sketch sets CH0 to approximately half of its selected DIP range. Three channels on one Y module share a Timer setting; changing TOP or frequency for one may affect the others.
const uint8_t outputChannel = 0;
void setup() {
analogWriteInit(outputChannel, 65535, 1); // Set the PWM TOP and prescaler for Y CH0
}
void loop() {
const uint16_t fullScale = analogWriteMax(outputChannel); // Read this channel's current maximum
analogWrite(outputChannel, fullScale / 2); // Output about 50% of the DIP-selected range
delay(500);
}
With DIP ON and ''V+'', the ideal target is about 2.5V; with DIP OFF, about 5V. These are nominal ratios, not a guarantee of measured accuracy.
===== Example: 4–20mA =====
Set CH0 DIP OFF and connect the receiver to ''I+'' and ''−''. ''analogWrite2()'' maps 0 to 4mA and 65535 to 20mA.
const uint8_t outputChannel = 0;
void setup() {
// Set Y CH0 DIP OFF for the 0–20mA hardware range.
}
void loop() {
analogWrite2(outputChannel, 32768); // Midpoint of 4–20mA, about 12mA
delay(500);
}
''IanalogWrite(ch, min, max, value)'' and ''IanalogWrite2(ch, min, max, value)'' can map an engineering value to the output range. ''analogWrite2()'' does not move a DIP switch; a device wired to ''V+'' will not receive 4–20mA.
===== Troubleshooting =====
^ Symptom ^ Check ^
| No output | Confirm the Y module, DC 12–24V main supply, Analog Output Module option, and program channel. |
| About half or twice the expected level | Check the channel's DIP position and whether the receiver uses ''V+'' or ''I+''. |
| No 4mA live zero | Confirm DIP OFF, ''I+'' wiring, and use of ''analogWrite2()'' or another 4–20mA function. |
| Another channel also changes | Check whether TOP or frequency was changed for their shared three-channel Timer group. |
===== Related pages =====
* [[en-us_commands:reference:analogwriteinit|analogWriteInit()]] · [[en-us_commands:reference:analogwritemax|analogWriteMax()]] · [[en-us_commands:reference:analogwrite2|analogWrite2()]]
* [[en-us_products:mpaino_x|X analog input]] · [[en-us_products:mpaino_f|F PT100 input]] · [[en-us_products:mpaino_k|K pulse output]]
* [[en-us_products:mpaino|← MPAINO Series options]]