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:

Exibições: 323

Anexos

Responder esta

Respostas a este tópico

Boa tarde SGF,

veja se esta modificação que fiz no seu sketch atende sua necessidade.

RV

Anexos

Boa tarde Rui, espero que esteja tudo bem com você. Foi rápido heim, heheh. Vou testar e depois dou um feedback. Muito obrigado.

Boa tarde, testei o sketch mas não funcionou. Ele está com o mesmo efeito de antes.

Bom dia SGF,

a modificação que postei não funcionou porque eu me basiei na sua descrição do projeto,

e como ela está incoerente com o sketch que postou, não deu certo.

Na descrição vc diz:

um botão conectado em 5 volts para dar o start, quando aperto o botão, ele envia 5volts para a porta 2"

mas no sketch que postou o port 2 está definido o pinMode assim:

""  int startPin = 2; // the pin where the signal get in ""

""  pinMode(startPin, INPUT_PULLUP); // Signal Timer "" 

Qdo define  INPUT_PULLUP para um pinMode, ativa-se o resistor interno do port ligado aos + 5V,

portanto o  port está sempre com +5V, e de nada adianta ligar este port novamente aos +5V,

como descreveu no texto do tópico.

Preciso entender o esquema e como deveria funcionar seu projeto, para realizar uma mudança correta.

RV

Bom dia Rui, sim eu não corrigi esses detalhes ainda, então basta somente trocar INPUT PULLUP por INPUT certo?

Não sei, não posso afirmar isto,

pois não sei como é o esquema elétrico e nem como é o funcionamento completo do seu projeto.

Como vc não corrigiu, vc disse que estava funcionando?????

RV

Por enquanto ainda não é um projeto, estou fazendo alguns testes vou substituir esse botão por um sensor, onde o sensor vai enviar 5v para a porta do arduino fazendo o timer funcionar entende. Quero ativar o timer com 5v. Quando tenho 5v ele roda o programa uma vez. A cada 5v ele roda o timer uma vez.

Não, não entendi, Vc disse no texto : 

O codigo funciona sem problemas...."  

Da forma que  está, jogando 5V no port, não funciona não.

Descreva o que este projeto deve fazer. Por exemplo:

Pressionado o  botão, o rele deve..............etc etc

Faça um descritivo completo.

RV

Isso não é um botão é sim um sensor de distância  que irá medir a distância se alguém  se aproximar muito de determinado objeto então o sensor irá enviar 5 volts contínuos para a porta 2 do arduino e o arduino deve rodar somente um vez esse timer a cada vez que ele receber 5v contínuos, sendo assim ativando o relay na porta 8 e ativando uma sirene. Acho que agora não faltou nada. Haha

Alguém aproxima do sensor, e o sensor então coloca 5V no port 2 do Arduíno,

dai incia a contagem de um tempo.

Ao passar o tempo programado aciona um rele.

É isto?

Quando e como libera o rele ?

RV

O sensor envia 5 volts contínuos para a porta 2 do arduino, o arduino de imediato liga o relay e então começa a contar o tempo determinado pelo potenciômetro depois disso o relay é desligado, lembrando que ainda tenho 5 volts na entrada 2 vindo do sensor. A cada vez que o sensor vai de nível 0 para 5v ele repete esse ciclo.

Rele HIGH é rele ligado ou desligado?

RV

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço