Controle liga/desliga por dimmers não funcionando corretamente.

Boa senhores, fiz um protótipo para um TCC, e o RUI me deu uma ajuda muito importante para que eu pudesse realizar tal estudo, más agora estou com um problema aparentemente simples, más estou tão cheio de coisas relacionados a conclusão do curso que não estou enxergando o erro.

O que o protótipo faz.

Verificar se há pessoas em um determinado ambiente.

se tem, liga as luzes, e por meio de um sensor de temperatura define a melhor velocidade para aquele ambiente.

isso funciona:

o que não funciona.

quando não tem pessoas no ambiente, deve-se desligar as luzes e os ventiladores, e isso não está acontecendo.

sobre o problema:

após o verificado que não existe pessoas no ambiente, a luzes desligam normalmente, más os ventiladores não.

sobre os ventiladores;

o que foi observado é o seguinte, independente da velocidade controlada ou mesmo desligado (com pessoas no ambiente), apos o sistema desligar, o ventilador 1 fica = 45% e o ventilador 2 = 100% parece estar pegando parte do código de controle.

segue o código, este controle está na função Controla_Vent_Temp()

https://pastebin.com/JPLN76SV

agradeço esta importante ajuda.

Exibições: 156

Responder esta

Respostas a este tópico

Boa tarde GCM,

considerando o tamanho do code e complexidade, 

o seu "sistema"está muito mal documentada e com muito poucas linhas comentadas,

e ainda as que estão comentadas, são comentários óbvios e não elucidativos.

por exemplo: unsigned long tBase = 0;                                // recebe valor inicial

no comentário descreva pra serve a variável.

Depois, evite a construção de funções muito extensas.

Tente quebrar em funções menores.

Veja também este caso:

}//----------------------------
void ApagaLuz ()
{
Disparo[0] = 100;

Pelo que entendi, "Disparo" é controle de velocidade de ventilador, mas a função cham-se "void ApagaLuz ()"

Está muito difícil entender o seu sketch.

RV

entendo, vou tentar descrevera parte do code que acredito estar com problemas..

O Disparo[0] = 100 sígnica desligado e 0 máximo, na verdade vc mesmo definiu desta forma e deixei do mesmo jeito.

void ApagaLuz ()
{
Disparo[0] = 100;
Disparo[1] = 100;
Disparo[2] = 100;
Disparo[3] = 100;
}

isso era para desligar a luz

fiz esta função em separado porque acreditava que podia chamar de outra parte da função, más vejo que não é necessário,,

realmente esta grande e confuso, más acredito que o problema é nesta parte do código.

https://pastebin.com/GkQH89X6

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço