This September, I'm moving to a new office that provide calibration service. I put myself in a R&D position, and asked to make a tachometer calibrator. My office asked me three device: non-contact tachometer calibrator, contact tachometer calibrator, and strobe tachometer calibrator. For this post, I will explain the non-contact tachometer calibrator first.
Non-contact tachometer calibrator works by measuring time between reflection of laser light on a rotating object. The device usually ships white reflective paper to attach to the rotating object (although any white paper is fine). A photo diode (or photo transistor) inside the tachometer receive the bright red reflection.
To confirm the theory, I downloaded Strobily Free for android. It provide similar functionality to strobe tachometer. I pointed the photo tachometer to the strobing LED light of my phone and it shows the correct RPM.
So, I created device that's basically a LED with customizable PWM frequency
- No BS user interface
- Oscilloscope Output for debugging purpose
- Simple and cheap
- 5VDC operating voltage
- Adjustable RPM from 1 to 99,999
- The Omnipresence Arduino (Uno variant). Cheap (the MCU alone costs $2 here).
- 16x2 character HD44870 - compatible LCD display
- High-brightness 1W LED (currently uses Cree LED, but will replace it with red LED)
- 2 buttons for user input
- 2 trim potentiometer for LCD contrast.
- Photodiode for stroboscope detection.
Available at https://gitlab.com/banitama/TachometerCalibrator.
Discrete Semiconductors / Transistors, MOSFETs, FETs, IGBTs
270 Ohm Resistor
View all 8 components
Banitama Supartha •
10/08/2015 at 12:06 •
Initially, I thought of using the usual micros() to set the output for the LED. Soon, I found out that micros() is not very accurate. 4us resolution and too much overhead for producing stable frequency. Even though I replaced the micros() with another library , it seems that software-based waveform generation is not too reliable.
Then I discovered PJRC's FrequencyTimer2 library. A little less flexible, since it only allow you to output waveform on pin 11. I was prototyping this on a perfboard and with Arduino's standard digital pin spacing I need to drill a set of new holes, so I'm moving to Arduino Nano and custom PCB.
Banitama Supartha •
09/26/2015 at 17:37 •
By the time of writing, the project is undergoing its first beta phase. I noticed several room for improvement here:
- Change the LED to a red one. White LED often contain phosphor on top of the silicon substrate to make it emit light with spectrum what our eyes see as white. This phosphor layer will glow for a short time after current removed from the silicon ("afterglow"), potentially affecting accuracy of the rotation simulation. This effect does not appear on the plain red LED.
View all 2 project logs
Enjoy this project?