Another PID question.

HI again everyone. I'm just wondering if the SetControllerDirection() function is no longer used. I'm experimenting with the PID library using the the adaptive tunings example and when I try to use this function I get " 'SetControllerDirection' was not declared in this scope" as if it was an undeclared variable. Any idea whats going on? Thanks.

/********************************************************

  • Arduino PID Library
  • by Brett Beauregard
  • contact: br3ttb@gmail.com
  • PID Adaptive Tuning Example
  • One of the benefits of the PID library is that you can
  • change the tuning parameters at any time. this can be
  • helpful if we want the controller to be agressive at some
  • times, and conservative at others. in the example below
  • we set the controller to use Conservative Tuning Parameters
  • when we're near setpoint and more agressive Tuning
  • Parameters when we're farther away.
    ********************************************************/
    #include <PID_v1.h>

//Define Variables we'll be connecting to
double Input, Output;
double Setpoint;
int pin=3;

//Define the aggressive and conservative Tuning Parameters
double aggKp=4, aggKi=0.2, aggKd=1;
double consKp=1, consKi=0.05, consKd=0.25;

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, DIRECT);

void setup()
{
//initialize the variables we're linked to
Serial.begin(9600);
Serial.setTimeout(10);
Input = analogRead(0);
Setpoint = 900;

//turn the PID on
myPID.SetMode(AUTOMATIC);
}

void loop()
{
Input = analogRead(0);
if (Serial.available()>0)
{
Setpoint=Serial.parseInt();
Serial.println(Setpoint);
}
if (Setpoint>Input)
{
pin=2;
SetControllerDirection(DIRECT);// Fails at this line "was not declared in this scope"
}
else
{
pin=3;
SetControllerDirection(REVERSE);
}
Serial.print(Setpoint);
Serial.print(" ");
Serial.println(Input);
double gap = abs(Setpoint-Input); //distance away from setpoint
if(gap<10)
{ //we're close to setpoint, use conservative tuning parameters
myPID.SetTunings(consKp, consKi, consKd);
}
else
{
//we're far from setpoint, use aggressive tuning parameters
myPID.SetTunings(aggKp, aggKi, aggKd);
}

myPID.Compute();
analogWrite(pin,Output);
}

Change
SetControllerDirection(DIRECT);// Fails at this line "was not declared in this scope"

to
myPID.SetControllerDirection(DIRECT);// Fails at this line "was not declared in this scope"

Thanks! Silly mistake.