Arduino-Based CNC Router Tachometer

If you have a CNC router or other rotary-based tool, you can normally get an estimate of how fast your device is spinning by setting the…

Jeremy S. Cook
2 years ago

If you have a CNC router or other rotary-based tool, you can normally get an estimate of how fast your device is spinning by setting the power going to the motor. On the other hand, to truly know how fast things are running, you need some sort of feedback. Troy Barbour came up with an elegant solution for this, using an Arduino Nano and an IR emiter/receiver to sense how fast the spindle is turning on his CNC router, and a tiny OLED display to show him what’s going on.

The device positions the 3D-printed IR emitter/receiver housing next to the collet nut which holds the cutting tool. One facet of the nut is covered with aluminum tape normally used for furnace ducts, which reflects light back to the IR receiver photodiode once per revolution. Since the tachometer needs to be able to handle speeds of up to 30,000 RPM, the Arduino is programmed with an interrupt function to ensure each rotation is counted correctly. Since the Nano runs at 16MHz, or 16 million cycles per second, this is more than sufficient to capture this data.

Be sure to check it out in the video below, where the machine revs up from 0 to 9,600 RPM, then ramps up to just shy of 30,000. The OLED shows these stats both in actual numbers and a dial, allowing the user to get a quick estimate of what’s going on at a glance.

Jeremy S. Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Related articles
Sponsored articles
Related articles