OLED часы на arduino
На днях я решил создать часы на arduino с отображением времени, текущей даты, дня недели и температуры воздуха на OLED дисплее. Что из этого получилось смотрите на видео.
Список необходимых компонентов:
и загружаем первый пробный скетч для проверки работоспособности дисплея и часового модуля
после загрузки скетча у нас на дисплее отобразятся часы как на фото
Как видим все отображается нормально, но что бы добавить русские названия дней недели нам потребуется инициализировать русские шрифты добавив строку в скетч
и еще добавить строки которые помогут нам определить порядковый номер дня недели и отобразить название дня на русском языке.
и еще закомментируем строки
что бы при повторной загрузке скетча не устанавливать заново время. После этого день недели на нашем дисплее отобразится на русском языке.
теперь изменим отображения месяца, добавив в скетч строки
Почему надписи в скетче отображаются непонятным набором символов читайте в этой статье Русские и украинские шрифты для OLED I2C дисплея
Теперь наши часики будут выглядеть как на фото.
Для тех, кому было лень править скетч, ниже есть готовый скетч.
Ну а теперь, еще более усовершенствуем наши OLED часы и добавим к ним отображение температуры, которую мы будем считывать с датчика температуры DS18B20.
Для отображения рисунка с градусником на OLED дисплее и значка градуса выберем картинку с рисунком градусника и с помощью графического редактора сохраним ее в формате GIF с именем term.gif, и тоже самое проделаем с картинкой с значком градуса — сохраним ее как grad.gif.
картинки должны быть двухцветными (белый и черный), доступные форматы картинок png, jpg, gif
У меня картинка term.bmp имеет размеры 19×40 пикселей, а картинка grad.bmp 13×12 пикселей. Потом нам потребуется конвертировать две картинки с помощью онлайн-сервиса www.rinkydinkelectronics.com
выбираем наш файл изображения и жмем Make File
Жмем на Click here to download your file и сохраняем файл grad.c в папку с нашим скетчем, тоже самое проделываем с другим изображением. Сохраняем и закрываем скетч. При повторном открытии он будет иметь еще две вкладки с файлами изображений.
После этого добавим две строки в скетч, которые инициализируют наши файлы изображений
а потом отобразим наши изображения на экране OLED дисплея, добавив строки
Добавим в наш скетч на два цикла. В первом цикле у нас будет отображаться время – назовем его void watch(); Второй цикл будет считывать и отображать температуру void temp();
А в основном цикле void loop(); пропишем для ротации циклов несколько строчек кода
В цикле void temp(); пропишем кусочек кода для считывания и отображения температуры
В цикле void watch(); пропишем наш код, который отвечает за отображение времени
После заливки скетча, наши OLED часы сначала должны отображать время, а потом температуру как на видео в начале статьи.
Часы, пишущие время маркером
Мастер Кит MB NANO DK NANO
Очередная безумная поделка выходного дня – настоящие часы, пишущие время маркером.
Эта идея была подсмотрена в Интернете. Самобытные мастера и умельцы со всего мира вырезают эту конструкцию из листового акрилового пластика. Мастер Кит нарисовал 3D-модели всех акриловых деталей, и теперь эти безумные часы можно напечатать на вашем 3D принтере.
Итак, сегодня вам понадобятся:
- MB NANO – Arduino NANO.
- DK NANO – плата-расширения для Arduino Nano и Arduino Pro. Можно обойтись и без неё, но это будет очень неудобно. Придется как-то подводить питание для сервомашинок.
- Три сервомашинки.
- Маркер для доски.
- Пять винтов М3 и две гайки.
- Несколько деталей распечатанных на 3D принтере.
Всё. Один субботний вечер, и ваши друзья будут в шоке.
Все stl-файлы и скетч для Arduino можно скачать с нашего сайта. Ниже скетчи всех деталей.
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Это «сборочный» чертеж:
Рекомендации по сборке и настройке
1) Напечатайте на 3D принтере все детали из stl-файлов.
2) Шарниры соединяются винтами М3, которые свободно продеваются через отверстие 3.6 мм в одной детали и вкручиваются как саморезы в отверстие 2.5 мм во второй детали с небольшим зазором для свободного вращения.
3) Сервомашинки подключаются к Arduino так: Лифт – вывод 2, левый сервомоторчик – вывод 3, правый сервомоторчик – вывод 4. И это записано в скетче. Можно было бы начать с вывода 1, но там сигнал TX. При включении и инициализации моторчик будет дергаться.
4) При монтаже сервомоторчиков постарайтесь установить их оси в среднее положение.
5) Залейте в Arduino Nano скетч. Он сразу начнет работать с режима калибровки #define CALIBRATION. (Удалите или закомментируйте эту строку после окончания калибровки). В этом режиме работают левая и правая машинка. Найдите строку #define SERVOFAKTOR 620. Меняя значение, добейтесь, чтобы при движении угол между качалками левой и правой сервомашинок всегда был 90 градусов. Теперь найдите строки #define SERVOLEFTNULL 1900 и #define SERVORIGHTNULL 984. Меняя значения в этих строчках, добейтесь, чтобы в крайне правом положении шарниры были параллельны осям X и Y. После этого можно выходить из режима калибровки. Дальше в скетче найдите строки высоты поднятия маркера над столом в разных режимах #define LIFT_____. Поэкспериментируйте с этими значениями. Добейтесь качественного стирания и письма. Дальше в скетче есть ещё несколько строк с переменными. На чертеже можно посмотреть, что это такое, и дополнительно подстроить движение. Может быть, добьетесь каллиграфического почерка.
6) К колпачку двухсторонним скотчем приклейте кусок ткани.
Plotclock или RoboCLOCK — Arduino-робот рисует маркером текущее время в режиме реального времени
Классические и цифровые часы постепенно уходят на второй план.
Немецкий дизайнер портала Thingiverse с ником Joo из Нюрнберга (также известен под именем Йоханес) разработал простого робота, который через определенные промежутки времени с помощью простого маркера отображает ход времени на миниатюрной классной доске. Элементы простого шарнирного механизма, в который установлен маркер, выполнены на 3D принтере. «Механические руки» робота стирают устаревшие значения прежде чем нарисовать снова, и каждый раз, когда робот завершает рисовать цифры, они соответствуют реальному времени (Рисунок 1).
![]() | |
Рисунок 1. | Arduino-робот Plotclock рисует рисует последовательность цифр, отображающей текущее время в 24-часовом формате. |
Основные характеристики:
- Робот Plotclock, выполненный на платформе Arduino Uno, с помощью маркера в прямом смысле рисует на белой поверхности последовательность цифр, отображающих текущее время в 24-часовом формате;
- Затем робот стирает с поверхности устаревшее значение, и рисует новые значения часов и минут;
- Пластиковые элементы механической конструкции робота изготовлены на 3D принтере.
Механическая часть робота состоит из нескольких простых пластиковых элементов и механизмов, соединенных между собой с помощью болтов и гаек размера M3. Управление движениями механической руки осуществляется с помощью платы Arduino Uno и трех серводвигателей (Рисунок 2).
![]() | |
Рисунок 2. | Для управления «механической рукой» робота Plotclock используются три серводвигателя и плата Arduino. |
Автор предлагает пошаговую инструкцию по сборке часов, необходимые рисунки и спецификации, а также исходные коды и проектные файлы для 3D печати механических элементов, что позволит пользователям создать свои варианты часов. Проект продолжает развиваться, представленный вариант может считаться лишь первым прототипом устройства. Представленный вариант является последним в линии проектов 21 века по модернизации и реконструкции классических часов.
Для сборки Plotclock пользователям потебуется:
- Лазерный резак или 3D принтер
- Плата Arduino Uno
- Три серводвигателя 9G
- Маркер для сухостираемых досок
- Небольшая белая пластиковая поверхность
- Болты и гайки M3, лента для уплотнения резьбовых соединений.
Демонстрационное видео
Перевод: Vadim по заказу РадиоЛоцман
Эти часы пишут время…
Очередная безумная поделка выходного дня – настоящие часы, пишущие время маркером.
Эта идея была подсмотрена в интернете. Самобытные мастера и умельцы со всего мира вырезают эту конструкцию из листового пластика типа акрил. Мастер Кит нарисовал 3D-модели всех акриловых деталей и теперь эти безумные часы можно напечатать на вашем 3D принтере.
Итак!
Сегодня вам понадобятся:
1. MB NANO — Arduino NANO
2. DK NANO — Плата-расширение для Arduino Nano и Arduino Pro. Можно и без неё но очень не удобно. Придется как-то подводить питание для сервомашинок.
3. Три сервомашинки
4. Маркер для доски
5. Пять винтов М3 и две гайки.
6. Несколько деталей распечатанных на 3D принтере.
Всё! Один субботний вечер и ваши друзья будут в шоке!
Все stl-файлы и скетч для Arduino можно скачать с нашего сайта.
Ниже скетчи всех деталей.
Это «сборочный» чертеж:
Рекомендации по сборке и настройке.
1. Напечатайте на 3D принтере все детали из stl-файлов
2. Шарниры соединяются винтами М3, которые свободно продеваются через отверстие 3,6 мм в одной детали и вкручиваются как саморезы в отверстие 2,5 мм во второй детали. С небольшим зазором для свободного вращения. (фото 1)
3. Сервомашинки подключаются к Arduino так. Лифт — 2, левый сервомоторчик – 3, правый сервомоторчик – 4. И это записано в скетче. Можно было бы начать с 1-го вывода, но там сигнал TX. При включении и инициализации моторчик будет дергаться.
4. При монтаже сервомоторчиков постарайтесь установить их оси в среднее положение.
5. Залейте в Arduino Nano скетч. Он сразу начнет работать с режима калибровки >. (удалите или закомментируйте эту строку после окончания калибровки) В этом режиме работают левая и правая машинка. Найдите строку >. Меняя значение, добейтесь, чтобы при движении угол между качалкачалками левой и правой сервомашинок всегда был 90 градусов. Теперь найдите строки > и >. Меняя значения в этих строчках, добейтесь, чтобы в крайне правом положении шарниры были параллельно по осям X и Y. После этого можно выходить из режима калибровки. Дальше в скетче найдете строки высоты поднятия маркера над столом в разных режимах >. Поэкспериментируйте с этими значениями. Добейтесь качественного стирания и письма. Дальше в скетче есть ещё несколько строк с переменными на чертеже можно посмотреть, что это, и дополнительно подстроить движение. Может быть добьетесь каллиграфического подчерка).
6. К колпачку двухсторонним скотчем приклейте кусок ткани.