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…

---

Exibições: 158

Anexos

Responder esta

Respostas a este tópico

corrige o erro nas linhas 25 e 26. deve funcionar.

Tinha razão, levei um tempo para entender como tu pensou no teu código, muito obg.... tua sugestão funcionou, esta resolvido.

Olá Allan, pelo que eu entendi seu projeto tem 3 botões (1 a 3) e 3 relés (1 a 3), ao pressionar um dos botões o relé correspondente deve ser acionado.

Se um dos botões estiver pressionado apertar outro botão simultaneamente não deverá ter efeito, existem várias formas de resolver isso, eu posso apresentar duas.

Uma é usando uma variável de botão pressionado para travar a leitura de outro botão simultâneo.

A outra forma, caso seu projeto irá executar apenas isso, pode ser com o uso do "while", o inconveniente desta função é que ao usar o "while" o programa fica travado nesse comando enquanto qualquer um dos botões for pressionado.

Algumas observações sobre os códigos que eu estou te enviando:

1 - Eu diminuí os nomes dos botões, relés e variáveis (pura preguiça de escrever).

2 - Para simular no PROTEUS eu mudei os pinos dos relés, pois simulo em um UNO que não tem os pinos 22, 23 e 24.

3 - Para facilitar eu habilitei o PULLUP nas entradas, então a lógica fica inversa, ou seja, botão pressionado retorna nível lógico "0" e em repouso retorna "1".

Anexos

Renato... 

    Muito obg... tua sugestão funcionou muito bem, agradeço teu tempo gasto no auxilio, consegui bastante material dos amigos para estudar e aperfeiçoar o conhecimento até aqui... te desejo sucesso em tudo grande abraço...

RSS

© 2023   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço