Problema em desligar saída temporizada

Boa noite Makers :slight_smile:

Sou novo ainda no mundo dos arduino.

Estou a desenvolver um sistema de controlo de uma máquina que consiste nas seguintes ordens:

se aspirador 1 ou aspirador 2 = on

liga as 3 saidas que necessito

se aspirador 1 ou 2 passar a off

temporiza " o tempo que se definir em programa" e desliga.

Já tentei de todas as maneiras que consegui com o que fui encontrando mas sem sucesso. Será que me podem ajudar?

Vou colocar em anexo o código que fiz mas que ainda não consegui por a funcionar.

Espero que me consigam ajudar, já estou a meses a tentar partir este problema e de certo é apenas uma pequena ordem que está em falta e não sei como se faz.

Obrigado e bons projetos

teste_aspirador.txt (4.1 KB)

Eu acho que é isto que pretendes, mas o código que colocaste aqui não é o que tu dizes querer.
O que me parece faltar no teu é encravares para detectares quando é que um dos aspiradores é iniciado. De outra forma a variável tempo_on está sempre a ser actualizada e a tua lógica nunca é realizada.

unsigned char trava = 0; 

if ((est_asp1 || est_asp2) && trava == 0 ) {
   tempo_on = millis(); 
   trava = 1; 
   digitalWrite (as três saídas que necessitas, HIGH);
}; 

if (est_asp1 == 0 || est_asp2 == 0 || millis()-tempo_on > 1000) { //está na hora de desligar
   trava = 0; 
   digitalWrite(as três saídas que necessitas, LOW);
}

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.