I'm trying to build a digital tachometer for my motorcycle using an Arduino nano. I have researched a lot on how to reduce the 12 volts from tach signal to 5 volts to be read by the arduino. One post here suggests using a voltage divider using zener diode.

The tach signal from the motorcycle is a square wave and quite high frequency. I'm not sure if the zener diode can handle frequencies like this. I'm not sure how the frequency is calculated but if its coming from the alternator, it will be very high.

Since I'm completely new to electronics, I would like to know if this will work with a zener diode or i should be changing something?


  • \$\begingroup\$ 1st define what display spec, then work backwards. Tach cct. is a 1shot per rev so avg Vdc rises with frequency with a LPF. \$\endgroup\$ Dec 11, 2019 at 3:40
  • \$\begingroup\$ How high frequency? And Arduino can easily handle quite a few kHz. Can't you just simply step it down with a voltage regulator and read the PWM signal with the comparator on the Timer module of Atmega328? It would send an interrupt every time the signal has come through and you can choose how to handle it. \$\endgroup\$
    – C. K.
    Dec 11, 2019 at 4:58
  • \$\begingroup\$ A voltage regulator? That is probably a bit overkill, why not just use a normal voltage divider with two resistors? \$\endgroup\$
    – jusaca
    Dec 11, 2019 at 18:06

1 Answer 1


The simplest solution is to follow the suggestion you mentioned and use a voltage divider with two resistors. You can add a zener after the divider just as an added protection to make sure the voltage into your circuit will never get higher than 5V.

Speed should not be a reason for concern.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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