Check the 35 other Arduino tutorials

Learn to build a digital Arduino OLED clock


Learn how to build two different clocks. The first clock can adjust the time by using an hours and minutes button. You also learn how to create an animation.

The second clock makes it possible to adjust the hours, minutes and seconds by using a menu. You also learn how to use interrupts and debounce for your buttons.

We also going to replace delay() with millis(), and learn how to detect whether a button hasn't been pressed for a certain period of time.

I explain the mistakes I've made while creating this project, so you don't have to make them as well.

Learn to build a digital Arduino OLED clock schakelschema

Tutorial goals

  • Combining OLED display and buttons
  • Buttons with interrupts
  • Working with delay() and millis()
  • Implementing configuration menu
  • Structuring Arduino project

Components needed

  • 1× Arduino
  • 1× Breadboard
  • 9× Jumper wire (male-male)
  • 1× 128X64 I2C OLED display (SSD1306)
  • 2× Push button / tactile switch

Bas van Dijk

About Bas on Tech


My name is Bas van Dijk, entrepreneur, software developer and maker. With Bas on Tech I share video tutorials with a wide variety of tech subjects i.e. Arduino and 3D printing.

Years ago, I bought my first Arduino with one goal: show text on an LCD as soon as possible. It took me many Google searches and digging through various resources, but I finally managed to make it work. I was over the moon by something as simple as an LCD with some text.

With Bas on Tech I want to share my knowledge so others can experience this happiness as well. I've chosen to make short, yet powerful YouTube videos with a the same structure and one subject per video. Each video is accompanied by the source code and a shopping list.