PID
float kp=5 ; //比例
float ki=0 ; //積分
float kd=5 ; //微分
int c = 0 ; //常數
int set = 500 ; //設定點 (介於AnalogRead讀數範圍 0~1023之間)
int now,istate ;
int p,i,d,err,old,output ;
double
void setup() {
}
void loop() {
now = analogRead(A0);
err = now - set ;
p = kp * err ;
istate += err;
istate=constrain(istate,-10,10);
i = ki*istate ;
d = kd * (now - old) ;
old = now ;
output=constrain(p + i + d + c ,0,255);
analogRead(3,output);
delayMicroseconds(10);
}