37 lines
1002 B
C++
37 lines
1002 B
C++
/********************************************************
|
|
* 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 <PID_v1.h>
|
|
|
|
//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);
|
|
}
|
|
|
|
|
|
|