/******************************************************** * PID Proportional on measurement Example * Setting the PID to use Proportional on measurement will * make the output move more smoothly when the setpoint * is changed. In addition, it can eliminate overshoot * in certain processes like sous-vides. ********************************************************/ #include //Define Variables we'll be connecting to double Setpoint, Input, Output; //Specify the links and initial tuning parameters PID myPID(&Input, &Output, &Setpoint,2,5,1,P_ON_M, DIRECT); //P_ON_M specifies that Proportional on Measurement be used //P_ON_E (Proportional on Error) is the default behavior void setup() { //initialize the variables we're linked to Input = analogRead(0); Setpoint = 100; //turn the PID on myPID.SetMode(AUTOMATIC); } void loop() { Input = analogRead(0); myPID.Compute(); analogWrite(3,Output); }