# 4-Stroke Digital Clock

2,097

10

2

The "4-Stroke Digital Clock" driven by Arduino is a fun emulator of an internal combustion engine in a digital clock.

Hours and minutes digits represent the pistons moving and with a precise RPM control (100 to 800).

The RPM are shown by two columns in the center of display.

Another interesting visual information is the firing sequence "1-3-4-2" of cylinders.

Spark starts when the piston is at the top of cylinder in the compression cycle.

The code is a good exercise for managing dot matrix pixels and for introducing a simple animation feature.

### Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

## Step 1: The 4-Stroke Internal Combustion Engine

The engine model used in this project is an I4 (four cylinders in line) in 4-Strokecycle.

The 4-stroke internal combustion engine works in 4 steps (Intake-Compression-Combustion-Exhaust) as illustrated in the diagram:

1. Intake
2. Compression
3. Combustion
4. Exhaust

C=Crankshaft / R=Conrod / P=Piston / V=Valves / S=Spark Plug

Note: More basic information of Internal Combustion Engines can be find at Wikipedia.

## Step 2: The Clock

In this project the digits of Hours and Minutes simulate the pistons moving and the spark is highlighted in correct time for all cylinders.

The rotation is accurately calculated to represent the actual speed and the value is adjusted by a rotary potentiometer from 100 to 800 RPM (Revolutions Per Minute).

## Step 3: Material List & Assembly

• Arduino UNO R3
• LED Dot Matrix with MAX7219
• DS1307 RTC (Real Time Clock)
• Rotary Potentiometer - 10K Ohms
• Print Template
• Jumpers

The assembly is very simple but you must follow the attached breadboard diagram with attention.

## Step 4: Code

Participated in the
Epilog Challenge 9

## Recommendations

• ### Internet of Things Class

22,188 Enrolled

## 2 Discussions

Your innovation towards using various ideas to show time impresses me! well done. Only 1 suggestion: At higher RPMs is there any better way to show time so that it is clearly visible?