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

Vou montar a maquete então, pois no tinkercad o motor não para. Deve ser algum problema do site. Mas obrigado Alberio

Cara se vai fazer uma maquete de um portão de garagem de correr pode não funcionar bem, pois os motores DC giram muito rápido, o ideal é usar servo motor que gire 360 graus ou motor de passo.

Pior que eu não tenho tempo para comprar esses motores. Dai com o frete demora e tenho que entregar essa maquete meio rápido. Mas se ele para depois de 2 segundos acho que não tem problema né, só fazer algo reforçado para aguentar a velocidade?

ou diminua o tempo, existe uma maneira de parar o motor que seria inverter rapidamente a direção de giro,tempo apenas para ele parar, mas teste primeiro como está, coloque um tempo menor topo 1 segundo e depois vá aumentando conforme a necessidade.
Veja o vídeo de como fiz o código, é bem simples, e você vai poder fazer os próximos sozinho! 

https://youtu.be/DRTMJ1HJyY8

http://prntscr.com/h5f5bv

Minha montagem está certa?

Fora usar a entrada digita 1 não vi outro erro, você ligou o (-) da protoboard no 5v do arduino, fisicamente não teria problema, mas como é um simulador, pode ter sim. em anexo, uma imagem que encontrei e acho que resolve sua duvida

Anexos

Problema com o botao

No video nao estava funcionado o botao, porem eu troquei os cabos e encontrei outro problema. Quando o botao fica pressionado ele nao funciona tanto para a direita quando para a esquerda, porem quando eu solto ele funciona normal. Eu nao sei o que esta acontecendo

Qual botão você esta usando ? Cuidado tem botão NF ( Normalmente Fechado) , se for esse vc tem que inverter os comando.

Eu tive um problema parecido, quando comprei um botão NA( Normalmente Aberto), e veio NF,e acontecia esse mesmo erro.Verifica essa possibilidade. 

Botão

O botão é esse, nao tem nenhuma identificação de NA ou NF

Botão possibilidade descartada. 

Você ta usando o código que nosso amigo Alberio Lima fez ?

Sim

Esquema desse botão ele tem 4 pinos,você pode usar um par ou o outro par,não faz diferença ele só é mais preciso,mais seguro!

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço