Olá Pessoal do Lab Gar., mais uma solicita a ajuda de vcs, estou tentando fazer um projetinho aqui emcasa mais para passar o tempo, e me deparei com um problema que esta me queimando os neurônios já faz dois dias, o amigo RV, me enviou um código que era para eu enviar como trabalho para a faculdade, e resolvi utiliza-lo para adiquirir mais conhecimentos, mas não foi  bem isso, rsrsrsrs, o problema é o seguinte: quero acionar 04 relés através de botões, quando eu apertar o botão 1 aciona o relé 1 e o relé 2, quando eu soltar desliga os relés, e assim sucessivamente, aparentemente um projetinho simples, mas nada que eu faça funciona como eu gostaria que funcionasse, (Obs: para acionar somente um relé até vai mais ou menos, mas quando adiciono para acionar mais de um relé em cada comando não vai), se alguém puder me ajudar eu fico agradecido, segue o código ino.

(RESOLVIDO)

Exibições: 266

Anexos

As respostas para este tópico estão encerradas.

Respostas a este tópico

Olá.

  Sugiro vc mandar imprimir os valores, assim vc visualiza no monitor serial.

  Normalmente quando os botões não estão apertados vem HIGH. LOW vem quando estão apertados.

  Os seus são de que tipo ? Como ligou ?

  Pode ser essa a questão.

  Se vc quer que soltando o botão a sequencia continue, aih é outra coisa...

  Descreva melhor o que vc gostaria que acontecesse com foco na diferença para o que realmente acontece.

Bom dia Eduardo Henrique, então os botões são do tipo pushboton, e sim pretendo deixá-los ligados enquento precionado, ao soltar desliga, eu ainda não coloquei o monitor serial vou fazer isoo pra ver.

É tipo assim, um exemplo eu quero que quando acionar o botão 1 ele aciona os relés 1 e 2, mas aí as combinações eu iria ver, mas só esta funcionando para acionar  um relé, se eu coloco para acionar mais de um o programa endoida, fica em HIGH, qse todas as saídas

RV, vamos ver se da certo agora

Projeto_Testando_Conhecimentos_V1.ino

tem um "else" no ultimo if(), assim o quarto botão está definindo tudo. Se está HIGH de um jeito, se está LOW de outro jeito, sem chance para os outros botões.

Acredito que o correto seria:

Tira o else e coloca:

if ((digitalRead(Btn1) == HIGH) && (digitalRead(Btn2) == HIGH) && (digitalRead(Btn3) == HIGH) && (digitalRead(Btn4) == HIGH)) // Se nenhum botão pressionado.

{digitalWrite(RL1, LOW);
digitalWrite(RL2, LOW);
digitalWrite(RL3, LOW);
digitalWrite(RL4, LOW);}

Projeto finalizado, e concluido, obrigado a todos que de alguma forma me ajudaram, ao RV, por ter perdido boa parte do seu tempo, que Deus vos abençoe.

Projeto_Testando_Conhecimentos_V4.ino

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço