Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Независимо от того, путешествуете ли вы по миру или просто хотите узнать, сколько времени до того, как позвонить поздно ночью, мировые часы с 5 зонами отвечают всем требованиям. Поскольку в последней партии я получил несколько дополнительных 7-значных дисплеев TM1637, я решил собрать часы на все случаи жизни. Я решил использовать для проекта Arduino Uno, который обеспечивал достаточно GPIO для 5 часов, 5 индикаторов AM (светодиодов) и верхнего света, активируемого сенсорным датчиком. Единственный вывод, который я не использовал, был D1, он предназначен для последовательного Tx, что могло привести только к неприятностям. Так что, если вам интересно, читайте дальше!
Шаг 1: Детали
Для изготовления часов я использовал: - Arduino Uno (но подойдет и Nano или Mega).
- (5) дисплеи TM1637
- (5) светодиодов (для использования в качестве индикаторов AM / PM)
- (5) резисторы 220 Ом
- Часы RTC3231
- Стик AdaFruit NeoPixel или другое освещение
- Сенсорный датчик для активации света
- Понижающий преобразователь для увеличения потребляемой мощности
- Рамка или футляр (я напечатал футляр на 3D-принтере, но будьте изобретательны)
- Питание 12 В с розеткой для ствола (для разделения кормов)
- необязательно - Arduino Uno Shield (чтобы было немного проще)
Шаг 2: начало работы
Я все еще новичок в TM1637, поэтому сначала я запрограммировал его, чтобы посмотреть, на что я способен. Сначала это ничего не дало, но сообщество Arduino потрясающее, и вскоре я начал работать. На моем TM1637 мне пришлось разрезать 2 заглушки на задней панели, чтобы он заработал, а затем просто проб и ошибок. В конце концов, я все еще не смог получить двоеточие для часов - оно «заменяет» цифру часа в позиции 1, но пока меня это устраивает.
Затем сначала подключите макетную плату ко всему, чтобы убедиться, что все ваши подключения и программирование совпадают - да, я все еще шаг за шагом. Затем определитесь с желаемыми местоположениями и настройте целевые местоположения, найдя разницу во времени с GMT. Теперь перейдем к пайке и позиционированию.
Шаг 3: Подключение
Используя цилиндрический разъем питания для входа 12 В, разделите питание и землю на 1) понижающий преобразователь и 2) Vin на Arduino.
Используйте понижающий преобразователь, чтобы сделать 5-вольтовые линии питания и заземления на щите для запуска соединений, это стабилизирует любые проблемы с питанием.
Каждый TM1637 имеет 4 соединения (5v, Grd, Data и Clock), причем DIO и CLK подключены к отдельным контактам GPIO (я использовал 2-11), а питание - к моим рядам.
Для индикаторов Meridian (5 светодиодов) припаяйте (5) 220 Ом к земле, а анодные соединения к A0-A3 и D12.
Для RTC нужны 5v и Grd вместе с SDA и SCL (A4 и A5).
Светильник необходимо заземлить дважды, один раз в ряд и один раз в Uno. Запустите 5v в строку и данные на GPIO (D13). Датчик касания работает до 5v и Grd и до GPIO D0.
Шаг 4: программирование
Программирование довольно простое. Я использовал библиотеку TM1637display.h для дисплеев, присвоив каждому дисплею уникальное имя - как и ожидалось, с названием города. Просто замените контакты DIO и CLK для каждого.
Закодируйте свое первое местоположение с разницей во времени и установите периметры AM / PM для включения / выключения светодиода в зависимости от часа. Используйте его для дублирования для каждого местоположения.
Я присвоил час позиции 0, 2 цифры, без нуля в начале. Для минут я использовал «минуту» и разделил на 10 для цифры 1 (позиция 2, 1 цифра) и по модулю (%) для цифры 2 (позиция 3, 1 цифра).
Освещение NeoPixel с помощью датчика было таким же, как и для любой другой комбинации кнопки / светодиода с использованием библиотеки Adafruit_NeoPixel.
Легкий.
Шаг 5: Сборка
Создайте подходящий корпус, в который поместятся дисплеи и немного места для платы, входа питания и понижающего преобразователя. Вставляем, присоединяем провода, включаем и готово. Хорошо, это может быть что-то большее, но это основы, независимо от дизайна.
Наслаждайтесь и удачи!