Introduction: Multimodal Clock
I love clocks! I was looking for an instructable for a clock displaying roman numerals on screen. When i did not get any suitable ones on arduino base, i decided to build one myself. Coupled with a color TFT display, I was wondering what else can be displayed and viola! thoughts of various number systems studied in my bachelor of engineering college days (more than 2 decades back!) came rushing in:Binary, Digital, Octal & Hexadecimal etc etc
This though got me started and after much planning & coding, here is the implementation t!
Distinctive features of this clock:
- Multi-modal display where you can have time shown in 5 various number systems in one screen or each number format shown in separate screens selected by a push button.
- The clock face orientation can be on any 4 sides and the data on display can aligned to the orientation using a push button. Later i intend to use a gyro/acceleration sensor to orient the display based on the side it is turned on.
Modes available
- Digital
- Roman
- Hexadecimal (Base 16)
- Octal (Base 8)
- Binary (Base 2)
For someone new to these numbering systems here are the links from the net
Binary format: https://www.wikihow.com/Read-Binary
Octal format: https://www.wikihow.com/Read-Binary
Hexadecimal format: https://www.wikihow.com/Understand-Hexadecimal
Roman format: https://www.wikihow.com/Read-Roman-Numerals
Step 1: Parts Required:
Items needed:
- Arduino UNO/Nano or equivalent
- TFT Display:1.44 inch 128*128 SPI display based on IL9163 (ordered long back via aliexpress) (RED PCB)
- DS 3231 RTC module
- Push button switches 2
- Breadboard, PCB,connecting wires
- Optional: Soldering iron,General purpose connecting wires and a suitable enclosure (I am yet to decide one for this clock)
Step 2: Assemble the Circuitry
Use these connections between the RTC & Arduino. Refer to the hand drafted schematic picture for reference.
- DS3231----Arduino
- SDA-->A4
- SCL-->A5
- Vcc--> 5V (from Arduino)
- GND-->GND (from Arduino)
- Arduino----TFT display
- 9-->A0
- 10-->CS
- 11-->SDA
- 13-->SCK
- Arduino connections
- Vcc-5v
- GND-GND
- 2-->GND via push button (Display mode change button-Bin/Hex/Dec/All)
- 3-->GND via push button (Display orientation change button)
- Display connections
- VCC-->3.3V (from Arduino)
- GND-GND
- RESET-->3.3V
- LED-->5V (from Arduino)
Step 3: Upload the Code!
Use the attached .ino file for the entire code with comments which are self explanatory!
Attachments
Step 4: Enjoy Your Creation and Plan Future Improvements
You have a beautiful and geeky clock on your desk and there's lots of room for new ideas
- Change display or refresh only specific parts of the screen to make display refresh faster (this current implementation sometimes misses displaying a second due to the refresh of the whole screen)
- Add a gyro/accelerometer board and associated code to adjust the display rotation to match the enclosure orientation
- Let your imagination run wild...
Last but not least,if you like my clock do vote for it in the Clocks Contest running currently