Olá pessoal !!
Desde já muito obg pelo interesse e tempo de quem puder ajudar, desejo um excelente ano a todos…
Vamos lá… tenho trabalhado em um exercício que venho modificado a caráter de estudo e aprendizado, até o momento havia conseguido realizar e ter sucesso em todos os experimentos, até que desta vez travei…
1º Trata-se de um CKT que aciona saída por meio da leitura de teclas pressionadas, são três teclas e três saídas;
2º Mantem a saída acionada enquanto o pushbotton referente estiver pressionado, ao soltar esse botão a saída deve ser desligada.
Obs.: até o passo dois tudo certo, a questão é que não consigo transformar o pensamento abaixo em forma de linhas de código.
1º Se eu pressionar a tecla “Botao1Relay_A” o arduino deve acionar a saída “OUT1Relay_A” mantendo-a acionada enquanto o botão estiver pressionado e impedir que as outras duas teclas ( Botao2Relay_A, Botao3Relay_A ) acionem suas saídas.
2º Resumindo de uma forma simples, o primeiro botão a ser pressionado tem preferencia sobre os outros dois.
Uma grande dificuldade é poder me fazer claro, mais uma vez agradeço a oportunidade de um canal como esse em facilitar o aprendizado através da aproximação de pessoas, quem puder clarear minha mente nessa situação já deixo meu muito obg…
---
Tags:
Olá Allan Freitas Teixeira, tudo bem?
Antes de mais nada, recomendo remover o seu código da postagem, a anexa-lo em um .ino.
Ok....
desculpe.
Veja, quando você estiver desenvolvendo o seu código, tente faze-lo da forma mais simples possível.
Modelo simples com comentários: Chaveamento_RV03_V1.ino
Modelo com redução de código: Chaveamento_RV03_V2.ino
Modelo com mais redução de código: Chaveamento_RV03_V3.ino
modelo com mais redução ainda de código: Chaveamento_RV03_V4.ino
Não testei nenhum dos 4, mas acredito que todos funcionem. Estou apenas com dúvidas em relação ao V4, mas deve funcionar.
Allan, caso o problema tenha sido solucionado, e você não tenha mais nenhum questionamento sobre o assunto do seu tópico, por favor, edite o tópico e coloque o " [resolvido] " na frente.
Oi Tiago...
agradeço muito teu auxilio desde o inicio do meu tópico... sim, testei tuas alterações e vou atentar mais para o desenvolvimento, pois teu código é bem mais limpo e simples, obg por isso.
Sobre o problema que levantei com esse tópico esta em partes resolvido, mas continuo com duvida sobre a estrutura.
A solução que tu disponibilizou funciona no "Bot1" e eu mantenho ele pressionado os botões "Bot2" e "Bot3" ficam impedidos de acionar as suas saídas. Agora se eu partir apertando o "Bot2" quero que da mesma forma anterior ele impeça o funcionamento do "Bot1" e "Bot3", e consequentemente se eu partir apertando o "Bot3" ele impeça o funcionamento do "Bot1" e "Bot2".
Eu trabalhei em cima do teu código e não tive sucesso, antes mesmo de pedir ajuda ao forum, estava a duas semanas atrás de algum texto ou dica que me fizesse entender, mas todas as alteração que consegui foram fazer apenas o botão 1 funcionar como tu fez, mas não consigo fazer os três funcionarem da forma que expliquei logo acima.
Espero ter podido me fazer claro, eu gostaria mesmo de entender a logica de como usar i "if" / "else" nesse problema que levantei.
desde já muito obrigado até aki...
Se possível, apresente as lógicas que você tentou.
Olá... um feliz ano novo pra ti.!
Deixei a modificação que fiz no teu código em anexo, tentei muitas, mas analisando elas não são tão diferentes, pois na simulação o resultado sempre fica muito parecido... como disse quero entender, e parando um pouco para refletir acredito que as logicas seriam assim.:
Botão1 -->
1º Se for pressionado verifica os outros dois botões
2º Se os outros dois estiverem em HIHG aciona saída Relay1 enquanto Botão1 estiver pressionado e impede que os Botões2 e Botão3 funcionem
Botão2 -->
1º Se for pressionado verifica os outros dois botões
2º Se os outros dois estiverem em HIHG aciona saída Relay2 enquanto Botão2 estiver pressionado e impede que os Botões1 e Botão3 funcionem
Botão3 -->
1º Se for pressionado verifica os outros dois botões
2º Se os outros dois estiverem em HIHG aciona saída Relay13enquanto Botão3 estiver pressionado e impede que os Botões1 e Botão2 funcionem
Ou seja, me parece simples solucionar o problema de forma mental, mas quando tento transcrever isso acima para linhas de código é que encontro dificuldade.
Olá, Allan!
Em anexo um "pseudo-código" da abordagem que eu uso para resolver este tipo de situação.
Este: ButtonLogic.c
Talvez possa ajudar.
buttonsState é uma variável booleana.
ALL_RELEASED e NOT_PRESSED você deve definir conforme o hardware/software determinam.
Sorte e Sucesso!
D. T. Ribeiro,
Olá...
Muito obg pela atenção, vou estudar e tentar aplicar isso então... um ótimo ano.
Meu querido.. obg pela ajuda, passei analisando tua forma de pensar sobre o problema, estou buscando material sobre tua abordagem... não consegui um código ainda funcional, mas estou tentando seguir também tua ideia. obg..!
Não testei, mas deve funcionar.
Olá...
Só para dar um retorno, esse seu não funciona...
Apenas liga e desliga a saída referente ao botão 1, o restante fica inativo.. ainda estou tentando fazer alterações em cima da tua logica, como disse a intenção é aprender... mas fazer três teclas funcionarem como quero esta bem complicado, igual vou continuar tentando; contudo estou muito agradecido pela ajuda dos senhores.... creio que uma hora se resolva, muito obg..!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por