Берлинские часы - копия Mengenlehreuhr V2
Это миниатюрная копия берлонских часов Mengenlehreuhr, разработанных Дитером Биннингером.
Принцип работы:
— На 5 уровнях расположены 24 световых сигнала.
— Круглое поле вверху показывает секунды (мигает раз в секунду).
— Первый ряд светодиодов содержит 4 светодиода, и каждый квадрат соответствует 5 часам.
— 4 поля ниже представляют собой 1 час.
— Третий ряд содержит 11 полей, обозначающих каждые 5 минут. (обратите внимание, что третий, шестой и девятый светодиоды в этом ряду красные, что облегчает представление трех четвертей часа).
— 4 поля в последнем ряду обозначают 1 минуту.
— Часы читают сверху вниз.
Настройки печати
Бренд принтера:
Пруса
Принтер:
И3 МК3С
Плоты:
Не имеет значения
Поддерживает:
Нет
Разрешение:
200
Заполнение:
20
Нить:
[Prusament PLA](http://www.amazon.com/s?url=search-alias&field-keywords=Prusament+PLA&tag=thingiverse09-20)
Как я это разработал
Вторая версия оптимизирована и имеет форму, более близкую к оригинальным часам.
Вид на прототип, в 17:58.
[Задняя пластина изменилась]
Глобальная структура
Я использовал MAX7219 для управления светодиодами, DS3231 для часов реального времени и плату Arduino.
Модель была смоделирована таким образом, чтобы передняя грань находилась на нагревательном столе.
Печатая на принтере Prusa i3 Mk3s+ (или более ранней версии) с текстурированным стальным листом с порошковым покрытием PEI, можно получить «матовый» эффект.
Категория: 3D-печать
Электронный (новый)
Вот различные схемы, позволяющие воспроизвести эту миниатю��у:
Схема светодиода
Arduino, RTC и контакты схемы MAX7219
Схема MAX7219
Код последней версии:
//Финальная версия
#include //Для связи I2C
#include //библиотека DS3231
#include «LedControl.h» //библиотека Max7219
RTC_DS3231 Часы реального времени; //модель RTC (RTC DS3231)
LedControl lc=LedControl(12,11,10,1); // LedControl(DataIn, CLK, LOAD, Nb_de_Max7219)
интервал мин_1 = 0;
интервал мин_5 = 0;
интервал heu_1 = 0;
интервал heu_5 = 0;
недействительная настройка () {
Серийный.начало(57600); //номер скорости передачи данных: определить номер метки для серии мониторинга (Ctrl — Maj — M)
Провод.begin();
РТК.начало();
RTC.adjust(DateTime(__DATE__, __TIME__)); //Регулировка времени и даты часов с ячейками ординатора
lc.shutdown (0, ложь); // проявит��ль MAX7219, установленный по умолчанию
lc.setIntensity(0,4); // Определение интенсивности светодиодов
lc.clearDisplay(0); // éteindre рекламирует светодиоды
DateTime сейчас = RTC.now();
}
недействительный цикл () {
DateTime сейчас = RTC.now();
min_1 = (сейчас.минута()%5);
min_5 = (сейчас.минута()/5);
heu_1 = (now.hour()%5);
heu_5 = (сейчас.час()/5);
Serial.print(«heu_5: „); //тест на соответствие
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);
Серийный.println();
for (int i=0; i {
lc.setLed(0, 0, я, правда);
}
for (int i=4; i<4+heu_1; i++)// часы
{
lc.setLed(0, 0, я, правда);
}
if (min_5 > 0) { // минут до первой премьеры
for (int i=0; i }
еще {
lc.setRow(0,1,B00000000);
}
if (min_5 > 8){ // три последних минуты
for (int i=0; i<-8+min_5; i++) {lc.setLed(0, 2, i, true); }
}
еще {
for (int i=0; i<3; i++) {lc.setLed(0, 2, i, false);}
}
if (min_1 > 0) { // количество минут
for (int i=0; i }
еще {
for (int i=0; i<4; i++) {lc.setLed(0, 2, 3+i, false);}
}
lc.setLed(0, 2, 7, правда);
задержка(1000);
lc.setLed(0, 2, 7, ложь);
задержка(1000);
}





























