====== IanalogRead2() ====== ''IanalogRead2()'' converts the 4~20mA input value to the specified integer range. {{:en-us_commands:reference:ianalogread2.svg?900|IanalogRead2 command operation flow}} ''int32_t IanalogRead2(uint8_t ch, int32_t min, int32_t max)'' ===== Commands ===== ^ Command ^ Arguments ^ Return Value ^ Operation ^ | ''IanalogRead2(ch, min, max)'' | ''uint8_t ch'' — MPINO: analog pin such as ''A0''; MPAINO: overall module channel number starting at ''0''\\ ''int32_t min''\\ ''int32_t max'' | ''int32_t'' | Converts the 4~20mA input value to the specified integer range. | ===== Example ===== This example scales the MPINO-8A4R(T)-S 4–20mA input ''A2'' to 0–100%. void setup() { Serial.begin(115200); } void loop() { const int32_t percent = IanalogRead2(A2, 0, 100); // Scale the A2 4–20mA input to an integer percentage. if (percent == ANALOG_READ2_ERROR) { Serial.println(F("4-20mA input error")); } else { Serial.print(F("A2: ")); Serial.println(percent); } delay(500); } ===== Precautions ===== * In this example, ''A2'' is a current input on MPINO-8A4R(T)-S. For another product, check its pin map for supported 4–20mA channels and wiring. * 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:ianalogread2f|IanalogRead2f() View detailed description]] [[:en-us_commands:builtin|← Built-in Command List]]