Frequency to Voltage Conversion

Hey Guys,

Very new at this and I am getting ready to order my first arduino. I have been doing tons of reading and I have a few projects in mind.

First project-

I would like to take the signal from a VR sensor (ABS sensor in this case) and use a look up table on the ardunio to convert it to a linear voltage output. This would be in turn used as an input into an EMS. I realize that this could be done strictly with analog hardware but I want to give it a shot with the Arduino first and get my feet wet.

Second Project -

I want end up recieving and logging the data from my EMS for later analysis. I know that all I have to do is send it an "a" followed by a binary number to tell it what data I want. Then it will send me back all the raw binary data which I want to log. My question is, how well can I store this raw data on to a removeable storage medium such as an SD card or the like.

I know that the second project is getting a little deep for a beginner but when I have something that interests me, it will help keep me focused and determined. I appreciate any and all input and advice you guys have to offer me.

Thanks, Caleb Peterson 4th Year Mechanical Engineering Student Rochester Institute of Technology

darned TLAs

First project-

I would like to take the signal from a VR sensor (ABS sensor in this case) and use a look up table on the ardunio to convert it to a linear voltage output. This would be in turn used as an input into an EMS.

Hi Caleb,

so you have a Virtual Reality sensor made of ABS plastic that you want to input to an Emergency Medical Service ? ;)

anyway, whatever the project I am sure you will enjoy doing it with the arduino and can rely on the many helpful people here if you need any assistance making it happen.

Have fun!

I suppose I should expand all of the abreviations for those who may not be firmiliar.

VR- Variable Reluctance ABS - Anti-Lock Brake EMS - Engine Management System

Hi Caleb, thanks for the clarification. Please do post your progress.

Have fun!

Doesn't the ABS sensor essentially give a certain number of pulses per wheel rotations? If it doesn't have an extra port to plug into, are you using an induction loop around the wires to detect the pulses?

Counting pulses is similar to interfacing with an optical encoder, which is a more-or-less solved problem on arduino, if memory serves.

As for connecting to the engine mgt system, are you using the OBDII diagnostic port of your car, or are you connecting directly?

Just curious, probably won't be of any help at all to be honest.

The sensor will be dedicated strictly for this purpose. As far as integrating it into the EMS, I have a MegaSquirt system (aftermarket) that will accept a 0-5VDC signal. Thats what I need my output to be from the arduino.

As far as pulses per mile/revolution, yes that is a constant. I am essentially creating a 0-5VDC output speedometer.

Thanks, I understand your goals much better now.

I'd use a PWM output with a little resistor-capacitor filter to smooth the pulses out and create that variable voltage output you need.

The default frequency for analogWrite() is around 500Hz and you'll have 256 levels of control, but if you need something faster and/or more resolution, there is a library called Timer1 that will provide you with up to 1MHz pulses and 1024 levels of control over the duty cycle of the PWM for two specific pins (digital9 and digital10 if memory serves).

If you're unsure about the impedance of your EMS's input port you may have to buffer your signal. A common-collector amplifier with a single transistor would work but there's a voltage drop, so you'd lose some of your 5 volts. If this drop is too important, an Op Amp will do nicely.

Good luck and don't forget to keep us posted.