Boa noite, será que alguém pode me ajudar, fiz uma reversão automatica, e gostaria de faze-la parar quando meu precisasse, tipo emergencia, sera que alguém pode me dá uma dica.

// reversão automatica
int esquerda = 11; // MOTOR A ESQUERDA
int direita = 10; //  MOTOR A DIREITA
int ligado = 9;   //  LUZ DE SINALIZAÇÃO
int botao = 2;  //    pino do botão
int botaod = 12;  //    pino do botão

unsigned long changeTime; // tempo desde que o botão foi pressionado
void setup() {
pinMode(esquerda, OUTPUT);
pinMode(direita, OUTPUT);
pinMode(ligado, OUTPUT);
pinMode(botao, INPUT); // botão no pino 2
pinMode(botaod, INPUT); // botão desliga no pino 12

}
void loop() {
digitalWrite(ligado, LOW); // desliga a luz de sinalização
int state = digitalRead(botao);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
int stated = digitalRead(botaod);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
if (stated == HIGH && (millis() - changeTime) > 5000){
digitalWrite(ligado, LOW);   // APAGA ALUZ DE SINALIZAÇÃO
digitalWrite(direita, LOW); // desliga o motor a direita
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
}

if (state == HIGH && (millis() - changeTime) > 5000){
  // Chama a função para alterar as luzes
  for (int x=0; x<4; x++) {
digitalWrite(ligado, HIGH);   // ACENDE A LUZ DE SINALIZAÇÃO
digitalWrite(direita, HIGH); // liga o motor a direita
delay(5000); // espera 5 segundos
digitalWrite(direita, LOW); // desliga o motor a direita
delay(2000); // espera 2 segundos para virar
digitalWrite(esquerda, HIGH); // liga o motor a esquerda
delay(5000); // espera 5 segundo
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
delay(2000); // espera 2 segundos para virar
}}}

Exibições: 660

Responder esta

Respostas a este tópico

Boa Noite Cledilandio, tenta essa cara, abraz.

// reversão automatica
int esquerda = 11; // MOTOR A ESQUERDA
int direita = 10; // MOTOR A DIREITA
int ligado = 9; // LUZ DE SINALIZAÇÃO
int botao = 2; // pino do botão
int botaod = 12; // pino do botão

unsigned long changeTime; // tempo desde que o botão foi pressionado
void setup() {
pinMode(esquerda, OUTPUT);
pinMode(direita, OUTPUT);
pinMode(ligado, OUTPUT);
pinMode(botao, INPUT); // botão no pino 2
pinMode(botaod, INPUT); // botão desliga no pino 12

}
void loop()
{
digitalWrite(ligado, LOW); // desliga a luz de sinalização
int state = digitalRead(botao);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
int stated = digitalRead(botaod);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
if(stated == LOW && (millis() - changeTime > 5000))
{

if (state == HIGH && (millis() - changeTime) > 5000)
{
// Chama a função para alterar as luzes
for (int x=0; x<4; x++)
{
digitalWrite(ligado, HIGH); // ACENDE A LUZ DE SINALIZAÇÃO
digitalWrite(direita, HIGH); // liga o motor a direita
delay(5000); // espera 5 segundos
digitalWrite(direita, LOW); // desliga o motor a direita
delay(2000); // espera 2 segundos para virar
digitalWrite(esquerda, HIGH); // liga o motor a esquerda
delay(5000); // espera 5 segundo
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
delay(2000); // espera 2 segundos para virar
}
}
}
if (stated == HIGH && (millis() - changeTime) > 5000)
{
digitalWrite(ligado, LOW); // APAGA ALUZ DE SINALIZAÇÃO
digitalWrite(direita, LOW); // desliga o motor a direita
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
}
}

acrescentei o else, da uma olhada

// reversão automatica
int esquerda = 11; // MOTOR A ESQUERDA
int direita = 10; // MOTOR A DIREITA
int ligado = 9; // LUZ DE SINALIZAÇÃO
int botao = 2; // pino do botão
int botaod = 12; // pino do botão

