Bom dia a todos.
estou com problemas na construção de um programa para um uno R3, preciso de ajuda.
O programa deveria fazer o seguinte.
1- alimentando a entrada 2 com um pulso.
2- a saída 4 vai para HIGH,
3- um delay ,
4- saída 5 HIGH,
5- um delay
6- a saída 5 LOW
7- delay,
8- a saída 6 HIGH,
9-apos acionar entrada 2 novamente
10- saída 6 LOW,
11- delay,
12- saída 4 LOW.
13 -fim.
consigo fazer ate o item 9 ai o sistema entra em loop
entre a saída 5 e 6.
por favor me ajudem.
Tags:
Boa tarde FG,
anexe um arquivo contendo o código que vc fez e entra em loop,
para que possamos entender melhor seu projeto, e sugerir correções.
RV
Sr. FG,eu disse:
" anexe um arquivo "
por favor remova o código que colou na área de texto do tópico, e
anexe com arquivo.
RV
ok obrigado
Programa%20mag%20desmag%20hibrido.docxbom dia segue anexo
Bom dia FG,
obrigado pela compreensão.
No momento estou em viagem.
Ao retornar segunda feira, revisarei seu código e sugerirei
mudanças para que ele atendam sua necessidade.
RV
Olá.
Não cheguei a testar aqui mas faria a observação:
Conforme o arquivo Arduino.h que acompanha o pacote, são definidos:
#define HIGH 0x1
#define LOW 0x0
E a instrução é usa-los nessa forma original "HIGH" ou "LOW". Não fazer aritmetica com esses valores.
Vide:
https://www.arduino.cc/reference/en/language/functions/digital-io/d...
No caso me refiro as pontos onde vc escreve o valor de uma variável do tipo int:
estadorele2 = !estadorele2;
//Comandos para o rele 2
digitalWrite(porta_rele2, estadorele2);
Se estadorele2=0 e passa a valer !estadorele2 ele recebe o valor -32768. Pq o "!" inverte todos os bits, até o de sinal...
Sei lá como o AVR interpreta isso... Ahh, sequer vc falou que era um AVR.. Se for um ESP32 ou Arduino DUE ferrou de vez, dá: -2,147,483,648
Teria que ser "^=1" por ex que inverte apenas o ultimo bit e olhe lá. O ideal é obedecer a documentação e usar apenas HIGH e LOW pq não é dificil que lá no meio exista um "if (... == HIGH) e vc usa por ex 255 para high quando ele espera 1 ou 65535, sei lá.
Vide:
https://www.arduino.cc/reference/pt/language/variables/data-types/int/
ok vou mudar
muito obrigado.
Boa noite FG,
testei o seu código e não deu problema aqui não.
Testei com este código:
RV
Fábio, qual seu projeto?
Programa%20mag%20desmag%20hibrido.docxBoa tarde Luiz
segue programa
boa tarde o problema esta quando eu aciono o o botão pela segunda vez.
a saída 1 sai e a 3 sai ,so que a 2 entra e aciona a 3 novamente .preciso que desligue tudo no segundo pulso.
se puder me ajudar.
Boa tarde FG.
o seu código está assim:
Ao apertar B1:
liga rele1 ---- delay ---- liga rele2 ----- delay ----- desliga rele2 -----
delay ----- liga rele3.
Ao reapertar B1
desliga rele1 ---- delay ---- liga rele2 ----- delay ----- desliga rele2 -----
delay ----- liga rele3. (mantem Ligado).
Ao apertar B2:
liga rele2
Ao reapertar B2
desliga rele2
Agora escreva a sequencia que vc precisa.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por