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
Tags:
As respostas para este tópico estão encerradas.
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!
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
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.
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por