Preciso medir um pico de baixa tensão (+/- 2 volt) proveniente de um sensor de pulso de uma mocicleta (CKP). Trata-se de um componente que trabalha por indução magnética e serve para fornecer a posição do virabrequim ao sistema de injeção eletrônica. O problema é que não tenho como saber o momento exato do pulso. Pensei em utilizar o comando “do while” da seguinte forma:
do
{
volt1=analogRead(0);
volt2=analogRead(0)
}
while(volt2 > volt1);
volt3= volt2;
Onde volt3 seria o maior valor encontrado.
Tentei no tinkercad mas a coisa aparentemente não funcionou legal. Alguém teria alguma sugestão???
Monta um retificador seguidor de tensão com um amplificador operacional e armazena a tensão do pulso em um capacitor. Depois você lê e descarrega o capacitor com um resistor conveniente.
Existem inúmeras formas de implementar isso, eis um bom começo:
O circuito vai retificar sem perder tensão (o que aconteceria se usasse apenas diodos), e o sinal retificado pode ser armazenado em um capacitor no lugar do indicador de tensão da figura. Lembre-se de que você precisa também descarregar esse capacitor em um tempo que seja adequado ao seu uso, deixando o circuito pronto para detectar ou medir o próximo pulso.
Fico agradecido pela sua gentileza e paciência. É que minha formação não é em eletrônica e por isso qualquer coisa mais “sofisticada” fica difícil. Mas como bom soldador de fios, tendo uma base de circuito dá pra começar a mexer.Por sinal, possuo algumas unidades do 741 aqui em casa.
O professor Newton Braga tem sido o grande divulgador de conhecimentos desde a década de 70… aprendi muito com os artigos dele. Eu procurei muito rapidamente, mas no site você pode encontrar um verdadeiro tesouro de informação de base.
Eu já tenho uma certa idade (62 anos) e na minha adolescência já acompanhava alguns circuitos do Newton Braga. Inclusive cheguei a fazer um curso de eletrônica por correspondência (Instituto universal brasileiro)…tinha uns 19 anos (Faz um tempão) mas não me dediquei a eletrônica. Segui outros caminhos.
@ranilson se ainda está em tempo, tenho 2 sugestões (humildes, é claro) a fazer.
Eu faria da seguinte maneira.
1 - usar um sensor HALL, se tiver alguma posição de imã (magnetico) que possa fazer as vezes da chave, dai usa uma porta digital e ativa uma interrupção para tratar esse pulso.
2 - usar um transistor. já que o pulso é de baixa tensão, usar um transistor como uma chave e no momento do pulso você pega no coletor esse pulso invertido e aplica uma porta digital ativando uma interrupção para tratar esse pulso.
Isto torna seu código assíncrono ao pulso não pendendo o resto do processamento aguardando o pulso acontecer.
Quanto ao uso de interrupções, aconselho consultar o site www.arduino.cc na parte de /documentação/referencias
Todas as sugestões são muito valiosas para mim. Agradeço pela sua gentileza. Com relação a sua primeira sugestão, o CKP da moto (gerador do sinal que desejo medir) é um sensor hall.
Se sim seu problema já está resolvido. Ai sugiro fazer o que o @Ludicon propos, dar uma olhada no site do Prof. Newton porque se a saída é um sensor hall ele te dá um pulso em algum momento do giro.
Basta aplicar a um AOP na topologia de “schmitt trigger” para fazer seu sinal ficar adequado ao arduino (5V). Ou usar a topologia do desenho com transistor como chave para pegar o sinal na porta do Arduino.
De resto o código fica mais simples porque bastaria você criar uma rotina para tratar a interrupção.