Thingiverse

XL 7-segments Digital Clock/Thermometer

by Thingiverse
Arduino Nano + DS3231(ZS-042) + 30xAPA104-LED-Strip based digital clock/thermometer
The numbers are 195mm (7.8") height, so that one digit fits right into most Printers,
the HH:MM Version is 580mm (23") wide.
The clock is modularized, it is easy possible to just create a HH:MM:SS version configurable in the code.
There are 3 case parts: the last digit + cap(1x), a normal digit connectable to the next right(3x or 5x), and a dot-case(1 or 2x).
Additionaly are 4 types diffusor-inlets: A (top/bottom), B (upleft/downright), C(upright/downleft) and D(center) and one for the dots.
The last digit case contains space for the two boards (Arduino Nano and ZS-042)
As strip can be used all WS2811, APA104 or Neopixel kinds. I would prefer the 3-wire solutions, since soldering 30(or 46) interlinks is awefull lot of work.
The digit cases can be screwed against a large beam with M3 screws directly driven in the back to give everything a better strength.
Wiring Instructions:


Internally the line in the digits follow the pattern:
-2-
1 3
-0-
6 4
-5-
so just connecting the arduino gnd, +5V and DI of the beginning of the strip and go from 0 in the smallest (far right) digit up through the whole clock. Just 3 wires through all the digits in the number.
Hint: soldering the ~6cm bridges between all 7 digits of a number, add a longer triple to the end, fiddling the wires through the holes, solder them together and finally stick the led-strip-parts inside the gaps in the cases.


Connect the SDA, SCL, Gnd and Vcc of the ZS-042 to Arduino pins A4, A5, gnd and 3.3V Get rid of the diode right of the DS3231 (the black/red cylinder) to avoid try to load the CR2032 (which is a stupid idea, don't know why they ship that stupid combination of battery and laoding circuit?!? Also i removed the pin-header)
Connect the gnd and 5V of the usb-A-cable (red and black) or to the power supply. There is a hole underneath the arduino to lead the wire to the back.


Fiddle the photodiode into the hole in the cap. Connect the photodiode to vcc(5V) and Analog-Pin A0, and a suitable resistor from pin A0 to ground. Check the analog-value readout e.g. in a small test-program for the brightest and darkest planned environment (just cover the diode) and enter it in the configuration section or just see if the default settings work for you.

Test everything. If it works you can slide both boards in special gaps at the end-number case. Don't solder pin-headers to the nano. I was not planning to reuse the nano either, since it is part of the clock.

Software will be uploaded later (since printing everything will take a week, I'm a little in advance to anybody here, but don't be afraid, it will come next week (this is a cristmas gift ;) so it must work, its nearly done )
Features (can be configured in the code)

different colors depending on time of day
automatic brightness adjustments
automatic summer/wintertime setting
automatic toggling between HH:MM, MM:SS and TT.T°
time / date is set via serial terminal
temperature readout via the DS3231 (shown in °C, if you need °F ask and I add a configuration)
?? any other ideas - ask in the comments

BOM: (everything including Print Material: ~15-20€/$)

1x Arduino Nano,
1x DS 3231 (case fit for a ZS-042 board)
1x 1m APA104/WS28** 30LED/m LED-Strip (or .5m of 60LEDs/m)
(one can use 1m of 60LEDs/m to use a pair for each digit to make a brighter one)
(= 30x or 44x for the HH:MM:SS version)
~ 200g colored filament for the frame (it should be optically dense) for 3x digit-case, 1x end-case and one dot-case
~150g white filament for 7 inlets each number (there are kind of different white filaments around, I choose one that is a little less dense, let more light shine through but still hides the dot of the LEDs, transparent filaments let lights through but don't diffuse the light alot)
1x aluminium bar 55cm (L or U-shaped) to strengthen the back
8x M3x10-M3x20 (the holes in STL are 3mm, but my prints are offering me then a hole where M3 screws cutting into the plastic)
~ 6m >AWG26 wires, 3 colors would help
1x photoresistor and suitable resistor (in the range of the mean-value of the photoresistor) for brightness measurement, normally about 10K)
either:
1x USB-A-Cable, directly soldered to the 5V and gnd of the nano
1x USB-power adapter
or:
5V ~1A power adapter and a connection plug to the nano

Remarks

The used white diffusors makes it hard to read in a bright environment. either use transparent filament wich is not work well as a diffusor or use the 60LED/m version and use 2 led's per digit-bar. (minor changes to code, just uncomment something in the configuration section)
Setting the clock needs a serial terminal, the DS3231 is stable enough, so that one does not need a button

Tags