Bom vou explicar o cenário, estou desenvolvendo um Datalogger automotivo, ele tem a função de monitorar tudo que acontece com o carro e armazenar em um cartão Sd, Uso para carros de arrancada, competição e/ou modificados sistema de injeção com a Fueltech, Pandoo Injetech e etc... O Datalogger tem a função de capturar os dados como, posição do acelerador, pressão atmosférica do coletor, temperatura do motor e etc... isso já esta funcionando perfeitamente, Já esta coletando os dados armazenando em um SD e exibindo em tempo real em um Display 1602, porém eu preciso de Ler o RPM do carro, e essa parte que não estou conseguindo desenvolver, estou coletando o sinal do motor, medido antes, ele gira em torno de 2V porém as leituras ocila muito e não tem nada a ver com o RPM do carro, estudando um pouco sobre o assunto, eu descobri que ele trabalha em frequencia Hz e estou tentando ler isso pelo arduino, até encontrei um material, em [url]http://www.avdweb.nl/arduino/hardware-interfacing/frequency-period-... [/url] porém jogo dentro do arduino e não compila, mesmo colocando as bibliotecas no lugar, alguém tem um rumo pra mim caminhar ou solução?
Já tentei da 022 até a 1.5 do arduino
Tags:
na realidade o esquema eh esse
penso que o problema das rpm poderá ser resolvido se for buscar a informação ao negativo da bobina utilizando um optoacopulador e depois ler a informação como se de um sensor de Infra vermelhos ou ultrasons se trata-se espero ter ajudado :) estou muito interessado no projecto, inspirou-se em algum site ou blogue que eu podesse dar uma olhada? É um projecto aliciante espero que consiga...
Arduino Simulador de pulsos para teste de RPM - motor à combustão
Para quem quiser testar o seu Tacômetro (medidor de RPM)
Desenvolvi uma montagem com o Arduino para teste do Tacômetro (medidor de RPM).
Não é um simulador com extrema precisão, mas o ajudará a testa-lo.
Fiz testes de verificação com Scope. Ele simula 600 RPM a 6000 RPM.
Monte um potenciômetro de 10K ohms (pode ser maior ou menor) no protoboard junto com o Arduino.
Pino central do POT, conecte-o ao pino A0 do Arduino. As outras extremidade do POT, conecte no +5V e GND.
A saída dos pulsos gerados no Simulador RPM Arduino esta no pino D13. Conecte esse pino de saída na entrada do seu Tacometro. As leituras aparecerão na console da IDE (altere a velocidade para 115200 bps.
Anexei o sketch = RPMsimulator3.INO
/* RPM Simulador de pulsos Gustavo Murta 18/out/2017 Ligacao do Potenciometro 10K ohms - pino central A0 - outras extremidades +5V e GND Conecte a entrada do medidor de RPM no pino HallPin do Arduino simulador
RPM = RPS x 60 RPS (Frequencia)
exemplos : 600 RPM = 10Hz x 60 6000 RPM = 100Hz x 60
Periodo = 1 / Frequencia
*/
float RPS = 0; // Frequencia
int RPM = 0; // RPM
float Periodo = 0; // Periodo
int HallPin = 13; // Pino de saida do Sensor Hall
void setup()
{
Serial.begin(115200); // configure a console para 115200 bps
pinMode(HallPin, OUTPUT); // Pino Hall como saida
digitalWrite(HallPin, LOW);
}
void loop()
{
int POT = analogRead(0); // Potenciometro - pino central no pino A0
Periodo = (map(POT, 0, 1023, 1000, 100)/10); // Variando o valor do Periodo 100 a 10 ms
RPS = 1000 / Periodo ; // RPS = frequencia
RPM = 60 * RPS; // Calculo do RPM
digitalWrite(HallPin, HIGH); // Pulso positivo do sensor Hall = 1 milisegundo
delay(1);
digitalWrite(HallPin, LOW); // Pulso negativo variavel do sensor Hall
delay(Periodo-1.4); // subtracao dos atrasos
Serial.print(Periodo,0);
Serial.print(" ms ");
Serial.print(RPS,0);
Serial.print(" Hz ");
Serial.print(RPM);
Serial.println(" rpm ");
}
Arduino Tacometro - medindo RPM através da frequencia do sensor Hall
Achei essa Biblioteca FreqMeasure na IDE 1.8.3 do Arduino bem precisa. Através dela pode-se medir a frequência do pulso do sensor Hall . Nesse caso, um pulso do sensor para cada rotação do motor.
Acrescentei no sketch de exemplo, o cálculo do RPM . RPM = 60 x frequencia
O único inconveniente, é que ela é um pouco lenta para medir baixas rotações. Como ela calcula a média das medições, pode atrasar um pouco o resultado. Os resultados são bem estáveis. Quanto menor o número de medições, mais rápido ela fica.
Exemplo de medição (console da IDE) :
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
41.80 Hz 2508 rpm
Anexei o sketch = RPMmeasureX1.INO
/* RPM - tacometro Gustavo Murta - 19/out/2017 baseado no exemplo : http://www.pjrc.com/teensy/td_libs_FreqMeasure.html Instale antes a biblioteca FreqMeasure, atraves da IDE do Arduino
pino D08 para medição de RPM / frequencia
*/
#include /font>FreqMeasure.h>
void setup() {
Serial.begin(115200);
FreqMeasure.begin();
}
double sum = 0;
int count = 0;
void loop() {
if (FreqMeasure.available())
{
sum = sum + FreqMeasure.read(); // Calcula a media das medicoes
count = count + 1;
if (count > 5) // numero de medicoes
{
float frequency = FreqMeasure.countToFrequency(sum / count);
float freq = round(frequency * 10) / 10.0; // arredonda a frequencia
int RPM = freq * 60; // calcula o RPM
Serial.print(freq);
Serial.print(" Hz ");
Serial.print(RPM);
Serial.println(" rpm ");
sum = 0;
count = 0;
}
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por