It’s often necessary to measure a motor’s rotational speed without any physical contact with the motor or its shaft. Some methods use a mirror attached to the motor’s rotating part to reflect a pulsed laser beam back to an optoelectronic measurement circuit. Other contact-less methods involve measuring an induced voltage from a spark plug wire, if available. Such methods suffer from drawbacks such as high cost or limited applicability.
This contact-less tachometer uses a small magnet attached to the shaft or any other rotating motor part. The circuit measures the period of the voltage induced in a stationary inductor placed in the magnet’s field. This method leaves the measurement circuit electrically as well as physically isolated from any part of the motor.
The circuit consists of a large (>100 mH) inductor followed by one half of a dual op amp (IC3-A), configured as a high-gain amplifier (Fig. 1). The op-amp output passes through two low-pass filters (R6, R7, C8, C9) arranged in parallel but with different time constants. These filters feed the second half of the dual op amp (IC3-B), configured as a comparator. The differing filter time constants result in a small phase difference between signals feeding the comparator. As a result, the comparator generates a pulse waveform with the same period as the induced voltage signal (Fig. 2).
An AVR Tiny45 microcontroller has pin 3 configured as an input to measure the waveform’s frequency. The microcontroller’s other pins drive a dot matrix display. The display is from the hugely popular Nokia 3310 mobile phone, which is widely available from electronic component vendors, due to the 3310’s popularity. The monochrome display does not have any backlight, so the display mounting includes external white LEDs on two sides to allow visibility in low-light conditions.
Power for the circuit comes from a 9-V battery connected to the SL3 connector. This voltage powers the LM358 op amp, but the Nokia display requires a dc power-supply voltage between 3 V and 3.3 V. A low-dropout LM2950-3.3V regulator creates the supply voltage for the display as well as the microcontroller. To limit the comparator output to the microcontroller’s input voltage, the output passes through a resistor and a 3-V Zener diode (D2).
The Tiny45 microcontroller has 4 kbytes of flash memory and 256 bytes of SRAM. This proved to be more than sufficient for this application to be written in a high-level language. We used an AVRGCC compiler to write and compile the code in C and transfer it to the microcontroller’s flash memory. The code is available with the online version.