Introduction: 4-Stroke Digital Clock
This is an entry in the
Epilog Challenge 9
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.
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:
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
The assembly is very simple but you must follow the attached breadboard diagram with attention.
Step 4: The Code
The Code for Arduino uses 3 libraries:
- LedControl.h (Library for LED matrix using MAX72XX)
- Wire.h (Library to support DS1307RTC)
- DS1307RTC.h (Library for DS1307 - Real Time Clock)
We have a be nice policy.
Please be positive and constructive.