My output is always being set to 0 whenever it does myPID.compute(). Why is this the case?
#include <PID_v1.h>
double Setpoint;
double Input;
double Output;
double Kp=0.256, Ki=29.412, Kd=-0.0008439;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
void setup() {
// put your setup code here, to run once:
Setpoint = 1000000;
myPID.SetMode(AUTOMATIC);
myPID.SetTunings(Kp, Ki, Kd);
pinMode(A1,OUTPUT);
pinMode(A0,INPUT);
Serial.begin(9600);
analogWrite(A1,900);
delay(5000);
}
void loop() {
// put your main code here, to run repeatedly:
Input = analogRead(A0);
myPID.Compute();
analogWrite(A1,Output);
//Serial.print(Input);
Serial.print(" ");
Serial.println(Output);
//Serial.print(" ");
//Serial.println(Setpoint);
}