     x = 10;
     y = 15;
   }
+}
+
+void SetOutputLimits(double Min, double Max) // RESET WIDNUP
+{
+   if(Min < Max){
+     outMin = Min;
+     outMax = Max;
+   }
+   if(Output > outMax){
+    Output = outMax;
+   }else if(Output < outMin){
+    Output = outMin;
+   }
+ 
+   if(i > outMax){
+    i = outMax;
+   }else if(i < outMin){
+    i = outMin;
+   }
 }
 
 void setTunings(double Kp, double Ki , double Kd){

  if(distancia > 0 && dt >= amostra){
    Serial.println(distancia);
    erro =  setPoint - distancia;
    if(errSum >= 50){
      errSum = 0;
    }
    errSum += erro;
    double dDistancia = (distancia - ultimaDistancia);
    i = ki * errSum;
    d = kd * dDistancia;
    x = cons + ((erro*kp) - d + i);
    y = cons - ((erro*kp) - d + i);

double errSum, lastErr;
int cons = 15;
int amostra = 1000; // 1seg
double outMin, outMax;
void definirErro(int setPoint){ 

  calcularTempo();
