Оглавление:
- Шаг 1: чехол для часов
- Шаг 2: неопиксели
- Шаг 3: настройка текста на лицевой стороне
- Шаг 4: Полный эффект радуги
- Шаг 5: различные компоненты
- Шаг 6. Код для часов
- Шаг 7: Описание оборудования
- Шаг 8: LDR для управления яркостью неопикселей
- Шаг 9: Снижение энергопотребления WS2812B
- Шаг 10: смайлик на часах со словом
- Шаг 11: Какие библиотеки используются
- Шаг 12: простой ИК-пульт дистанционного управления
- Шаг 13: Что дальше?
Видео: Радужные часы со словами с полным эффектом радуги и многое другое: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Цели
1) Простой
2) Не дорого
3) Максимально энергоэффективный
Радужные Word Clock с полным эффектом радуги.
Смайлик на часах со словом.
Простой ИК-пульт дистанционного управления
Обновление 03-ноя-18 LDR для управления яркостью неопикселей
Обновление 01-янв-19 Снижение энергопотребления WS2812B.
Обновление 15-янв-19 Смайлик.
Обновление 23-янв-19 Код 1.6
Обновление 10-мар-19 Ссылки на библиотеки
Обновление 14-апр-19 версия 1.7 Выбор смайлика вкл / выкл цвет радуга / исправление enz.
Последнее обновление 01-июн-19 версия 2.0 ИК-пульт дистанционного управления и редизайн кода
Шаг 1: чехол для часов
С некоторыми простыми инструментами и небольшим умением сделать часы с письмом несложно. Я использовал доступные мне материалы.
В качестве корпуса я использовал грубый сосновый брус, в котором выпил несколько рамок. Так получились четыре стороны корпуса, которые были склеены и усилены деревянными углами. Затем древесина нуждается в шлифовании и покраске.
Буквы вырезаны из фольги на принтере в зеркальном написании. Фольга находится с обратной стороны стеклянной пластины и покрыта двухслойной узорчатой бумагой для лучшего распределения света. Стекло фиксируется силиконовым герметиком.
Шаг 2: неопиксели
Светодиоды Neopixels располагаются на деревянной пластине, в которой сначала просверливаются отверстия диаметром 3 мм. Спереди они увеличены до размера букв до 3/4 глубины. После этого 3 мм сзади увеличиваются до 10 мм, это размер неопикселя. Для некоторых символов, в том числе буквы W, отверстие следует немного отрегулировать.
Я использовал фанеру, которая быстро трескалась, лучше МДФ.
С отдельными светодиодами вы не ограничены фиксированным расстоянием, как в случае светодиодных лент. Светодиоды должны быть соединены друг с другом. Сделать это можно с помощью любых коротких отрезков проволоки. Но два минимальных (-) соединения аналогичны двум внутренним соединениям с плюсом (+), так что это одно и то же соединение.
Вы можете сэкономить много работы, припаяв кусок провода к левому светодиоду, а затем к правому светодиоду. Затем припаиваем промежуточные.
Соединение для передачи данных, конечно же, должно быть короткими, потому что данные идут на вход данных.
Шаг 3: настройка текста на лицевой стороне
Передняя панель теперь на голландском языке, но ее просто можно преобразовать на любой язык.
Светодиоды NeoPixels переключаются здесь последовательно от 0 до 167. Нумерация идет от первой строки вверху слева направо, а затем ко второй строке справа налево и т. Д. Регулировка может быть выполнена в соответствии с вашими потребностями. Количество NeoPixels определяется количеством символов. Меньше или больше неопикселей можно настроить в следующей строке
#define NUMPIXELS 168 // Сколько NeoPixels подключено к Arduino?
168 больше, чем другое число. Нумерация начинается с 0. Текст можно составлять любой. Если вы измените текст, вам также придется корректировать соответствующие слова. Нумерация осталась прежней.
Например, DRIE минут определяется в коде
void zetmDrie () {
Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // мин-дри
}
Если вы хотите создать слово Arduino, оно будет выглядеть так:
void zetArduino () {
Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;
Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Слово-ардуино
}
Так что вы можете складывать слова между ними.
Для слов часов полезно, если они образуют непрерывное слово, но это не обязательно. Неонпиксели для неиспользованных букв не нужны. У меня все они заполнены для использования будущих возможностей, кроме отображения времени.
Если вы измените начальную точку или последовательность следования, нумерация должна измениться соответствующим образом.
Шаг 4: Полный эффект радуги
Часы теперь запрограммированы таким образом, что подсчитывается количество включенных неопикселей, сколько раз в секунду.
Общий спектр примерно равен количеству разделенных, а затем немного сдвинутых. В результате у каждого Neopixel свой цвет, который постоянно меняется. Neopixel № 1 и № 167 следуют друг за другом в некоторых цветовых решениях.
Если вы предпочитаете одновременно меньше разных цветов, это легко изменить. Цвет по-прежнему смещается по всему спектру, но в меньшей его части. Neopixel № 1 и № 167 больше не следуют друг за другом, в котором участвует какой-то цвет.
Яркость можно установить в следующей строке, pixel.setBrightness (150);
Меньшее число означает меньшую яркость, большее число - большую яркость.
Шаг 5: различные компоненты
Следующие компоненты, которые я использовал
Arduino Pro Mini ATMEGA328 5 В / 16 МГц
Модуль часов DS3231
168 штук Neopixels LED WS2812 LED Chip & Heatsink 5V 5050 RGB WS2811 IC Встроенный
Трафарет для письма из фольги
Приемник DCF77
Шаг 6. Код для часов
Вот код. Добавлена регулировка яркости и отключение питания, когда никого нет и ночью.
Добавлен радиолокационный микроволновый датчик движения RCWL-0516 (поиск RADAR).
Через 10 минут бездействия NeoPixels гаснет.
О версии 2.0
Использование памяти было слишком большим, с предупреждениями о нехватке памяти в компиляторе. Поэтому я полностью изменил код, но операция осталась прежней, и был добавлен ИК-приемник.
Существует фрагмент кода для предоставления данных в EEPROM. Запустите его один раз, временно удалив / * и * /. Найдите => запустите это один раз, чтобы предоставить данные в EEPROM.
В начале цикла void находится код для чтения кода с вашего собственного пульта дистанционного управления. Вы можете запустить его, временно удалив / * и * /, не забудьте потом вернуть их обратно. Вы также можете определить свои собственные кнопки. Считанный код необходимо ввести в => Определите здесь свои собственные кнопки
Пульт Самсунг работает лучше, чем простой (очень дешевый).
Шаг 7: Описание оборудования
Существуют разные версии Arduino Pro Mini. Обратите внимание, подключения могут отличаться.
Добавлен микроволновый датчик движения RCWL-0516.
Пока в районе часов есть движение, NeoPixel остается включенным.
и как только движение прекратится, NeoPixel выключится через несколько минут.
В версии 2.0 приемник DCF77 получает питание через контакт 13. Этот контакт определяется как выход и устанавливается на высокий уровень при обращении к подпрограмме DCF77. Приемник DCF77 потребляет 0,28 мА и требуется всего несколько минут в день.
Отключение сохранений
5 Вольт * 0,28 мА / 1000 * 24 часа * 365 дней * Блок питания с эффективностью 1 / 0,85 = 14,4 Вт в год.
Кажется, это немного, но помогает каждый бит.
Шаг 8: LDR для управления яркостью неопикселей
Добавлен LDR для управления яркостью неопикселей.
Я приклеил LDR в пространство neopixel 103. Он не используется для отображения времени и поэтому не влияет на регулировку. Бумага поглощает падающий свет, но это не проблема.
Делитель напряжения LDR и резистор 20 кОм идет на A0 Arduino Pro Mini. Напряжение является индикатором интенсивности света и, следовательно, также показателем количества света, которое должны давать неопиксели.
Формула, которую я использую, дает мне хороший контроль света, его можно регулировать в зависимости от обстоятельств. В зависимости от количества света, напряжение может варьироваться от 0 до 5 вольт, которое преобразуется в от 0 до 1024 отсчетов, которые находятся в «LDRValue».
Если новое измеренное значение больше последнего рассчитанного значения, интенсивность увеличивается на 1, если меньше, чем уменьшается на 1 и если оно равно, ничего не делается. Чтобы значение продвигалось медленно, чтобы не было эффекта мигания, увеличивается или уменьшается только 1, а поскольку вычисление выполняется в цикле, оно пересчитывается только после прохождения цикла 25 раз.
Теоретически интенсивность составляет минимум 20 и максимум 1024/7 + 45 = 191. Максимальное значение, которое я измерил, было 902, что составляет интенсивность 173. Это хорошо согласуется с 150, которые я установил по умолчанию.. (см. pixel.setBrightness (150))
В версии 2.0 вы можете настроить управление с помощью пульта дистанционного управления. Были добавлены следующие параметры: Brightness_min как минимум, Brightness_max как максимальное значение и Brightness_Offset как параметр настройки. Brightness_min и _max - это значения, которые могут зависеть от вашей ситуации. Brightness_Offset - это значение, которое можно установить с помощью пульта дистанционного управления и с помощью которого можно установить большую или меньшую яркость.
Также существует зона нечувствительности 3 между измеренным значением LDRValue и вычисленным значением BerLDRValue.
Используйте операторы печати в void BrightnessControl, чтобы проверить настройку яркости.
Шаг 9: Снижение энергопотребления WS2812B
Драйверы на адресуемых неопикселях WS2812B потребляют ток, даже когда неопиксели выключены и имеют цвет 0 (не горят элементы неопикселей).
Когда все 169 неопикселей отключены, я измеряю 69 мА до неопикселей. Предполагая, что часы выключены 12 часов в день, полное отключение затем сохраняет: 5 (напряжение питания) * 69/1000 (миллиампер / 1000 = ампер) * 12 (количество часов в день) * 365 (количество дней в год) = 1511 Ватт-часов. Таким образом, ежегодно 1,5 кВт / ч. Согласен, само по себе это немного, но из множества маленьких получается большое.
Схема проста. Плюс блока питания переключается через P-канальный MosFet. Датчик радара определяет, включены или выключены неопиксели. Я установил два транзистора MosFet, чтобы снизить сопротивление включения, насколько это возможно, из-за потери MosFet. При нормальном использовании я измеряю 4, 5 мил вольт на MosFet. Затвор управляется выходом 4 Arduino через резистор 470 кОм. Если цифровой выходной сигнал становится низким (0), неопиксели включены, а при высоком уровне (1) они выключены.
Шаг 10: смайлик на часах со словом
Смайлик на часах со словом.
Иногда на часах появляется смайлик, но это радует.
Смайлик запускается датчиком радара. Количество перемещений (регулируемое) является мерой его появления. Знаки% указывают на то, что движение было обнаружено. С каждым десятым (регулируемым) движением смайлик появляется с подмигивающим лицом, а после трех раз подмигивает, в четвертый раз смайлик показывает язык.
Смайлик - это небольшое изменение кода.
Шаг 11: Какие библиотеки используются
Какие библиотеки используются.
Я использую их в Windows 7 с Arduino IDE 1.6, и они также были протестированы в Windows 10 с Adruino IDE 1.8.8.
RTClib-master
Arduino-DS3231-мастер
Adafruit_NeoPixel-master
Arduino-DCF77-master
Библиотека IRremote Кена Ширрифа
Поскольку всегда возникает путаница в отношении используемой библиотеки, я добавляю ту, которую использую.
Библиотека IRremote использует много памяти. В IRremote.h указано, что вы можете отключить любой неиспользуемый протокол
// Каждый протокол, который вы включаете, требует затрат памяти, а во время декодирования - времени // Отключите (установите значение 0) все протоколы, которые вам не нужны / не нужны!
У меня все отключено кроме протокола NEC и самсунг. Это дает экономию памяти 10%. На данный момент проблемы с объемом памяти больше нет, поэтому отключать ее пока нет необходимости.
Шаг 12: простой ИК-пульт дистанционного управления
Ассамблея
Как видно на фотографиях, отверстие для светодиода 132 получилось слишком большим. Я хорошо этим воспользовался и добавил к нему ИК-приемник. Подключите контакт данных ИК-приемника VS1838 к контакту 7 Arduino. Кроме того, подключите плюсовой и минусовой источник питания. ИК-приемник использует 0,21 мА и также может быть подключен к плюсовому источнику питания после переключателя на полевом транзисторе. Это приводит к экономии, если часы работают 50% времени, в размере 5 Вольт * 0,21 мА / 1000 * 12 часов * 365 дней * Эффективность источника питания 1 / 0,85 = 5,4 Вт в год. Кажется, это немного, но помогает каждый бит.
Операция следующая
Нажмите любую кнопку на ИК-пульте дистанционного управления, а затем кнопку OK. В первый раз, когда вы нажмете, вы попадете в IR-обработку, а во второй раз вы определите, был ли это обоснованный запрос. Второй раз OK должен быстро следовать за первым нажатием клавиши, иначе он снова вернется. Я сделал эту конструкцию так, чтобы я с трудом смог правильно декодировать первый код и, следовательно, не попал в обработку IR.
После обработки IR несколько светодиодов загораются для информации, для получения объяснения прочтите далее и просмотрите первое изображение.
Описание предназначено для простого пульта дистанционного управления, но вы можете использовать любой пульт дистанционного управления и определять свои собственные ключи. Я также использовал пульт дистанционного управления Samsung.
Первые четыре клавиши соответствуют четырем верхним рядам светодиодов. Четыре светодиода поворачиваются влево или вправо в зависимости от настройки. При нажатии клавиш с 1 по 4 состояние меняется на обратное и сохраняется в памяти.
1 фиксированный цвет или эффект радуги
2-секундная вспышка выключена или вторая вспышка включена
3 смайлик выключен смайлик включен
4 DCF77 выключен или DCF77 включен
Номер ключа отображается на следующих клавишах
5 смайлов
6 ширина спектра радуги
7 исправить настройку красного
8 исправить настройку зеленого
9 исправить настройку синего
Строки 6, 7 и 8 светодиодов теперь соответствуют установленному значению, строка 6 указывает единицы, строка 7 - десятки и строка 8 - сотня. Каждая строка начинается с нулевого значения. Итак, первый светодиод в строке - 0, второй - 1 и т. Д.
0 установка времени
/ / настройка яркости
При нажатии кнопки 0 загораются «десять» светодиодов, показывая, что вы хотите установить время, а когда вы нажимаете 0 второй раз, установленное время появляется на дисплее.
Теперь можно установить время, оно отображается на дисплее.
Установите правильное время, а затем, если минуты на контрольных часах совпадают, нажмите кнопку OK.
Время настроено.
Если вы не нажмете кнопку минут или часов, время не изменится. Если вы все же нажмете их, время будет установлено немедленно.
Значение клавиш с 5 по 9 можно изменить с помощью клавиш
справа плюс 1
осталось минус 1
вперед плюс 10
реверс минус 10.
и для установки времени
справа плюс 1 минута
осталось минус 1 минута
вперед плюс 1 час
реверс минус 1 час
Иногда бывает, что нажатие клавиши не распознается или выполняется дважды. Так что обратите внимание, если настройка удалась, в противном случае попробуйте или исправьте еще раз. Пульт дистанционного управления Samsung, который я также тестировал, работал во много раз лучше, чем простой (очень дешевый) пульт.
При установке цвета вы видите изменение непосредственно на всем дисплее. Для сайта с обзором цветов см. Http://www.helderester.nl/kleurentabel.html. Конечно, вы можете установить любое значение.
Если ширина спектра радуги имеет значение 0, спектр очень узкий, и дисплей имеет один цвет, который постоянно меняется.
Недостатком такой установки времени является то, что вы не можете рассчитать переход лето / зима, потому что у нас неверная дата. Для самих часов это не имеет значения, потому что сейчас мы ими не пользуемся.
Шаг 13: Что дальше?
Что дальше, звук, если свободной памяти еще достаточно.
Ящики для динамиков у меня уже есть. Они от старого ноута.
Рекомендуемые:
Прототип Smart Motorcycle HUD (пошаговая навигация и многое другое): 9 шагов
Прототип Smart Motorcycle HUD (пошаговая навигация и многое другое): Привет! Эта инструкция - это история о том, как я спроектировал и построил платформу HUD (Heads-Up Display), предназначенную для установки на мотоциклетных шлемах. Это было написано в рамках конкурса «Карты». К сожалению, я не смог полностью закончить
Основы VBScript - запуск ваших сценариев, задержки и многое другое!: 5 шагов
Основы VBScript - запуск сценариев, задержки и многое другое !: Добро пожаловать в мой первый учебник о том, как создавать сценарии VBS с помощью блокнота. С помощью файлов .vbs вы можете создавать забавные шалости или смертельные вирусы. В этом руководстве я покажу вам основные команды, такие как запуск сценария, открытие файлов и многое другое. В t
Я сделал старый привод компакт-дисков в робота Wi-Fi, используя Nodemcu, моторный привод L298N и многое другое: 5 шагов
Я сделал старый CD-привод в Wifi-роботе, используя Nodemcu, L298N Motor Drive и многое другое: VX Robotics & Электроника присутствует
Часы со словами с эффектом радуги и фоновой подсветкой: 6 шагов
Часы со словами с эффектом радуги и фоновой подсветкой: начало есть. Передняя пластина 40 на 40 см готова
Блокировка NFC - когда на печатной плате также есть кнопки, антенна и многое другое : 7 шагов (с изображениями)
Блокировка NFC - когда на печатной плате также есть кнопки, антенна и многое другое …: вы можете взять одну из двух вещей из этого руководства. Вы можете следовать инструкциям и создать свою собственную комбинацию цифровой клавиатуры и устройства чтения NFC. Схема здесь. Схема печатной платы здесь. Вы найдете спецификацию материалов, чтобы заказать