Main Content

The Arduino Uno or Nano can generate accurate digital signals on six dedicated pins by using the three built-in timers. They only require a few commands to set up and use no CPU cycles to run!
Using the timers can be intimidating if you start from the ATMEGA328 full datasheet, which has 90 pages dedicated to their description! Several built-in Arduino commands already use the timers, for example millis(), delay(), tone(), AnalogWrite() and the servo library. But to use their full power, youll need to set them up through the registers. I share here some macros and functions to make this easier and more transparent.
After a very brief overview of the timers, follow 8 cool projects that rely on signal generation with the timers.”

Link to article