Botão para emergencia

Ola.
Estou desenvolvendo uma programação para TCC e preciso colocar um botão de emergencia que interrompa o precesso em qualquer momento.
valeu
abraço

Hello.
I'm developing a schedule for TCC and I need to put an emergency button that interrupts the process at any time.
it cost
hug

Ola.

This forum uses the English language…

Hello.
I'm developing a schedule for TCC and I need to put an emergency button that interrupts the process at any time.
it cost
hug

Teria de olhar para o código, mas se a urgência for tão alta, use uma interrupção.

Please read the informing topic telling how to get the best out of this forum. Link: How to get the best out of this forum - Using Arduino / Project Guidance - Arduino Forum

Work on Your posting, wherever You choose to post it. To much information is missing for any tip and You also have no question, no presentation of what You have achieved.

Most helpers are really skilled engineers but they are not working in children day care.
Please provide adequate information.

Alguém pode sair magoado? Se sim o botão tem de estar ligado a um relé para cortar a energia ao actuador que cria o perigo. Podes colocar um contacto desse relé para o Arduino para o notificar que o botão foi pressionado.

CODE I MADE UNTIL THE MOMENT

const int Rele1 = 6; //PINO DIGITAL UTILIZADO PELO MÓDULO RELÉ
const int Rele2 = 7; //PINO DIGITAL UTILIZADO PELO MÓDULO RELÉ

const int Botaoliga = 2; //PINO DIGITAL UTILIZADO PELO BOTÃO LIGA
const int Botaodesliga = 3; //PINO DIGITAL UTILIZADO PELO BOTÃO DESLIGA
int statusLamp = 0; //VARIÁVEL QUE CONTROLA O ESTADO DO MÓDULO RELÉ (LIGADO / DESLIGADO)

void setup()
{
pinMode(Rele1, OUTPUT); //DEFINE O PINO COMO SAÍDA
pinMode(Rele2, OUTPUT); //DEFINE O PINO COMO SAÍDA

pinMode(Botaoliga, INPUT_PULLUP); //DEFINE O PINO COMO ENTRADA / "_PULLUP" É PARA ATIVAR O RESISTOR INTERNO
//DO ARDUINO PARA GARANTIR QUE NÃO EXISTA FLUTUAÇÃO ENTRE 0 (LOW) E 1 (HIGH)
pinMode(Botaodesliga, INPUT_PULLUP);
digitalWrite(Rele1, HIGH); //MÓDULO RELÉ INICIA DESLIGADO
digitalWrite(Rele2, HIGH); //MÓDULO RELÉ INICIA DESLIGADO
}
void loop()
{
if((digitalRead(Botaoliga) == LOW) && (statusLamp == 0)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 0, FAZ
digitalWrite(Rele1, LOW); //LIGA O MÓDULO RELÉ (LÂMPADA ACENDE)
statusLamp = 1; //VARIÁVEL RECEBE O VALOR 1
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
delay(2000);
digitalWrite(Rele2, LOW);
delay(2000);
//digitalWrite(Rele1, HIGH);
//digitalWrite(Rele2, HIGH);
//statusLamp = 1;

}else{//SENÃO, FAZ
if((digitalRead(Botaodesliga) == LOW) && (statusLamp == 1)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
//VARIÁVEL statusLamp FOR IGUAL A 1, FAZ
digitalWrite(Rele1, HIGH); //DESLIGA O MÓDULO RELÉ (LÂMPADA APAGA)
digitalWrite(Rele2, HIGH);
statusLamp = 0; //VARIÁVEL RECEBE O VALOR 0
delay(200); //INTERVALO DE 200 MILISSEGUNDOS
}
}
}

Eu entendo, você quer que o botão de emergência seja capaz de desligar os relés enquanto você estiver nos 4 segundos do período de ignição. Verdade?.
Bem, usando delays você NÃO PODE, enquanto você está em um delay o micro não atende a nada além de interrupções, mas é mais fácil para você aprender a usar milis para substituir os delays. Pesquise no fórum ou no google o exemplo "Blink sem delays". É fácil aprender.