Como fazer o arduino verificar uma referencia externa para pode acionar um relé

byte RELE_TAMPA = 12;  
byte BOTAO_TAMPA = 0; 
byte TAMPA = 0;
byte PORTA_TAMPA = 9;
byte INVERSOR = 7;
byte INVERSOR_RELE = 0;
boolean motorON = false;
void setup(){
  pinMode(INVERSOR,INPUT);
  digitalWrite(INVERSOR,1);
  
  pinMode(PORTA_TAMPA, INPUT);
  digitalWrite(PORTA_TAMPA,1);
  
  pinMode(RELE_TAMPA, OUTPUT);
  digitalWrite(RELE_TAMPA,0);
  
}

void loop() {
  INVERSOR_RELE = digitalRead( INVERSOR ); 
  BOTAO_TAMPA = digitalRead(PORTA_TAMPA);
  
  if(BOTAO_TAMPA == 0  && INVERSOR0 == 0)
  {
   TAMPA = !TAMPA;
  digitalWrite(RELE_TAMPA,TAMPA);
 delay(500);
 motorON = true;

}
delay(250);

}

Bom dia pessoal quero usar esse codigo para acionar um relé mais esse relé so pode ser acionado quando fechar o contato de um outro rele tipo vo ter uma parte do codigo que será um botão para acionar o relé mais esse botão so poderá acionar o relé se o contato de um outro relé estiver fechado alguém pode me ajudar

E o que e uqe o codigo que meteste aqui nao faz??

bubulindo: E o que e uqe o codigo que meteste aqui nao faz??

o codigo queria que o codigo fucionace da seguinte forma eu tenho um inversor de frequencia que vai acelerar um motor e quando o motor acabar de rodar e parar ele vai fechar um relé que ele tem internamente ai precisava que o arduino indentificasse que esse relé fechou o contato e ai se o contato estiver fechado ele iria deixar eu apertar um botaõ para acionar um relé que naõ e o do inversor e que vai servi para abrir uma porta da maquina esse codigo ai ja faz a função de ligar um relé so que não estou conseguindo fazer a parte de verificar se o contato do outro rele fechou que seria feito por exemplo como se fosse um botão precionado

Existe uma coisa com algumas centenas de anos chamada pontuacao. Importas-te de usar pontos finais, virgulas, etc... no teu post?

Tens um motor, uma tampa e um botao.

Se o motor estiver parado e carregares no botao, a tampa abre. E isso?

Se o motor estiver a andar a tampa fica fechada e o botao nao faz nada. E isso?

Tenta explicar as coisas com frases em vez dum conjunto imenso de palavras para ver se nos entendemos.

bubulindo: Existe uma coisa com algumas centenas de anos chamada pontuacao. Importas-te de usar pontos finais, virgulas, etc... no teu post?

Tens um motor, uma tampa e um botao.

Se o motor estiver parado e carregares no botao, a tampa abre. E isso?

Se o motor estiver a andar a tampa fica fechada e o botao nao faz nada. E isso?

Tenta explicar as coisas com frases em vez dum conjunto imenso de palavras para ver se nos entendemos.

Isso mesmo, e desta forma que preciso que funcione pode me ajudar e desculpa o meu português .

byte RELE_TAMPA = 12;  
byte PORTA_TAMPA = 9;
byte INVERSOR = 7;
byte Botao_TAMPA = ; //TENS DE DEFINIR ISTO!!!!!

void setup(){
  pinMode(INVERSOR,INPUT_PULLUP);
  
  pinMode(PORTA_TAMPA, INPUT_PULLUP);
  pinMode(Botao_TAMPA, INPUT_PULLUP);

  pinMode(RELE_TAMPA, OUTPUT);
  digitalWrite(RELE_TAMPA,0);
  
}

unsigned char flanco_botao = 0;

void loop() {
  unsigned char VFD = digitalRead( INVERSOR ); 
  unsigned char Botao = digitalRead(Botao_TAMPA);
  unsigned char Tampa = digitalRead(PORTA_TAMPA);

if (Botao == 0){
   flanco_botao = 1;
}
   

if (Botao == 1 && flanco_botao = 1 && VFD == 0) {
   flanco_botao = 0; 
   digitalWrite(RELE_TAMPA, 1);
}
}

Pronto... isto foi o que pediste... e tenho 100% a certeza que nao e isto que queres. Se eu fosse um bruxo que consegue ler pensamentos, certamente que faria o codigo facilmente... como nao sou ficas com o que ja tinhas.

bubulindo: ``` byte RELE_TAMPA = 12;  byte PORTA_TAMPA = 9; byte INVERSOR = 7; byte Botao_TAMPA = ; //TENS DE DEFINIR ISTO!!!!!

void setup(){   pinMode(INVERSOR,INPUT_PULLUP);     pinMode(PORTA_TAMPA, INPUT_PULLUP);   pinMode(Botao_TAMPA, INPUT_PULLUP);

  pinMode(RELE_TAMPA, OUTPUT);   digitalWrite(RELE_TAMPA,0);   }

unsigned char flanco_botao = 0;

void loop() {   unsigned char VFD = digitalRead( INVERSOR );   unsigned char Botao = digitalRead(Botao_TAMPA);   unsigned char Tampa = digitalRead(PORTA_TAMPA);

if (Botao == 0){    flanco_botao = 1; }    

if (Botao == 1 && flanco_botao = 1 && VFD == 0) {    flanco_botao = 0;    digitalWrite(RELE_TAMPA, 1); } }




Pronto... isto foi o que pediste... e tenho 100% a certeza que nao e isto que queres. Se eu fosse um bruxo que consegue ler pensamentos, certamente que faria o codigo facilmente... como nao sou ficas com o que ja tinhas.

Bom dia muito obrigado pela sua ajuda valeu.

Como é que fechas a tampa?

bubulindo: Como é que fechas a tampa?

Fecha manual a tampa

Mas o relé vai comtinuar activado…

Bom, tu lá sabes.