Berlin Clock - Mengenlehreuhr replica V2
We calculate the final price from your selected file. You review and accept it before payment.
Saved on this device.
This is an improved version of the miniature replica of the Berlin clock. I added informations about electronics.
- Rating
- 0 / 5
- Likes
- 21
- Downloads
- 75
- Makes
- 0
- Views
- 890
- Reviews
- 0
Updated at source:
Model information
- Source
- Printables
- Category
- Other Art & Designs
- License
- Creative Commons — Attribution — Share Alike
This is a miniature replica of the Berlon clock "Mengenlehreuhr" designed by Dieter Binninger.
- Working principle :
• There are 24 light signals arranged on 5 levels.
• The round box at the top shows the seconds (by flashing once every second).
• The first led raw contains 4 led and each box represent 5 Hours.
• The 4 boxes below each represent 1 hour.
• The third row contains 11 boxes which represent each 5 minutes. (note that the third, sixth and ninth led of this row are red to represent three quarters of an hour more easily).
• The 4 boxes in the last row each indicate 1 minute.
• The clock reads top to bottom.
Print Settings
Printer Brand:
Prusa
Printer:
I3 MK3S
Rafts:
Doesn't Matter
Supports:
No
Resolution:
200
Infill:
20
Filament:
[Prusament PLA ](http://www.amazon.com/s?url=search-alias&field-keywords=Prusament+PLA&tag=thingiverse09-20)
How I Designed This
- Second version optimized and with shapes closer to the original clock

- A view of the prototype, at 17:58
- [The backplate has changed]

Global structure
- I used a MAX7219 for the LED control, à DS3231 for the real-time clock and an Arduino board
- The model has been modelized in order that the front face is on the heatbed.
By printing with a Prusa i3 Mk3s+ (or earlier) with a textured PEI Powder-coated Steel Sheet, it is possible to get a "mat" effect.
Category: 3D Printing
Electronic (new)
Here are the different diagrams allowing you to reproduce this miniature :
LED schematic

Arduino, RTC and pins of the MAX7219 schematic

MAX7219 schematic

Last version code :
//Version finale
#include <Wire.h> //Pour la communication I2C
#include <RTClib.h> //librairie DS3231
#include "LedControl.h" //librairie Max7219RTC_DS3231 RTC; //modèle de la RTC (RTC DS3231)
LedControl lc=LedControl(12,11,10,1); // LedControl(DataIn, CLK, LOAD, Nb_de_Max7219)
int min_1 = 0;
int min_5 = 0;
int heu_1 = 0;
int heu_5 = 0;
void setup () {
Serial.begin(57600); //nombre de bauds: définir le même nombre sur le moniteur série (Ctrl - Maj - M)
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(DATE, TIME)); //Ajuster l'heure et la date de la clock avec celles de l'ordinateur
lc.shutdown(0,false); // réveiller le MAX7219, endormi par défaut
lc.setIntensity(0,4); // Définir intensité des leds
lc.clearDisplay(0); // éteindre toutes les leds
DateTime now = RTC.now();
}
void loop () {
DateTime now = RTC.now();
min_1 = (now.minute()%5);
min_5 = (now.minute()/5);
heu_1 = (now.hour()%5);
heu_5 = (now.hour()/5);
Serial.print("heu_5 : "); //test de conformité
Serial.println(heu_5);
Serial.print("heu_1 : ");
Serial.println(heu_1);
Serial.print("min_5 : ");
Serial.println(min_5);
Serial.print("min_1 : ");
Serial.println(min_1);
Serial.println();
for (int i=0; i<heu_5; i++)// les cinq heures
{
lc.setLed(0, 0, i, true);
}
for (int i=4; i<4+heu_1; i++)// les une heures
{
lc.setLed(0, 0, i, true);
}
if (min_5 > 0) { // les huit cinq premières minutes
for (int i=0; i<min_5 ; i++) {lc.setLed(0, 1, i, true);}
}
else {
lc.setRow(0,1,B00000000);
}
if (min_5 > 8){ // les trois cinq dernières minutes
for (int i=0; i<-8+min_5 ; i++) {lc.setLed(0, 2, i, true); }
}
else {
for (int i=0; i<3 ; i++) {lc.setLed(0, 2, i, false);}
}
if (min_1 > 0) { //les une minutes
for (int i=0; i<min_1 ; i++) {lc.setLed(0, 2, 3+i, true);}
}
else {
for (int i=0; i<4 ; i++) {lc.setLed(0, 2, 3+i, false);}
}
lc.setLed(0, 2, 7, true);
delay(1000);
lc.setLed(0, 2, 7, false);
delay(1000);
}