Preciso controlar um motor com botões

Estou fazendo um projeto, mas ao decorrer deste encontrei diversas dificuldades, que me impossibilitaram de continuar. Como deu pra perceber sou iniciante nisso, e nessa programação abaixo, queria fazer o controle de um motor, a partir de dois botoes, que alem de fazê-lo girar em direções diferentes, estes teriam condições de existência, por exemplo se o botão 1 foi o ultimo ativado, não poderia ser ativado novamente, só se o botao 2 fosse apertado. Porem não consegui executar dessa forma, e acabei deixando de lado o fim de curso, que também seria implementado. Alguém conseguiria corrigir ou me dizer o que posso fazer para arrumar isso ?

//Definicoes pinos Arduino ligados a entrada da Ponte H
int IN1 = 3;
int IN2 = 5;

int botao_A = 2;
int botao_B = 6;
bool last; //Guarda o ultimo estado do botão (sentido horário)
bool last2; //Guarda o ultimo estado do botão (sentido anti-horário)

void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(botao_A, INPUT_PULLUP);
pinMode(botao_B, INPUT_PULLUP);
last = 0;
last2 = 0;
}

void loop()
{

if ( digitalRead(2) == HIGH && last == 0){
bool last = 1; //Guarda o ultimo estado do botao (ativo)
bool last2 = 0;

//Gira o Motor A no sentido horario
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
delay(1000);

//Para o motor A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);

                                      }

if (digitalRead(6) == HIGH && last2 == 0) {
bool last2 = 1;
bool last = 0;

//Gira o Motor A no sentido anti-horario
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
delay(1000);

//Para o motor A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
}
}