How-to: Using a 555 timer as an external clock for the Arduino

Here is another how-to from Jeff, this time he describes using a 555 timer as an external clock for the Arduino. It’s a really interesting technique on how to get a fairly accurate external interrupt at lower frequencies.

The key here is an ‘external clock’. Rather than have the Arduino keep track of when to perform the next task, you have an outside signal that says “Now!” and fires an interrupt which the Arduino responds to. If your source fires every 100 milliseconds, then 10 times a second, the Arduino will receive an interrupt which will stop any processing currently happening and immediately execute the interrupt handler. For every tick of the clock, the interrupt handler will execute.

In the Maker Shed:
Arduino Family
Make: Arduino

6 thoughts on “How-to: Using a 555 timer as an external clock for the Arduino

  1. Why would you choose to add more hardware when you could use one of the built-in timers?

    Don’t get me wrong- I’m sure there’s a reason, but it’s not very obvious. (Other than to maybe add an extra timer when the others have already been taken?)

    1. Hi Ryan,

      Good question, and the most honest answer is “because I didn’t know about the hardware timers when I wrote it”. :) [How many noob points do I get for that?]

      But I feel there are some good reasons why this is still a valid technique. For one, I think the longest interval the hardware timers will do is 8.3 seconds, and you might want something longer than that. Also, it’s possible that you could be interfacing with existing hardware that has a 555 running as it’s own clock that you want to sync to.

      But mostly this was a learning experiment for me, it had been a long while since I even looked at a 555 much less used it for anything, and I figured “hey, that would make a fun little project I could write up”.


Comments are closed.