Оглавление:
- Шаг 1: ЧТО ОЖИДАТЬ
- Шаг 2: ГАЙКИ И БОЛТЫ
- Шаг 3: О СТРОЙКЕ
- Шаг 4: 4 КНОПКИ и КОРПУС
- Шаг 5: ЖК-дисплей
- Шаг 6: ОБРАБОТКИ
- Шаг 7: ДРУГИЕ ФОТОГРАФИИ
- Шаг 8: ЭСКИЗ
- Шаг 9: файлы CASE STL
Видео: ЖКИ ДАТА / ЧАСЫ Забудьте о часах реального времени: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Квантовые логические часы NIST 2010 на основе одного иона алюминия.
В 2010 году в ходе эксперимента два квантовых часа с ионами алюминия были помещены близко друг к другу, но при этом вторые были подняты на 12 дюймов (30,5 см) по сравнению с первыми, что сделало эффект гравитационного замедления времени видимым в повседневных лабораторных весах. Таким образом, опровергая теорию гравитации Эйнштейна. Часы были перевернуты и показали одинаковые временные сдвиги. Постдокторант NIST Джеймс Чин-вэнь Чоу с самыми точными в мире часами, основанными на колебаниях одного иона алюминия (электрически заряженного атома). Ион удерживается внутри металлического цилиндра (в центре справа). Он говорит: «Снижение на 1 секунду за 3,7 миллиарда лет»… давайте подождем и посмотрим!
СУПЕР ДЮПЕР Вау.
Таким образом, используя квантовые колебания, которые происходят очень быстро, вы думаете, что чем быстрее, тем лучше. Чип 328 в Unos вроде бы быстр на 16 МГц. Это намного быстрее, чем у обычного тактового кристалла, который составляет 32,768 кГц. Это в 500 раз быстрее! А в 328 есть датчик температуры для компенсации часов.
Так почему же 328-й не может превзойти кристалл дешевых часов?
Шаг 1: ЧТО ОЖИДАТЬ
Это моя вторая попытка сделать часы ТОЛЬКО на микросхеме 328. Каждый 328 работает в разное время, даже если у них есть кристалл на 16 МГц. Таким образом, вы получаете плохие результаты, просто считая millis (). Которая работает на частоте 1000 Гц. Это делает ОДИН миллис (1) в среднем примерно до + - 3,6 секунды в час с точностью. Arduino mills () не считает фракционные мельницы и не использует поплавки. Это делает невозможным подсчет долей мельницы. Поэтому следующий выбор - использование Arduino micros (). Но использование micros () занимает всего 71 минуту. (это действительно НЕ проблема). Проблема для меня заключается в том, чтобы иметь дело с большими числами и повторными настройками на основе времени GPS. Другой вариант - прерывание. Это считает секунды независимо от того, где выполняется код внутри цикла. Это делает 328-й по качеству не хуже RTC. Даже если учесть пятнышки на «микросхеме», при + - 4 мкс, это будет тактовая частота 250 кГц. Это в 7 раз лучше, чем 32,768 кГц.
Итак, вот мои ЖК-часы Arduino, основанные на 16-битном таймере. Одно прерывание с использованием микросекунд. Это не так хорошо, как считать ионы алюминия! Но это просто, и после некоторых калибровок он может быть не хуже часов реального времени. Я сделал 3 варианта этих часов. От подключения к компьютеру по usb. Стоять отдельно с 4-мя кнопками. Для выхода за пределы GPS с температурой с помощью HC12. Это руководство будет охватывать первые 2 тактовых сигнала, а я напишу еще одно «более подробно» для HC12.
См. Другие мои инструкции по проблемам диапазона HC12.
Что вы можете ожидать, так это простые часы / дата с ЖК-дисплеем с использованием UNO и ЖК-дисплей 16x2. Я сделал несколько нестандартных номеров для ЖК-дисплея. Библиотека «БОЛЬШИХ чисел» занимает 3 места, у меня всего 1. Четыре кнопки имеют внутреннее подтягивание, поэтому сборка проста. У меня есть чехол для этого и 2 жк и спинки.
В публичной библиотеке моего маленького городка есть 3D-принтер, которым может пользоваться каждый. Так что загляните в ближайшую к вам библиотеку для изготовления корпуса lcd.
Мои тесты показывают - + секунды каждые 24-48 часов. Это примерно одна минута через два месяца. Три или четыре корректировки ставят точку на часах. Только выключается примерно за 12 секунд до МЕСЯЦА. Неоднократные попытки «откалибровать» швы, чтобы просто погоняться за цифрами. Одна ПЛОХАЯ функция - использование ЛЮБОГО «меню» сбрасывает секунды на 00. Это изменяет текущее время. Я оставил тайм-аут 60 секунд для нажатия кнопки, чтобы обеспечить синхронизацию с другими часами.
Шаг 2: ГАЙКИ И БОЛТЫ
Этот проект представляет собой АВТОНОМНЫЕ часы без RTC, только uno и lcd. 4 кнопки позволяют устанавливать время / дату, настраивать часовой пояс и откалибровать.
Файлы 3D-принтера имеют один и два ЖК-корпуса для других проектов.
На ЖК-дисплее БОЛЬШИЕ НОМЕРА, которые занимают всего ОДИН пространство. Это заняло у меня некоторое время
В корпусе 8 отверстий для кнопок под другие проекты.
Просто подключите стенную бородавку 5В для питания.
Проверьте вашу местную БИБЛИОТЕКУ на предмет использования 3D-принтера !!
Шаг 3: О СТРОЙКЕ
Любые платы Arduino с микросхемой MEGA 328 должны работать. Ему нужен кристалл с частотой 16 МГц, и он должен работать на этой скорости. Напряжение 3,3 В на частоте 8 МГц может не работать с синхронизацией прерывания. Для корпуса лучше всего подходит pro-mini, но вы можете втиснуть nano, но кабель USB может быть проблемой. Это ЖК Hitachi 16x2, очень популярный. Некоторые дешёвые тусклые и просто далекие. Краевой разъем необходим для установки популярного модуля преобразователя I2c. Для подключения к uno нужно всего 4 провода. Существует множество руководств, показывающих, как подключить ЖК-дисплей без модуля преобразователя, если он вам не нужен. Для часов без кнопок это все, что вы делаете.
На ЖК-дисплее есть БОЛЬШОЙ НОМЕР настраиваемый символ. Большие числа занимают только ОДНУ ширину.
Шаг 4: 4 КНОПКИ и КОРПУС
То же, что и выше, но добавьте 4 переключателя. Для корпуса используется стандартная печатная плата размером 2 x 2,5 дюйма. Просто разрежьте пополам и установите переключатели так, чтобы ножки шли слева направо. Если поставить переключатели ножками вверх, отверстия в корпусе не совпадут. ПЕРЕД пайкой убедитесь, что они совпадают с отверстиями в корпусе. Заземлите нижние ножки (все) и проденьте каждую верхнюю ножку к булавке на uno. См. Прилагаемую схему. Если вы распечатываете корпус на 3D-принтере, часть кнопок необходимо приклеить к корпусу lcd. Он НЕ защелкивается, как задняя часть. Любые маленькие саморезы будут удерживать ЖК-дисплей на месте. СЛИШКОМ большой, и вы расколите корпус. Горячий клей-карандаш может быть лучшим. Перед установкой жк-дисплея… зачерните область светодиода черной лентой. Иначе он будет просвечивать сквозь корпус. Я использую двухстороннюю поролоновую ленту в 2 слоя для крепления pro mini. Эта лента - сделка в «магазинах долларовых деревьев». Я использую магнитную проволоку с твердым покрытием около 26 калибра. У меня есть отличные инструкции по использованию этого провода в соединениях.
Шаг 5: ЖК-дисплей
проблемы с жк-дисплеем
После завершения сборки загрузите и установите скетч. ЖК-дисплей может не загораться. Вот несколько советов. Индикатор на ЖК-дисплее должен гореть и делать экран голубоватым. Если светодиода нет, проверьте контакты перемычки напротив потенциометра резистора. Для этого нужна перемычка или резистор на 150 Ом. Синий горшок - всегда проблема. Поэтому поворачивайте горшок, пока на дисплее не появятся 2 ряда квадратов. Затем отступите до тех пор, пока квадраты не исчезнут. Если по-прежнему нет дисплея, проверьте соединения SDA и SCL. Слишком легко вернуть их назад. Это A4 для SDA и A5 для SCL. Это контакты A, а не D, и некоторые профили имеют эти контакты внутри компьютера, а не по краям. Последний вариант - проверить адрес. Некоторые модули ЖК-преобразователей имеют разные адреса. Или при использовании более одного устройства всем нужны разные адреса. Большинство модулей имеют 3 паяных контакта для установки 3 разных адресов. Помните, что I2c подключает только 2 провода ко ВСЕМ устройствам. Таким образом, каждое устройство ДОЛЖНО иметь уникальный адрес. В комплекте идет сканер адресов I2c. Загрузите установку сканера и прочтите серийный монитор. На дисплее отображается адрес ЛЮБОГО устройства I2c. Проверьте эскиз часов на наличие линии в верхней части эскиза. 'LiquidCrystal_I2C lcd (0x3F, 16, 2); '0x3F - правильный адрес моего преобразователя. Если ваш адрес отличается, измените его на правильный со сканера. Внимание: копирование и вставка нового адреса иногда включает конец строки или возврат каретки. Просто введите другой адрес. Первые буквы всегда нулевые и строчные x 0x. Это говорит C ++, что это шестнадцатеричный код. После 0x любая буква вводится в верхнем регистре.
Шаг 6: ОБРАБОТКИ
следуйте схеме и подключите устройство.
Шаг 7: ДРУГИЕ ФОТОГРАФИИ
удачи, ПОЖАЛУЙСТА, посмотрите мои другие инструкции
Шаг 8: ЭСКИЗ
Instructables не позволяет мне скачать файл Arduino !!!! поэтому я использовал текст. Вам нужно будет скопировать и вставить текст в НОВЫЙ открытый файл arduino в среде IDE ……. ИЗВИНИТЕ
и текстовые файлы тоже не загружаются !!! и пытался вставить сюда но перепутал !!
наконец !!! получил свой скетч для скачивания здесь. 3-26-2020 Исправлены и мелкие недочеты.
Люди, которым платят за написание кода, катятся по полу, когда видят мой код. Мои наброски обычно начинаются с простого. Затем я добавляю еще дела. Таким образом, набросок превращается в беспорядок. Надеюсь, вы извлечете уроки из двух моих самых больших ошибок. С самого начала должны быть четко определены план и цель. Не добавляйте кучу всего на весь набросок. Моя худшая ошибка - это неправильное использование ФУНКЦИИ. Он должен быть кратким, возвращать сумму и использоваться только тогда, когда он заменяет повторяющиеся строки кода по всему скетчу. delay (100) - хороший пример.
Я использую ФУНКЦИЮ для разделения частей эскиза. Это позволяет мне легко следить за основным телом, а также позволяет отлаживать отдельные разделы, просто вызывая функцию. Я думаю, что GOTO раньше это делал, но он потерял популярность и НИКОГДА не используется. Достаточно. Я проверил дату и время как можно лучше. В одних и тех же частях эскиза мои часы «В квадрате времени» уже много лет работают. Если я что-то пропустил или есть ошибка, дайте мне знать. Чтобы откалибровать «эскиз без кнопок», используйте строку с параметром unsigned long tSec = 1000122; '(строка 34) - это то, что вы меняете. Постоянная 277 в секунду в час верна. Но на практике я делаю всего от 2 до 8 изменений величины tSec. На 1000122 многие мои часы работали так же хорошо, как RTC. Наберитесь терпения, небольшая сдача всего в 2-8 может стать идеальными часами. Обратная сторона любых изменений для любых часов означает, что текущее время БУДЕТ изменено. Вам нужно будет установить правильное текущее время / дату.
//// easy_one_lcd_clock_no_buttons // // часы arduino и lcd // используйте таймер timerOne 16 бит // чтобы откалибровать эти часы: // используйте хорошие секундные часы, такие как GPS. // использовать часы в качестве базового показателя. Считайте секунды // ЭТО выключено. Если ЭТО отстает от GPS, // GPS = 00.. ЭТО = 58 ВЫЧИТАЙТЕ 277 для каждой // секунды / часов. Итак, если медленнее на 2 секунды за // 3 часа… (277 * 2) / 3 = 184 // ВЫЧИТАЙТЕ из tSec. // если ЭТО впереди GPS = 00… ЭТО = 03 // та же самая математика просто ДОБАВИТЬ в tSec. // осторожно, большинство часов правильно на 00. // 20 секунд - лучшая проверка таймера.
Шаг 9: файлы CASE STL
Вот файлы с чемоданами для 3d-принтера. Клавиатуру нужно приклеить к корпусу жк-дисплея. Задняя крышка защелкивается как на одно, так и на два ЖК-корпуса. Сначала защелкните верх, а затем спуститесь вниз, чтобы получилась удобная посадка.
ВЫПЛАТИТЕ вашу местную БИБЛИОТЕКУ для использования 3D-принтера.
Рекомендуемые:
Часы реального времени с использованием AT89s52: 3 шага
Часы реального времени с использованием AT89s52: ДОБРО ПОЖАЛОВАТЬ! Это shubham Tvedi, и сегодня я собираюсь разработать часы реального времени с использованием микроконтроллера At89s52. Микроконтроллер AT89S52 - сердце этого проекта. В качестве часов реального времени используется микросхема DS1307. Для этой микросхемы DS1307 требуется интерфейс I2C, но 89
Часы реального времени с Arduino: 3 шага
Часы реального времени с Arduino: в этом проекте мы создадим часы с помощью модуля Arduino и RTC. Как мы знаем, Arduino не может отображать фактическое время, поэтому мы будем использовать модуль RTC для отображения правильного времени на ЖК-дисплее. Внимательно прочтите все шаги, это поможет вам
Настройка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с помощью Java (+ -1 с): 3 шага
Установка часов реального времени DS3231 RTC (часов реального времени) точно, быстро и автоматически с использованием Java (+ -1 с): это руководство покажет вам, как установить время на часах реального времени DS3231 с помощью Arduino и небольшого приложения Java, которое использует последовательное соединение Arduino. Основная логика этой программы: 1. Arduino отправляет последовательный запрос
Часы реального времени Minitel: 5 шагов
Часы реального времени Minitel: Созданная в 1978 году компанией France Telecom, Minitel представляла собой службу поиска информации и текстовых сообщений. Считается самой успешной сетью до появления всемирной паутины. Спустя 30 лет, в 2008 году, сеть окончательно закрылась. (Об этом много информации
Часы на базе Arduino с использованием модуля часов реального времени DS1307 (RTC) и 0,96: 5 шагов
Часы на основе Arduino с использованием модуля часов реального времени DS1307 (RTC) и 0.96: Привет, ребята, в этом руководстве мы увидим, как создать рабочие часы с помощью модуля часов реального времени DS1307 & Дисплей OLED, поэтому мы будем считывать время с модуля часов DS1307. И распечатать на OLED-экране