unsigned long changeTime; // tempo desde que o botão foi pressionado
void setup() {
pinMode(esquerda, OUTPUT);
pinMode(direita, OUTPUT);
pinMode(ligado, OUTPUT);
pinMode(botao, INPUT); // botão no pino 2
pinMode(botaod, INPUT); // botão desliga no pino 12

}
void loop()
{
digitalWrite(ligado, LOW); // desliga a luz de sinalização
int state = digitalRead(botao);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
int stated = digitalRead(botaod);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
if(stated == LOW && (millis() - changeTime > 5000))
{

if (state == HIGH && (millis() - changeTime) > 5000)
{
// Chama a função para alterar as luzes
for (int x=0; x<4; x++)
{
digitalWrite(ligado, HIGH); // ACENDE A LUZ DE SINALIZAÇÃO
digitalWrite(direita, HIGH); // liga o motor a direita
delay(5000); // espera 5 segundos
digitalWrite(direita, LOW); // desliga o motor a direita
delay(2000); // espera 2 segundos para virar
digitalWrite(esquerda, HIGH); // liga o motor a esquerda
delay(5000); // espera 5 segundo
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
delay(2000); // espera 2 segundos para virar
}
}
}
else
{
if (stated == HIGH && (millis() - changeTime) > 5000)
{
digitalWrite(ligado, LOW); // APAGA ALUZ DE SINALIZAÇÃO
digitalWrite(direita, LOW); // desliga o motor a direita
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
}
}
}

// reversão automatica
int esquerda = 11; // MOTOR A ESQUERDA
int direita = 10; // MOTOR A DIREITA
int ligado = 9; // LUZ DE SINALIZAÇÃO
int botao = 2; // pino do botão
int botaod = 12; // pino do botão

unsigned long changeTime; // tempo desde que o botão foi pressionado
void setup() {
pinMode(esquerda, OUTPUT);
pinMode(direita, OUTPUT);
pinMode(ligado, OUTPUT);
pinMode(botao, INPUT); // botão no pino 2
pinMode(botaod, INPUT); // botão desliga no pino 12

}
void loop()
{
digitalWrite(ligado, LOW); // desliga a luz de sinalização
int state = digitalRead(botao);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
int stated = digitalRead(botaod);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
if(stated == HIGH && (millis() - changeTime > 5000))
{
digitalWrite(ligado, LOW); // APAGA ALUZ DE SINALIZAÇÃO
digitalWrite(direita, LOW); // desliga o motor a direita
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
}
else
{
if (state == HIGH && (millis() - changeTime) > 5000)
{
// Chama a função para alterar as luzes
for (int x=0; x<4; x++)
{
digitalWrite(ligado, HIGH); // ACENDE A LUZ DE SINALIZAÇÃO
digitalWrite(direita, HIGH); // liga o motor a direita
delay(5000); // espera 5 segundos
digitalWrite(direita, LOW); // desliga o motor a direita
delay(2000); // espera 2 segundos para virar
digitalWrite(esquerda, HIGH); // liga o motor a esquerda
delay(5000); // espera 5 segundo
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
delay(2000); // espera 2 segundos para virar
}
}
}
}

tenta esta função amigo

// reversão automatica
int esquerda = 11; // MOTOR A ESQUERDA
int direita = 10; // MOTOR A DIREITA
int ligado = 9; // LUZ DE SINALIZAÇÃO
int botao = 2; // pino do botão
int botaod = 12; // pino do botão

unsigned long changeTime; // tempo desde que o botão foi pressionado
void setup() {
pinMode(esquerda, OUTPUT);
pinMode(direita, OUTPUT);
pinMode(ligado, OUTPUT);
pinMode(botao, INPUT); // botão no pino 2
pinMode(botaod, INPUT); // botão desliga no pino 12

}
void loop()
{
digitalWrite(ligado, LOW); // desliga a luz de sinalização
int state = digitalRead(botao);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
int stated = digitalRead(botaod);
/* verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
isso ocorreu */
if(stated == HIGH && (millis() - changeTime > 5000))
{
ligado = !ligado;
digitalWrite(botaod, ligado); // APAGA ALUZ DE SINALIZAÇÃO
direita = !direita;
digitalWrite(botaod, direita); // desliga o motor a direita
esquerda = !esquerda;
digitalWrite(botaod, esquerda); // desliga o motor a esquerda
}
else
{
if (state == HIGH && (millis() - changeTime) > 5000)
{
// Chama a função para alterar as luzes
for (int x=0; x<4; x++)
{
digitalWrite(ligado, HIGH); // ACENDE A LUZ DE SINALIZAÇÃO
digitalWrite(direita, HIGH); // liga o motor a direita
delay(5000); // espera 5 segundos
digitalWrite(direita, LOW); // desliga o motor a direita
delay(2000); // espera 2 segundos para virar
digitalWrite(esquerda, HIGH); // liga o motor a esquerda
delay(5000); // espera 5 segundo
digitalWrite(esquerda, LOW); // desliga o motor a esquerda
delay(2000); // espera 2 segundos para virar
}
}
}
}

Boa Noite Cledilandio, e awe cara, como anda seu projeto? conseguiu alguma solução? abraços.

cara, eu precisava botar pra funcionar logo, então passei a alimentação do arduino pela chave de emergência que era um contato normalmente fechado, e tudo já esta funcionando

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço