Оглавление:
- Шаг 1: Сборка деталей
- Шаг 2: Схема
- Шаг 3: Калибровка
- Шаг 4: Монтаж и отделка
- Шаг 5: Эскиз Arduino - Калибровка
- Шаг 6: Эскиз Arduino - Часы
Видео: Часы Nixie Bargraph: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Редактировать 11.09.17 С помощью Kickstarter я выпустил комплект для этого набора часов! Он включает в себя плату драйвера и 2 лампы Nixie IN-9. Все, что вам нужно добавить, - это ваш собственный Arduino / Raspberry Pi / другое. Комплект можно найти, перейдя по этой ссылке!
Так что я видел много часов Nixie в Интернете и подумал, что они выглядят великолепно, однако я не хотел тратить более 100 долларов на часы, в которые даже не входят лампы! и схемы. Я хотел сделать что-то отличное от большого диапазона довольно похожих на вид часов никси. В конце концов, я решил использовать гистограммы Nixie IN-9. Это длинные тонкие трубки, и высота светящейся плазмы зависит от тока через трубки. Трубка слева показывает шаг в часах, а трубка справа - в минутах. У них всего два вывода, что упрощает построение схемы. В этой конструкции есть часовая и минутная трубки, причем высота плазмы в каждой трубке представляет текущее время. Время ведется с помощью микроконтроллера Adafruit Trinket и часов реального времени (RTC).
Шаг 1: Сборка деталей
Есть два раздела, во-первых, электроника, а во-вторых, монтаж и отделка. Необходимые электронные компоненты: Adafruit Trinket 5V - 7,95 долларов США (www.adafruit.com/products/1501) Adafruit RTC - 9 долларов США (www.adafruit.com/products/264) 2 штангенциркуля Nixie IN-9 ~ 3 доллара США за трубку на eBay 1x Блок питания Nixie 140 В ~ 12 долларов на eBay 4 электролитных конденсатора по 47 мкФ 4 резистора по 3,9 кОм 2 потенциометра по 1 кОм 2 транзистора MJE340 NPN высокого напряжения ~ 1 доллар США 1x Регулятор LM7805 5 В ~ 1 доллар США 1x розетка 2,1 мм ~ 1 доллар 1x Проектная коробка с печатной платой ~ 5 долларов 1x Источник питания 12 В постоянного тока (я нашел старый от какого-то давно забытого устройства) Припой, соединительный провод и т. Д. Монтаж: Я решил установить электронику в небольшую черную пластиковую коробку для проекта, а затем установить трубки на старинный часовой механизм. Чтобы отметить час и минуты, я использовал медную проволоку, обмотанную вокруг трубок. Крепежные детали: античный часовой механизм - медный провод eBay 10 долларов - пистолет горячего клея eBay 3 доллара
Шаг 2: Схема
Первый шаг - собрать блок питания Nixie. Это был замечательный маленький комплект от eBay, включающий небольшую печатную плату, и компоненты просто нужно было припаять к плате. Этот конкретный источник питания варьируется в пределах 110-180 В, управляемый с помощью небольшого горшка на плате. Используя небольшую отвертку, отрегулируйте выход до ~ 140 В. Перед тем, как пройти весь путь, я хотел протестировать свои никси-лампы, для этого я построил простую тестовую схему, используя одну лампу, транзистор и потенциометр 10 кОм, который у меня был. Как видно на первом рисунке, источник питания 140 В подключен к аноду трубки (правая ножка). Катод (левая ножка) затем подключается к коллекторной ножке транзистора MJE340. Источник питания 5 В подключается к потенциометру 10 кОм, который соединяется с землей в базе транзистора. Наконец, эмиттер транзистора подключается через токоограничивающий резистор 300 Ом к земле. Если вы не знакомы с транзисторами и электроникой, это не имеет значения, просто подключите его и измените высоту плазмы с помощью ручки потенциометра! Как только это сработает, мы можем заняться изготовлением наших часов. Полную тактовую схему можно увидеть на второй принципиальной схеме. После некоторого исследования я нашел идеальный учебник на веб-сайте Adafruit Learn, делающий почти то, что я хотел делать. Учебное пособие можно найти здесь: https://learn.adafruit.com/trinket-powered-analog-m… В этом руководстве для управления двумя аналоговыми амперметрами используется контроллер Trinket и RTC. Использование широтно-импульсной модуляции (ШИМ) для управления отклонением иглы. Катушка амперметра усредняет ШИМ в эффективный сигнал постоянного тока. Однако, если мы используем ШИМ непосредственно для управления лампами, то высокочастотная модуляция означает, что плазменная планка не будет оставаться «зажатой» на основании трубки, и у вас будет парящая планка. Чтобы избежать этого, я усреднил ШИМ, используя фильтр нижних частот с большой постоянной времени, чтобы получить сигнал почти постоянного тока. Это имеет частоту среза 0,8 Гц, это нормально, так как мы обновляем время только каждые 5 секунд. Кроме того, поскольку барграфы имеют ограниченный срок службы и могут нуждаться в замене, а не каждая трубка точно такая же, я поставил горшок 1k после трубки. Это позволяет настроить высоту плазмы для двух трубок. Чтобы подключить брелок к часам реального времени (RCT), подключите контакт Trinket 0 к RTC-SDA, контакт Trinket 2 к RTC-SCL и Trinket-5v к RTC-5v, а заземление Trinket GND к земле RTC. В этой части может быть полезно просмотреть инструкцию по часам Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. После того, как Trinket и RTC правильно подключены, подключите газовые лампы, транзисторы, фильтры и т. Д. На макетной плате, внимательно следуя принципиальной схеме.
Чтобы заставить RTC и Trinket разговаривать, вам сначала нужно загрузить правильные библиотеки с Adafruit Github. Вам нужны TinyWireM.h и TInyRTClib.h. Сначала мы хотим откалибровать трубки, загрузите эскиз калибровки в конце этой инструкции. Если ни один из эскизов в конце не работает, попробуйте эскиз часов Adafruit. Я настроил эскиз часов Adafruit, чтобы он работал наиболее эффективно с никсидными трубками, но эскиз Adafruit будет работать нормально.
Шаг 3: Калибровка
После того, как вы загрузили калибровочный эскиз, необходимо отметить градуировку.
Есть три режима калибровки, первый устанавливает максимальную мощность для обеих газовых трубок. Используйте это, чтобы отрегулировать горшок так, чтобы высота плазмы в обеих пробирках была одинаковой и была немного ниже максимальной высоты. Это гарантирует, что отклик будет линейным во всем тактовом диапазоне.
Вторая настройка калибрует минутную трубку. Он меняется между 0, 15, 30, 45 и 60 минутами каждые 5 секунд.
Последняя настройка повторяется для каждого часа. В отличие от часов Adafruit, индикатор часа перемещается с фиксированным шагом один раз в час. При использовании аналогового измерителя было сложно получить линейный отклик для каждого часа.
После того, как вы настроили горшок, загрузите эскиз для калибровки в течение нескольких минут. Возьмите тонкую медную проволоку и отрежьте ее немного. Оберните его вокруг трубки и скрутите два конца вместе. Сдвиньте его в правильное положение и с помощью пистолета для горячего клея поместите небольшую каплю клея, чтобы она оставалась в нужном месте. Повторите это для каждой минуты и часа.
Я забыл сфотографировать этот процесс, но на фотографиях видно, как крепится провод. Хотя я использовал гораздо меньше клея, чтобы прикрепить проволоку.
Шаг 4: Монтаж и отделка
После того, как все лампы откалиброваны и заработают, настало время навсегда сделать схему и установить ее на какую-нибудь основу. Я выбрал старинный часовой механизм, так как мне понравилось сочетание антиквариата, 60-х и современных технологий. При переходе с макета на стрип-плату будьте очень осторожны и не торопитесь, проверяя все соединения. Коробка, которую я купил, была немного маленькой, но, аккуратно разместив и приложив немного усилий, мне удалось подогнать все по размеру. Я просверлил сбоку отверстие для блока питания и еще одно - для проводов. Чтобы избежать коротких замыканий, я накрыл никси-провода термоусадочной пленкой. Когда электроника будет установлена в коробке, приклейте ее к задней части часового механизма. Для крепления трубок я использовал горячий клей и приклеил концы скрученной проволоки к металлу, следя за тем, чтобы они были прямыми. Я, наверное, использовал слишком много клея, но это не очень заметно. Это может быть что-то, что можно улучшить в будущем. Когда все будет установлено, загрузите эскиз часов Nixie в конце этой инструкции и полюбуйтесь своими прекрасными новыми часами!
Шаг 5: Эскиз Arduino - Калибровка
#define HOUR_PIN 1 // Отображение часов через ШИМ на Trinket GPIO # 1
#define MINUTE_PIN 4 // Отображение минут через ШИМ на Trinket GPIO # 4 (через вызовы Таймера 1)
int часов = 57; int минут = 57; // устанавливаем минимальную ШИМ
пустая настройка () {pinMode (HOUR_PIN, OUTPUT); pinMode (МИНУТ_ПИН, ВЫХОД); PWM4_init (); // настраиваем выходы ШИМ
}
void loop () {// Используйте это, чтобы настроить потенциометры, чтобы убедиться, что максимальная высота трубки соответствует analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Используйте это для калибровки минутных приращений
/*
analogWrite4 (57); // задержка 0 минут (5000); analogWrite4 (107); // задержка 15 минут (5000); analogWrite4 (156); // задержка 30 минут (5000); analogWrite4 (206); // задержка 45 минут (5000); analogWrite4 (255); // задержка 60 минут (5000);
*/
// Используйте это для калибровки приращения часов / *
analogWrite (HOUR_PIN, 57); // 57 - минимальный выход и соответствует задержке 1 час / мин (4000); // задержка 4 секунды analogWrite (HOUR_PIN, 75); // 75 - это выход, который соответствует задержке 2 часа ночи / вечера (4000); analogWrite (HOUR_PIN, 93); // 93 - это выход, который соответствует задержке 3 часа ночи / вечера (4000); analogWrite (HOUR_PIN, 111); // 111 - это выход, который соответствует задержке 4 утра / вечера (4000); analogWrite (HOUR_PIN, 129); // 129 - это выход, который соответствует задержке 5 утра / вечера (4000); analogWrite (HOUR_PIN, 147); // 147 - это выход, который соответствует задержке 6 утра / вечера (4000); analogWrite (HOUR_PIN, 165); // 165 - это выход, который соответствует задержке 7 утра / вечера (4000); analogWrite (HOUR_PIN, 183); // 183 - это выход, который соответствует задержке 8 утра / вечера (4000); analogWrite (HOUR_PIN, 201); // 201 - это выход, который соответствует задержке 9 утра / вечера (4000); analogWrite (HOUR_PIN, 219); // 219 - это выход, который соответствует задержке 10 утра / вечера (4000); analogWrite (HOUR_PIN, 237); // 237 - это выход, который соответствует задержке 11 утра / вечера (4000); analogWrite (HOUR_PIN, 255); // 255 - это результат, который соответствует 12 часам утра.
*/
}
void PWM4_init () {// Настраиваем ШИМ на Trinket GPIO # 4 (PB4, контакт 3), используя Таймер 1 TCCR1 = _BV (CS10); // без предделителя GTCCR = _BV (COM1B1) | _BV (PWM1B); // очищаем OC1B при сравнении OCR1B = 127; // инициализация рабочего цикла до 50% OCR1C = 255; // частота }
// Функция, разрешающая аналоговую запись на Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // долг может быть от 0 до 255 (от 0 до 100%)}
Шаг 6: Эскиз Arduino - Часы
// Аналоговые счетчики Adafruit Trinket
// Функции даты и времени с использованием DS1307 RTC, подключенного через I2C и TinyWireM lib
// Загрузите эти библиотеки из репозитория Adafruit Github и // установите в каталог библиотек Arduino #include #include
// Для отладки раскомментируйте серийный код, используйте FTDI Friend с его выводом RX, подключенным к выводу 3 // Вам понадобится терминальная программа (например, бесплатная PuTTY для Windows), настроенная на // порт USB друга FTDI по адресу 9600 бод. Раскомментируйте последовательные команды, чтобы узнать, что происходит // # define HOUR_PIN 1 // Отображение часов с помощью PWM на Trinket GPIO # 1 #define MINUTE_PIN 4 // Отображение минут с помощью PWM на Trinket GPIO # 4 (через вызовы таймера 1) // SendOnlySoftwareSerial Serial (3); // Последовательная передача на вывод 3 брелка RTC_DS1307 rtc; // Настраиваем часы реального времени
пустая настройка () {pinMode (HOUR_PIN, OUTPUT); // определяем выводы измерителя ШИМ как выходы pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Устанавливаем таймер 1 для работы ШИМ на выводе 4 брелка TinyWireM.begin (); // Начинаем I2C rtc.begin (); // Запускаем часы реального времени DS1307 //Serial.begin(9600); // Запуск последовательного монитора со скоростью 9600 бод if (! Rtc.isrunning ()) {//Serial.println("RTC НЕ работает! "); // следующая строка устанавливает RTC на дату и время компиляции этого скетча rtc.adjust (DateTime (_ DATE_, _TIME_)); }}
void loop () {uint8_t значение часа, значение минуты; uint8_t часовое напряжение, минутное напряжение;
DateTime now = rtc.now (); // Получение информации RTC hourvalue = now.hour (); // Получить час if (hourvalue> 12) hourvalue - = 12; // Эти часы 12 часовая минутаvalue = now.minute (); // Получаем минуты
минутапряжение = карта (значение минуты, 1, 60, 57, 255); // Преобразование минут в рабочий цикл ШИМ
если (значение часа == 1) {analogWrite (HOUR_PIN, 57); } если (значение часа == 2) {analogWrite (HOUR_PIN, 75); // каждый час соответствует +18} if (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }
если (значение часа == 4) {analogWrite (HOUR_PIN, 111); } если (значение часа == 5) {analogWrite (HOUR_PIN, 126); } если (значение часа == 6) {analogWrite (HOUR_PIN, 147); } если (значение часа == 7) {analogWrite (HOUR_PIN, 165); } если (значение часа == 8) {analogWrite (HOUR_PIN, 183); } если (значение часа == 9) {analogWrite (HOUR_PIN, 201); } если (значение часа == 10) {analogWrite (HOUR_PIN, 215); } если (значение часа == 11) {analogWrite (HOUR_PIN, 237); } если (значение часа == 12) {analogWrite (HOUR_PIN, 255); }
analogWrite4 (минутное напряжение); // минутная аналоговая запись может оставаться такой же, как работает отображение // код для перевода процессора в спящий режим может быть предпочтительнее - мы отложим delay (5000); // проверяем время каждые 5 секунд. Вы можете это изменить. }
void PWM4_init () {// Настраиваем ШИМ на Trinket GPIO # 4 (PB4, контакт 3), используя Таймер 1 TCCR1 = _BV (CS10); // без предделителя GTCCR = _BV (COM1B1) | _BV (PWM1B); // очищаем OC1B при сравнении OCR1B = 127; // инициализация рабочего цикла до 50% OCR1C = 255; // частота }
// Функция, разрешающая аналоговую запись на Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // долг может быть от 0 до 255 (от 0 до 100%)}
Рекомендуемые:
Создайте свои собственные ретро-часы Nixie с RTC !: 7 шагов (с изображениями)
Создайте свои собственные ретро-часы Nixie с помощью RTC! В этом проекте я покажу вам, как создать ретро-часы Nixie. Это означает, что я покажу вам, как вы можете управлять лампами nixie с помощью источника постоянного тока высокого напряжения, а затем я объединю 4 лампы nixie с Arduino, часами реального времени (RTC) и cu
Часы Vortex: наручные часы с зеркалом бесконечности: 10 шагов (с изображениями)
Часы Vortex: наручные часы с зеркалом бесконечности: целью этого проекта было создание носимой версии зеркальных часов бесконечности. Он использует свои светодиоды RGB для индикации времени, назначая часы, минуты и секунды красным, зеленым и синим светам соответственно и перекрывая эти оттенки t
Фотохромные часы и светящиеся в темноте часы: 12 шагов (с изображениями)
Фотохромные часы и часы, светящиеся в темноте: в этих часах используется специально созданный 4-значный 7-сегментный дисплей, сделанный из ультрафиолетовых светодиодов. Перед дисплеем размещается экран, который состоит либо из фосфоресцирующего («светится в темноте»), либо из фотохромного материала. Загорается кнопка вверху
C51 4-битные электронные часы - деревянные часы: 15 шагов (с изображениями)
C51 4-битные электронные часы - деревянные часы: у меня было немного свободного времени на этих выходных, поэтому я собрал эти 4-битные электронные цифровые часы DIY за 2,40 австралийских долларов, которые я недавно купил на AliExpress
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: 3 шага (с изображениями)
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: медный колокол, маленькое реле, еще несколько вещей и настоящий колокол могут пробить часы на вашем рабочем столе. Хотя этот проект работает на Windows и Mac OS X тоже, я решил установить Ubuntu Linux на ПК, который я нашел в мусорном ведре, и поработать над этим: у меня никогда не было