0
\$\begingroup\$

I am working on a formula style car and creating a digital dash based on an Arduino. I currently have a signal from the ECU running at 12v DC and a varied frequency depending on the RPM of the engine. What I need to do is lower the voltage to 5v DC and maintain the same frequency, with as little frequency noise as possible on the output. Is there a good way to do this? Do Voltage Regulators keep frequency, or at least keep some sort of ratio?

UPDATE - SOLVED

My team and I just realized yesterday that we can use the CAN-BUS signal straight out of the car and just comb through the data for what we need. A little bit more coding, but way easier in the long run. Less wires too :D

\$\endgroup\$
  • \$\begingroup\$ What is the frequency? Usually the tach pickup on the transmission has some number of teeth, 60 or even 120 or more. Based on that and the maximum RPM the frequency can be 20 khz or more (10k RPM, 120 teeth = 20khz), which is actually pretty slow and a lot of transistors would be happy to convert. \$\endgroup\$ – Ron Beyer Sep 26 '18 at 0:03
0
\$\begingroup\$

If the load that needs to be driven by the resulting 5V signal is fairly high impedance then a simple voltage divider would be all that is needed to reduce the 12V signal down to a 5V swing.

Voltage dividers begin to be a bad solution if:

  1. The load changes dynamically
  2. The load impedance is less then 0.06 to 0.1 times the Thevenin equivalent resistance of the voltage divider.

So I would suppose that you are using a timer/counter input to the AVR microcontroller to read the pulse frequency. The input impedance of this is very high as long as you keep the internal pullup/pulldown resistors turned off. In this case of voltage divider of 12K up and 5.1K down should do the trick quite nicely.

Do be sure to check the output of the ECU to make sure that the 12V signal makes full transitions from GND to 12V. If it does not go way to GND it may require some additional signal conditioning to be able to feed the signal to the AVR.

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

Use a diode. Yes, it is simple as this.

schematic

simulate this circuit – Schematic created using CircuitLab

The idea is you aren't interested in the height of the signal at all. You are only interested in the zero voltage level versus another voltage level. That's what the diode does. The internal pullup of your µC will pull the input level to Vdd (3.3V, 5V, whatever) if the voltage on the left is higher than Vdd-0.7V (the diode voltage drop).

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ The right side will be 0.7/Vdd, not 0/Vdd, since it is a pull-up that you have described. On the contrary, if it was a were pull-down, it would be 0/0 and not work at all. \$\endgroup\$ – DSWG Sep 26 '18 at 1:37
  • \$\begingroup\$ In practice, this makes no difference at all, as the switch point for digital CMOS inputs is at Vdd/2. \$\endgroup\$ – Janka Sep 26 '18 at 1:38
  • \$\begingroup\$ Yes. I didn't say it wouldn't work :P just saying what the actual voltage values will be. In fact, will probably be even lower ~0.4V since most pull-ups are in the 20K+ range. \$\endgroup\$ – DSWG Sep 26 '18 at 2:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.