====== IanalogWrite2f() ====== ''IanalogWrite2f()'' converts a user floating-point value to the 4~20mA output range. {{:en-us_commands:reference:ianalogwrite2f.svg?900|IanalogWrite2f command operation flow}} ''void IanalogWrite2f(uint8_t ch, float min, float max, float value)'' ===== Commands ===== ^ Command ^ Arguments ^ Return Value ^ Operation ^ | ''IanalogWrite2f(ch, min, max, value)'' | ''uint8_t ch'' — MPINO: analog pin such as ''A0''; MPAINO: overall module channel number starting at ''0''\\ ''float min''\\ ''float max''\\ ''float value'' — Output value expressed in the ''min'' ~ ''max'' range | ''void'' | Converts a user floating-point value to the 4~20mA output range. | ===== Example ===== Connect a Y output module to MPAINO-8A8R(T) and select **Analog Output Module → Y**. Set the CH0 DIP switch to OFF and measure the 4–20mA output at ''I+'' and ''−''. void setup() {} void loop() { IanalogWrite2f(0, 0.0F, 100.0F, 25.0F); // Scale 25% to the 4–20mA range and output about 8mA. delay(500); } ===== Precautions ===== * Set the MPAINO Y module CH0 DIP switch to OFF and connect the 4–20mA output to ''I+'' and ''−''. * An input of approximately 3.6~4.0mA returns the normal value ''0''; inputs below 3.6mA return an error value. * Error values help detect open circuits. The user must implement final alarms and safety actions in the program. * ''IanalogRead2()'' and ''IanalogRead2f()'' also return ''65535'' on error, rather than a user-range value. Check for errors before using the result. * The full ''int32_t'' range is available for ''min~max'' in ''IanalogRead2()'', but if the normal range includes ''65535'', it cannot be distinguished from an error value. * ''analogRead2Avgf()'' uses state and a buffer separate from ''analogRead2Avg()''. Using both increases SRAM usage. * If ''samples'' is ''0'' or memory allocation fails in ''analogRead2Avgf()'', it returns the current valid corrected value as a ''float''. * On MPINO, do not use ''analogRead2()'' on voltage/NTC channels that are not 4~20mA inputs. * For MPINO products requiring ''analogReference(EXTERNAL)'', set it first in ''setup()''. * ''IanalogWrite2()'' and ''IanalogWrite2f()'' are convenience outputs dedicated to 4~20mA. Avoid alternating them with ''IanalogWrite()'' on the same channel. * The analog output circuit requires an external 12~24V supply. USB power alone may not provide normal output. * Verify actual current input/output with measuring instruments after preparing a test product. ===== Built-in Commands in the Same Category ===== * [[:en-us_commands:reference:analogwrite2|analogWrite2() View detailed description]] * [[:en-us_commands:reference:ianalogwrite2|IanalogWrite2() View detailed description]] [[:en-us_commands:builtin|← Built-in Command List]]