
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57




След няколко години употреба, аналоговият ми часовник, ако окончателно е мъртъв.
Междувременно търсех проект за 3D часовник за печат с моята Prusa, така че намерих 7 -сегментен часовник, който да се управлява от ws2812 светодиоди и Arduino.
Мислех, че силата на тези светодиоди е да показват голяма гама от цветове, тогава въпросът беше как да комбинираме няколко цвята на цифров часовник?
Тогава идеята да персонализирате часовника със следните функции:
- 7 различни минутни промени
- 3 предварително зададени цвята за времеви интервали
- интензитет на околната светлина автоматично затъмняване
- автоматично изключване/стартиране, когато няма нужда да се показва времето
- автоматично регулиране на лятното часово време
Консумативи
Проектът може да бъде изпълнен с помощта на 3D принтер или с гугъл за проекти със 7 сегментни часовници. Някой ги е направил и с картон.
Има и нужда от:
- Arduino nano
- фото чел
- моментален бутон
- превключвател за включване/изключване
- DC щепсел
- 5V трансформатор
- n ° 30 светодиоди WS2812 (модел 30 светодиода/метър)
- печатна платка
- Модул DS3231
- тънки кабели за свързване на светодиоди
- резистори 10K, 550
- спойка
- лепило
- джъмпери
- заглавки мъжки/женски
Стъпка 1: Печат и окабеляване…



Оригиналният проект на Thingverse е малко модифициран. (Благодарение на потребителя random1101)
Двете точки бяха увеличени, за да отговарят на LED версията, използвана за този проект. Един от трите задни капака също беше променен, за да пасне на печатна платка. Променена е и базата на часовника.
Основната работа е да запоявате светодиоди. За първи път пристъпих към запояване на светодиоди извън обложката на цифрата за 3D печат, след което я вмъкнах.
Седмият светодиод на първата цифра, започващ отляво, ще бъде свързан с първия светодиод на следващата цифра. В края на 4 -та цифра свържете двете точки с LED, те ще бъдат номерирани 28 и 29 вътре в последователността.
Светодиодната последователност може да бъде променена, като се променят някои параметри в библиотеката на Arduino, както е обяснено по -долу.
След като се свърже, по -голямата част от работата е свършена.
Стъпка 2: Сглобяване на печатни платки




Сега е време да сглобите печатна платка, където да запоявате някои резистори, хедери и т.н. Компонентите за свързване на Arduino са:
Бутон, свързан между щифт 3 на Arduino и GND с вътрешен резистор за издърпване.
Светлинен сензор, свързан като разделител на напрежение, между щифт A7 на Arduino и GND. Добавете също 10K резистор между A7 и +5V ……… ГОЛЯМА ГРЕШКА
светлинен сензор между +5V и A7 пин и 10K резистор между A/ pin и GND
DS3231 модул, свързан чрез i2c и SQW щифт към Arduino прекъсващ пин 2
Светодиоди, свързани към резистор 5 до 550Ohm.
Стъпка 3: Скицата
Има много персонализиране, които могат да бъдат направени вътре в скицата.
Запазването на библиотеката за лятно часово време се обработва от параметри TimeChangeRule, вижте библиотеката JChristensen в Github за повече информация.
Автоматичното изключване в цикъла се управлява от променлива int gotosleep. В моя случай в 0:00 Arduino преминава в режим на заспиване, след което часовникът се изключва.
Задавайки ALARM на модул DS3231 чрез променлив int gotosleep, позволете на Arduino да се събуди от спящ режим. В моя случай в 7:00 сутринта.
Друга функция е да променяте цвета на часовника през деня във вътрешната функция:
void printDateTime (time_t t, const char *tz)
В моите настройки от h 0:00 до 12:00 времето е показано в червено, от 12:00 до 17:00 в зелено и от 17:00 до 0:00 предимно в синьо. Това е най -доброто балансиране на цветовете досега за добър контраст с бялата стена отзад.
Функцията за преходи позволява да има анимиран цветен преход при минутна промяна. Има 6 различни, които могат да бъдат избрани чрез натискане на бутона за момент, седмата опция е без преходи. Този, който харесвам, се нарича newrandom (), който е предварително зададен (int mode = 1;).
Направих някои промени в библиотеката за съвместимост с LED последователността. Вътре в файла segment_display.cpp, в края, превключвател (i) можете да промените вашата LED последователност. След като приключите, заменете файла вътре
/Arduino/библиотеки/7segment_NeoPixel-master
Необходими библиотеки:
- avr.спивам
- segment_display
- DS3231
- TimeLib
- Тел
- Adafruit NeoPixel
- Часова зона
Стъпка 4: Време е да се сбогуваме
Харесва ми този часовник, текущото време се вижда ясно отдалеч и се изключва, когато нямам нужда.
Как може да поиска повече от часовник?
Препоръчано:
Часовник за пенсиониране / Брой нагоре / Dn часовник: 4 стъпки (със снимки)

Пенсионен часовник / Брой нагоре / Dn часовник: Имах няколко от тези 8x8 LED матрични дисплеи в чекмеджето и мислех какво да правя с тях. Вдъхновен от други инструктажи, имам идеята да създам дисплей за обратно броене/нагоре за обратно броене до бъдеща дата/час и ако целевото време p
ESP8266 Мрежов часовник без RTC - Nodemcu NTP Часовник Няма RTC - ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: 4 стъпки

ESP8266 Мрежов часовник без RTC | Nodemcu NTP Часовник Няма RTC | ИНТЕРНЕТЕН ЧАСОВНИК ПРОЕКТ: В проекта ще се прави часовник проект без RTC, ще отнеме време от интернет с помощта на wifi и ще го покаже на дисплея st7735
C51 4 -битов електронен часовник - дървен часовник: 15 стъпки (със снимки)

C51 4 -битов електронен часовник - Дървен часовник: Имах малко свободно време този уикенд, затова продължих и сглобих този 4 -битов DIY електронен цифров часовник за 2,40 австралийски долара, който купих от AliExpress преди малко
Интерфейс на клавиатурата с 8051 и показване на номера на клавиатурата в 7 сегмента: 4 стъпки (със снимки)

Интерфейс на клавиатурата с 8051 и показване на номера на клавиатурата в 7 сегмент: В този урок ще ви разкажа как можем да свържем клавиатурата с 8051 и да покажем номера на клавиатурата в 7 сегментен дисплей
Увеличаване на стойността на 7 сегмента с помощта на Push Butoon с 8051: 4 стъпки (със снимки)

Увеличаване на стойността на 7 сегмента с помощта на Push Butoon с 8051: В този проект ще увеличим стойността на седем сегмента на дисплея с помощта на бутон с 8051 микроконтролер