 
 /* PIDs para a taxa de estabilização. Entrada: posição do quadricóptero através do MPU. Objetivo: Posição indicada através do controle. Saída: Taxa de giro proporcional ao erro. */
 /*                        ENTRADA                 SAÍDA          OBJETIVO  P  I  D  DIREÇÃO */
-PID PIDPitchStab (&ypr_degree[DMP_PITCH], &pitch_stab_output,    &rcPitch, 5, 1, 0, DIRECT);
-PID PIDRollStab  (&ypr_degree[DMP_ROLL],  &roll_stab_output,     &rcRoll,  5, 1, 0, DIRECT);
-PID PIDYawStab   (       &yawRate,        &yaw_stab_output,      &rcYaw,   5, 1, 0, DIRECT); // No yaw, utilizará a taxa de rotação, não a posição como referência.
+PID PIDPitchStab (&ypr_degree[DMP_PITCH], &pitch_stab_output,    &rcPitch, 10, 8, 0, REVERSE);
+PID PIDRollStab  (&ypr_degree[DMP_ROLL],  &roll_stab_output,     &rcRoll,  10, 8, 0, DIRECT);
+PID PIDYawStab   (       &yawRate,        &yaw_stab_output,      &rcYaw,   5, 0, 0, DIRECT); // No yaw, utilizará a taxa de rotação, não a posição como referência.
 
 /* Configuração dos endereços da EEPROM para armazenar os PIDs */
 const int EEPROM_PITCH_P = 0;

        mpu.dmpGetQuaternion(&q, fifoBuffer);
        mpu.dmpGetGravity(&gravity, &q);
        mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
        yawRate = mpu.getRotationZ();
        // D(Serial.println("Fim lei"));

        /* Converte para graus/segundo */
        for (int i = 0; i < 3; i++) {

  tmValues += padding("MFR=" + String(int(motors[MOTOR_FR])), 9) + ";";
  tmValues += padding("MBL=" + String(int(motors[MOTOR_BL])), 9) + ";";
  tmValues += padding("MBR=" + String(int(motors[MOTOR_BR])), 9) + ";";
  // for (int i=0; i < 6; i++) {
  //  tmValues += padding(String(channels[i]), 8) + ";";
  // }
  tmValues += padding("INT=" + String(tmInterval), 11) + ";";

  countToSend++;
  if (countToSend > 4) {
