A ideia principal é quando apertar o botão o motor gire uma quantidade x ( que eu possa determinar depois) para a esquerda e pare o motor. Quando eu apertar o mesmo botão ele gire para a direita a mesma quantidade X e pare o motor. E faz esses processos toda vez que o botão for acionado.

int motor_left[] = {5, 6};
int motor_right[] = {4, 3};
int botao = 1;
int estadoBotao = 0;
int var = 0;
int var2 = 0;
void setup() {
// Setup motors
int i;
for(i = 0; i < 2; i++){
pinMode(motor_left[i], OUTPUT);
pinMode(motor_right[i], OUTPUT);
pinMode(botao, INPUT);

}
}

void loop() {
var=digitalRead(botao);

if ((var == HIGH) && (var2 == LOW)) {
estadoBotao = 1 - estadoBotao;
delay(20);
}
var2=var;
if(estadoBotao == 1) {

digitalWrite(motor_left[0], HIGH);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], HIGH);
digitalWrite(motor_right[1], LOW);
delay(1000);

digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], LOW);
delay(10000);
} else {

digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], HIGH);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], HIGH);
delay(1000);

digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], LOW);
delay(25);
}
}

Consegui chegar nessa parte. Agora não consigo mais

Exibições: 852

As respostas para este tópico estão encerradas.

Respostas a este tópico

Quanto a segurar o botão isso pode ser resolvido no código, simplesmente guardando o resultado da leitura anterior e comprando se é diferente da primeira leitura atual, igual era no seu código que iniciou o post. não achei necessário pois é apenas um modelo.

E eu posso colocar isso dentro da sua programação?

Claro que sim,ficaria assim como no anexo!

Anexos

Deu perfeitamente. Muito obrigado e parabéns

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço