int motor1Pin1 = 27; 
int motor1Pin2 = 26; 
int enable1Pin = 14; 

int botao = 15;  //botão sentido horario
int botao2 = 2;  // botao sentido antihorario
int botao3 = 4;  //botao desliga

const int freq = 30000;
const int pwmChannel = 0;
const int resolution = 8;
int dutyCycle = 200;

bool flag = 0;
bool flag2 = 0;
bool est = 0;
bool est2 = 0;
bool est3 = 0;




void setup() {
  // sets the pins as outputs:
  pinMode(botao, INPUT);  //input botão sentido horario
  pinMode(botao2, INPUT); //input botão sentido anti horario
  pinMode(botao3, INPUT); //input botao desliga
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(enable1Pin, OUTPUT);
  
  // configure LED PWM functionalitites
  ledcSetup(pwmChannel, freq, resolution);
  
  // attach the channel to the GPIO to be controlled
  ledcAttachPin(enable1Pin, pwmChannel);

  Serial.begin(115200);

  // testing
  Serial.print("Testing DC Motor...");
}

void loop() {
  est = digitalRead(botao);  //
  est2= digitalRead(botao2);  //estado dos botoes
  est3= digitalRead(botao3); //

  if((est == 0)&&(flag2 == 0))  //se o botao 1 nao estiver pressionado,e a flag2 destivada,a flag1 é ativada
    flag = 1;
    delay(300);
  }
   if((est2 == 0)&&(flag == 0)) //se o botao 2 nao estiver pressionado,e a flag1 destivada,a flag2 é ativada
  {
    flag2 = 1;
    delay(300);
  }
  if(est3 == 0)  //se o terceiro botão for acionado,ambas as flags são desativadas e o motor desliga
  {
    flag2 = 0;
    flag = 0;
    delay(300);
  }
 
  if( flag == 1)    //se a flag1 for ativada o motor gira em sentido horario              
     {
  Serial.println("Horário");
  digitalWrite(motor1Pin1, LOW);
  digitalWrite(motor1Pin2, HIGH); 

       }

  if( flag2 == 1)    //se a flag2 for ativada o motor gira em sentido antihorario            
     {
  Serial.println("Anti-horario");
  digitalWrite(motor1Pin1, HIGH);
  digitalWrite(motor1Pin2, LOW); 
  
     }
    if((flag == 0)&&(flag2 == 0)) //se ambas as flags forem destivadas ,o motor para
    {
      Serial.println("Motor parado");
      digitalWrite(motor1Pin1, LOW);
      digitalWrite(motor1Pin2, LOW);
    
    }
}
$abcdeabcde151015202530fghijfghij
$abcdeabcde151015202530fghijfghij