Olá garagistas, estou com esse codigo de um timer. O codigo funciona sem problemas, porém gostaria de modificar um detalhe nele e não estou achando a solução. No hardware tenho simplismente um potenciometro no pino A0 para controlar o tempo do timer e um botão conectado em 5 volts para dar o start, quando aperto o botão, ele envia 5volts para a porta 2 assim então rodando o código. O problema que se eu apertar o botão e não soltar a saida no pino 8 fica sempre em nivel alto, no caso preciso soltar o botão para o codigo rodar corretamente. Gostaria de permanecer com o botão apertado e mesmo assim conseguir rodar o codigo. Ai vai o código:
Tags:
SGF,
testa este sketch.
Lembre-se que o port 2 deve ser sempre ou LOW ou HIGH,
ou seja não pode ficar em estado "flutuante" .
RV
RV,
era exatamente isso. Funcionou beleza. Coloquei um resistor 10k na porta 2 ligado ao terra e funcionou sem erro. Muito obrigado. Abraços
Ola Rui, e se eu usasse um sensor que funcionasse da seguinte maneira, quando o sensor detecta o objeto ele fica em nível baixo e quando ele não detecta, ele fica em nível alto. Qual modificações teriam que ser feita no código? Obrigado
Boa tarde SGF,
modifique esta linha:
attachInterrupt(0, ligaRele, RISING);
para que fique assim:
attachInterrupt(0, ligaRele, FALLING);
E teste aí
RV
Boa tarde Rui, já fiz isso aí a saída funciona por 2 vezes, na hora que o sensor detecta o objeto que o sinal cai de 5v para 0v e quando ele deixa de detector o objeto, quando o sinal vai de 0 para 5v. O correto seria funcionar somente uma vez quando o sinal vai de 5v para 0v.
Não deveria, pois o interrupt só acontece no "FALLING" .
FALLING = queda = +5V para 0 V.
Vc removeu a linha: attachInterrupt(0, ligaRele, RISING);?
e substituiu pela : attachInterrupt(0, ligaRele, FALLING); ?
RV
Sim ja modifiquei, ele funciona, mas quando o objeto se afasta do sensor(0v para 5v) ele repete o timer pela segunda vez.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por