IanalogWritef() converts a user floating-point value to the analog output range and outputs it.
void IanalogWritef(uint8_t ch, float min, float max, float value)
| Command | Arguments | Return Value | Operation |
|---|---|---|---|
IanalogWritef(ch, min, max, value) | uint8_t ch — Analog output pin or channel to writefloat min — Minimum of the user input rangefloat max — Maximum of the user input rangefloat value — User input value to output | void | Converts a user floating-point value to the analog output range and outputs it. |
const uint8_t DEMAND_INPUT = A0; const uint8_t OUTPUT_CHANNEL = 0; void setup() { Serial.begin(115200); } void loop() { const float demandVolts = IanalogReadf(DEMAND_INPUT, 0.0F, 10.0F); // Map the analog input value to the specified floating-point range. IanalogWritef(OUTPUT_CHANNEL, 0.0F, 10.0F, demandVolts); // Map the user's floating-point value to the analog output range and output it. Serial.print(F("demand=")); Serial.print(demandVolts, 2); Serial.println(F("V")); delay(250); }
ch, min, max, value.min and max define the user input range for interpreting value, rather than directly setting the electrical output range.value is outside min~max, the internal Iscalef() clamps it to the nearest endpoint.min greater than max reverses the output direction.min equals max, the output value is 0.analogWriteInit() or analogWriteFreq() also changes the actual analogWrite() output range. Use the default TOP 65535 to retain 16-bit 0~65535 resolution.