IpidRun() calculates the PID output from the current value and setpoint.
float IpidRun(uint8_t id, float pv, float sv)
| Command | Arguments | Return Value | Operation |
|---|---|---|---|
IpidRun(id, pv, sv) | uint8_t id — PID loop number. Supports 0 ~ 255float pv — Current value. Present Valuefloat sv — Setpoint. Set Value | float | Calculates the PID output from the current value and setpoint. |
void setup() { IpidSet(2, 4.0, 0.2, 0.0, 100, 0, 255); // Set PID coefficients, calculation interval and output range. IpidReverse(2, true); // Select direct or reverse PID action. } void loop() { float pv = ntcRead(4) / 10.0; // Return the NTC 3950 10kΩ sensor temperature as an integer in 0.1°C units. float sv = 25.0; int output = (int)IpidRun(2, pv, sv); // Calculate the PID output from the current value and setpoint. analogWrite(11, output); }
IpidRun() retains the previous output until the sampleMs interval has elapsed. It may be called repeatedly in loop().IpidItermLimit() if additional limits are needed.IpidReset() resets the integral term, previous PV and previous output value.id for only one control loop.