Olá, estou tentando criar um programa no arduino que é o seguinte: Há um botão, um motor com ponte H, e duas chaves fim de curso.
Eu aperto o botão, o motor gira para um lado e só para quando chegar na chave fim de curso. Se eu apertar denovo o MESMO botão, ele gira para o outro lado, e só para quando chegar na chave fim de curso 2. Como eu poderia fazer isso?
Não sei como seria a parte do botão apenas, pois ele teria que saber se o motor já foi para um lado para poder girar para o outro na próxima vez que pressionado.
Seria mais ou menos um modo de acionar duas cargas num mesmo botão, do tipo, aperta e o led vermelho acende, e se apertar denovo, o led amarelo acende, ficando nesse ciclo, e sempre nessa ordem.
Nao entendo muito disso, por isso estou tendo dificuldade.
Se puderem me ajudar eu agradeço.
Tags:
int botao1 = 1;
int fimdecurso1= 2;
int fimdecurso2 = 3;
int motor = 4;
int ladodireito = 5;
int ladoesquerdo = 6;
void setup() {
pinMode (botao1, INPUT);
pinMode (fimdecurso1, INPUT);
pinMode (fimdecurso2, INPUT);
pinMode (motor, OUTPUT);
pinMode (ladodireito, OUTPUT);
pinMode (ladoesquerdo, OUTPUT);
}
void loop() {
if (digitalRead (botao1) == HIGH && digitalRead (fimdecurso1) == HIGH) { // Se botao pressionado E fim de curso 1, vai para lado direito
digitalWrite (motor, HIGH);
digitalWrite (ladodireito, HIGH);
digitalWrite (ladoesquerdo, LOW);
}
if (digitalRead (botao1) == HIGH && digitalRead (fimdecurso2) == LOW) { // Se botao pressionado E fim de curso 2, vai para lado esquerdo
digitalWrite (motor, HIGH);
digitalWrite (ladodireito, LOW);
digitalWrite (ladoesquerdo, HIGH);
}
}
Faz sentido?
acho q o q vc quer eh isso
int botao = 13;
int final_curso_1 = 12;
int final_curso_2 = 11;
int motor_direito = 10;
int motor_esquerdo = 10;
boolean libera_direito = true;
boolean libera_esquerdo = false;
boolean vira_motor_direito = false;
boolean vira_motor_esquerdo = false;
void setup()
{
pinMode(botao,INPUT);
pinMode(final_curso_1,INPUT);
pinMode(final_curso_2,INPUT);
pinMode(motor_direito,OUTPUT);
pinMode(motor_esquerdo,OUTPUT);
}
void loop()
{
if(digitalRead(botao) == HIGH && libera_direito == true)
{
vira_motor_direito = true;
libera_direito = false;
libera_esquerdo = true;
}else{
vira_motor_direito = false;
libera_direito = true;
libera_esquerdo = false;
}
if(vira_motor_direito == true)
{
if(digitalRead(final_curso_1 == LOW)
{
digitalWrite(motor_direito,HIGH);
}else{
digitalWrite(motor_direito,LOW);
}
}
if(vira_motor_esquerdo == true)
{
if(digitalRead(final_curso_2 == LOW)
{
digitalWrite(motor_esquerdo,HIGH);
}else{
digitalWrite(motor_esquerdo,LOW);
}
}
}
nao testei mas veja ai se funciona qq coisa me avise ok
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por