How to Alter signal from a speed sensor

Hi All,

I have a speed sensor that i believe represents speed based on a gear inside the sensor. I can modify the output by changing the gear (more or less teeth) but would like to try and do this using my arduino.

My Sensor has the following wires

  1. 5v
  2. Ground
  3. Speed signal

I would like to read this signal with my arduino and modify it then send out the modifed version.

Can anyone help me with this.
What would the characteristics of this signal be? Square wave, Feq, voltage...
What would I be changing, the Frequency I assume?

To avoid any safety concerns the Speed gear is attached to a bicycle and a wheel that touches the tire spins the gear...

First we need to see a datasheet for your specific sensor to see if it's a true digital type sensor (just on and off pulses) or an analog sensor.

Lefty

I wish I could find it... This is what the whole contration is made from, it's a sensor taken from a jeep transfer case. I did confirm on a friends jeep that the power source is 5v but that's about all I know.

Could you give an answer to both scenarios (Digital as well as Analog)?

Thanks

We don't have enough info to help. You will need to hook an oscilloscope up to the signal, spin it and see what the output looks like.

I figured that would be then next answer :). I have been putting off buying one but I guess now I do have a reason. Well whole different topic but and opinions on the DSO Nano v2 scope? Amazon has it for under $100.00 right now.

jeremywrags:
I wish I could find it... This is what the whole contration is made from, it's a sensor taken from a jeep transfer case. I did confirm on a friends jeep that the power source is 5v but that's about all I know.

Jeep Dodge Chrysler Plymouth Speed Sensor Standard Motor Products SC105T

Could you give an answer to both scenarios (Digital as well as Analog)?

Thanks

The one on my Jeep has a 0-5V square wave. I wouldn't buy a 'scope unless you just want one.

This sounds like the perfect application for a rate multiplier, CD4089, if you want fewer pulses out than you get now. If you need more pulses, you can use several stages of pulse multiplier and then rate multiply down to the exact number you need.

If you prefer a software approach you can use the Arduino to do a form of rate multiplication. You would need to know what the sample rate of the system that the sensor is driving is in order to use that approach.

OK Becuase I am not an electronics buff lets say I were to do it in software how would I find the sample rate of the system? I figured that the gear spins and the sensor sends out a pulse based on the gear speed. Can I not just alter the frequency of that pulse to change the speed?

Yes, I was also going to say you can probably get by without a buying a scope.
If you don't have one, you can buy a DMM [digital multimeter] for $5 at Harbor
Freight in the US, and measure the voltage coming out of the sensor. If it's
pulses, it will probably read on the VAC scale, if analog, then on the VDC scale
will little reading on the VAC scale.

Also, I don't see how you get 5V on a 12V auto system, unless the power comes
from the ECU computer. I would make sure it's not >5V before connecting the
signal to Arduino. If the signal is a 5V pulse like P_G says, you should be able to
measure the basic properties using the Arduino pulsein() function.

jeremywrags:
OK Becuase I am not an electronics buff lets say I were to do it in software how would I find the sample rate of the system? I figured that the gear spins and the sensor sends out a pulse based on the gear speed. Can I not just alter the frequency of that pulse to change the speed?

Well you can't alter the signal coming from the sensor you can only use it as an input and read it's measurement value. Once you know the value of the measurement your pretty much free to modify or do anything you wish with the value and output something in some form to something physically wired to to the arduino. So there are electrical issue to deal with (what are you wishing to output to, and what form of signal does it need) and the software issue(s) (what specifically do you wish to do with the measurement value before sending off somewhere to something. There is no magic here, just specific solutions to specific requirements and specifications.

It's kind of like the classic beginners question we see a lot of, "Can I do x with my Arduino?" The answer is almost never that "x is impossible on a Arduino", it's just a matter of what external circuitry or modules may be required and the software knowledge and experience of the user required to accomplish that task.

Lefty

I will give it a shot. I have a meter and can confirm that the power to the sensor is 5v. I did put the meter on the output signal but it didn't give anything meaningfull, seemed to hover around the mV range...

I'll try the pulsein() function with some serial out to see what I can find.

Thanks Guys

jeremywrags:
OK Becuase I am not an electronics buff lets say I were to do it in software how would I find the sample rate of the system? I figured that the gear spins and the sensor sends out a pulse based on the gear speed. Can I not just alter the frequency of that pulse to change the speed?

There is a lot of good advice in the comments above so I'll just deal with the questions in this comment. Basically, your sensor does exactly what you think, it puts out a string of pulses based on the speed that its input shaft is turning. The device that it is fed into uses the frequency of that string of pulses to determine the rate at which some shaft is turning by multiplying that frequency by some constant. Then the rate is most likely used in a display of some sort or to control the speed of something else or both.

So, depending on what you want to accomplish by changing the frequency of the sensor pulse you will have to do different things. If, for example, you want the device to think the measured shaft is turning more slowly than it is, then you will have to reduce the frequency and if the opposite is your goal, you'll have to increase the frequency. You'll have to give us a bigger clue.