 volatile int velocidadeDireita = 800;
 volatile int velocidadeEsquerda = 870;
 
-volatile int pwmDireita = 0;
-volatile int pwmEsquerda = 0;
+volatile double pwmDireita = 0;
+volatile double pwmEsquerda = 0;
 
 volatile bool motoresAtivados = false;
 
 volatile int contador = 0;
 
 volatile int girosDesejados = 150;
+
+//Define Variables we'll be connecting to
+double entradaEsquerda, entradaDireita;
+double objetivo = 80;
+
+//Specify the links and initial tuning parameters
+PID motorEsquerdo(&entradaEsquerda, &pwmEsquerda, &objetivo,kpEsquerda,0,0, DIRECT);
+
+//Specify the links and initial tuning parameters
+PID motorDireito(&entradaDireita, &pwmDireita, &objetivo,kpDireita,0,0, DIRECT);
 
 void setup() {
   Serial.begin(115200);

#include <TimerOne.h>

#define INTERROMPE_DIREITA 3
#define INTERROMPE_ESQUERDA 2


  Timer1.initialize(1000000 / 10);
  Timer1.attachInterrupt(ajustaMotor);

  motorEsquerdo.SetMode(AUTOMATIC);
  motorDireito.SetMode(AUTOMATIC);
  motorEsquerdo.SetOutputLimits(0, 1023); 
  motorDireito.SetSampleTime(1000/10); 
  motorEsquerdo.SetSampleTime(1000/10); 
}

void loop() {
