void pid(){ error = setpoint-input; p = (kp*error); i = ki*((timelatest*errorlast)+(timelatest*((error-errorlast)/2))); d = kd *((error-errorlast)/timelatest); out_val = p+i+d; out+= out_val+nlast; if (out >100){ out=100; } if (out <0){ out=0; } errorlast=error; nlast=i; }