Часы с нуля, хотелось бы пройти все этапы реализации проекта
- Войдите на сайт для отправки комментариев
Доброго всем дня!
Года два тому назад приобрел партию крупных (высотой 7 см) семисегментных индикаторов с мыслью, что буду делать часы, а точнее переделаю какой-нибудь китайский конструктор часов с мелкими индикаторами. А тут недавно заинтересовался ардуинкой и решил начать делать часы на ардуино. Программированием я никогда не занимался, но жуть как интересно. Так на данный момент я располагаю arduino uno ( c чипом CH340G), модуль реального времени на DS3231 и индикаторы.
Начать хочу с изготовления индикаторов. Технических параметров на индикаторы нет. От 5 вольт засветить сегменты не получилось, скорее всего сегмент состоит из не менее трех последовательно соединенных светодиодов. От 9 вольт сегмент засветился ток потребления 6,5 мА с токоограничивающим резистором на 330 ом. Цвет свечения - красный, индикатор с общим анодом.
Теперь первый вопрос к сообществу: какой выбрать способ реализации управления индикаторами?
Теперь первый вопрос к сообществу: какой выбрать способ реализации управления индикаторами?
Первое, что приходит в голову - нанять толкового маёра с наручными часами, который будет, глядя на них, зажигать и гасить нужные сегменты.
Теперь первый вопрос к сообществу: какой выбрать способ реализации управления индикаторами?
Первое, что приходит в голову - нанять толкового маёра с наручными часами, который будет, глядя на них, зажигать и гасить нужные сегменты.
Юмор понятен, но я бы хотел вместо маёра использовать ардуино.
Можно и так. У ардуины даже, думаю, мозгов-то поболе будет. Но исполнительности поменьше. На каждый сегмент придётся транзистор городить. или одну ULN2003 на 7 сегментов. Полторы цыфры спаять, потом у Дуни ноги кончатся, надо будет еще что-нить городить, например PCF8574 перед ULN.
Ну тут эликтронщеги есть, подскажут точнее.
И надо было тему создавать в "Аппаратных вопросах", ведь готового проекта еще нет. А в этой теме люди только хвастаюца.
Таки для начала решите, какую желаете индикацию (статическую али динамическую). От этого будет зависеть количество занятых пинов. Что в часах будет кроме часов? Чисто для часов, с динамической индикацией , ног Ардуины достаточно. Нужна она, модуль RTC и ключи для индикаторов.
Ну и да, попросите модераторов тему перенести, нех ей пока в прожектах делать.
Благодарю всех откликнувшихся. Выбрал данную ветку форума с мыслью совместно пройти все шаги по организации проекта, т.е. и аппаратную и программную. Думаю это будет интересным и другим начинающим “бойцам”. Буду просить перенести тему в другую ветку форума.
с мыслью совместно пройти все шаги по организации проекта, т.е. и аппаратную и программную.
Ты хотел показать присутствующим все шаги, или чтобы тебя по этим шагам за ручку провели? Что-то мне подсказывает, что второе.
Думаю это будет интересным и другим
Боюсь, что ошибаешься.
Благодарю всех откликнувшихся. Выбрал данную ветку форума с мыслью совместно пройти все шаги по организации проекта, т.е. и аппаратную и программную. Думаю это будет интересным и другим начинающим “бойцам”.
Дело в целом хорошее, заводите например в "Общем" разделе тему типа "Чайник строит часики" (не глумлюсь), в первом посте даете преамбулу (его нельзя потом редактировать), а в следующих начинаете выкладывать наработки: распиновку индикатора, схему их объединения и управления и т.д. по шажкам. Говнеца конечно подкинут, не без этого, будете вести себя адекватно и помогут. Как то так. Сумеете сами довести до конца, уважуха, и пускай изначально это будет говнокод, лишь бы был рабочий, опыта наберетесь подредактируете.
Вижу свою ошибку, исправлюсь.
Отличный вариант как осуществить мою идею с созданием часов. Благодарю.
Есть специальные микросхемы - LED драйверы, например MBI5026 и другие. У них стабилизация тока внешним резистором, у 5026 от 5 до 90ма, частота до 25MHz и напряжение ключей до 17В. И никакого огорода из UNL и PCF.
Собирал часы, где в качестве индикаторов брал куски диодной ленты. Запитывал ленту от 12В, которые коммутировались через ULN2003. В конце концов скетч залил в атмегу8. Итого для часов понадобилось 1 атмега8, стабилизатор напряжения на 5В типа LM7805, кучка резисторов и пара конденсаторов, несколько кнопок для установки времени и модуль RTC. Так же куча терпения, чтоб спаять куски ленты в сегменты. Индикация динамическая.
Что я вижу в часах:
Четырех разрядный дисплей с несколькими режимами индикации
-часы и минуты
-минуты и секунды
-месяц и день
-температура
Кнопки управления
На передней панели
- кнопка переключения режимов индикации (сенсорная)
- кнопка отключения будильника (сенсорная)
На задней панели
кнопки для установки времени, будильника, предусмотреть обнуление секунд.
Начинайте пальцы загибать, сколько понадобится пинов для управления всем этим добром, да блок-схему набрасывать.
И режим минуты-секунды, нахрена нужен, или вы еще секундомер желаете? Кнопка переключения режимов, зачем, их МК неплохо и сам переключает.
Уже занимаюсь схемкой. По поводу режимов индикации, мне не нравится когда часы самостоятельно меняют режимы, но можно предусмотреть автоматический режим показывающий время (часы-минуты) и температуру. По-поводу индикации минут и секунд, мне кажется это удобный режим для обнуления секунд.
Не, дело конечно ваше, но мне было бы лениво идти к часам, чтобы нажать кнопку и узнать сегодняшнее число или температуру, а потом не забыть нажать, чтобы начали время показывать. По обнулению секунд, если так хочется супер-мега-точного, то ройте в сторону синхронизации с сервером, а в обычной жизни расхождение на десяток секунд с реальным ни на что не влияет. ИМХО.
Согласен, но мне нравится такая реализация, зато появилась еще одна функция - если забыл изменить режим, то можно предусмотреть автоматический возврат через минуту в режим индикации часов и минут. Мне нравится такая идея.
мне не нравится когда часы самостоятельно меняют режимы
А мне нравица, когда часы с потугой на умность, самостоятельно меняют режимы, например с дневного на ночной, чтоб в темноте своей яркостью по глазикам не били.
чтоб в темноте своей яркостью по глазикам не били.
Мне нравиться такая самостоятельность ардуинки. Вот появилась еще одна функция. Изменение яркости свечения индикаторов в зависимости от отсвещенности.
ройте в сторону синхронизации с сервером
Нет такую функцию не хочу. В принципе можно чисто программно вносить поправку раз день или раз в неделю, зависит от того как будут идти часики.
Нормальные DS3231 идут весьма точно.
Нормальные DS3231 идут весьма точно.
Это прекрасно, вот и посмотрим как будет вести себя моя платка, покупал на Aliexpress а там возможно все.
У меня возникла сложность с оформлением блок-схемы, нарисовал в VISIO и при сохранении в графический формат, изображение получается не “комильфо”. Буду искать другие возможности рисования схем.
А теперь про часы: явно не хватает ног у ардуинки по крайней мере динамик включить некуда и возник вопрос правильности использования аналоговых входов для работы с кнопками.
У меня есть один сдвиговый регистр 74HC595 можно его приспособить для работы с семью сегментами матриц и разделительных точек, а для выбора разряда использовать четыре вывода платы Arduino. Таким образом я освобождаю 4 цифровых выхода. Один под динамик и три для кнопок.
Найдите тему "Работа с кнопками. В помощь новичку". Узнаете много нового и будете приятно удивлены. Вот не хочу напрямую подсказывать, надеюсь сами догадаетесь об альтернативном методе. В моих сообщениях намек был.
Читаю читаю...."все придумано до нас" в пн скину готовое, часы барометр термометр на 7 сегментный с самостоятельным переключение режимов, но без кнопок.
Вообще с каждым годом все больше возникает кризис идей :(
Читаю читаю...."все придумано до нас" в пн скину готовое, часы барометр термометр на 7 сегментный с самостоятельным переключение режимов, но без кнопок.
А смысл, если ТС хочет сам пройти весь путь, желание похвальное, а главное значительно повысит скил в схемотехнике и программировании (если дотянет). А готовое собрать - пойти, да купить китайский будильник рублей за двести и деньги и время сэкономишь. Но ведь скучно же. ИМХО.
Учиться можно и по чужим примерам, всегда в яндекс поиске первым словом пишу пример, например : 74hc595 на arduino.
Все равно придётся мозг включить, так как в реальной жизни / проектах комментариев нет и приходиться разбираться
А теперь про часы: явно не хватает ног у ардуинки по крайней мере динамик включить некуда и возник вопрос правильности использования аналоговых входов для работы с кнопками.
Таким темпом и у М2560 ног не хватит, особенно если по чужим граблям ходить.
А теперь про часы: явно не хватает ног у ардуинки по крайней мере динамик включить некуда и возник вопрос правильности использования аналоговых входов для работы с кнопками.
Я благодарен всем участникам дискуссии.
Наверное стоит все таки сказать, что я хотел бы научится программировать саму ардуинку и это главное. Т.е. хочю сделать часы не ради часов, хотя я их, по-любому, сделаю. Понимаю, что не каждому это дано, но желание есть,.Брать готовые скетчи и запускать их у меня уже получается, но вот что происходит на просторах кода как то не очень понятно. Поэтому идея сделать часы самому и является той самой интересной процедурой в понимании. Пусть я буду изобретать велосипед, но зато это будет мой велосипед) и естественно я не собираюсь ну уж прям совсем изобретать то что уже множество раз изобретено и наступать на грабли разбившие множество лбов , А форум мне нужен как помощник, с “наставниками” многие вещи воспринимаются более доходчиво и ярко. Есть еще одна проблема - живу на Сахалине и доступ к элементной базе только через интернет магазины, а доставка длится месяцами. Поэтому весь процесс может затянутся на долгое время. Сейчас почитаю про LED драйверы - по-моему отличный вариант решения по части индикации для крупных индикаторов.
А пока вообще наверное надо собрать динамическую индикацию на маленьких LED индикаторах без наворотов и попытаться на них увидеть время.
Работу с регистрами, динамическую и статическую индикацию можно освоить и без деталек. Достаточно Arduino IDE и Proteus.
пропробуй это
https://ru.aliexpress.com/item/4-Digit-LED-0-36-Display-Tube-clock-doubl...
Достаточно Arduino IDE и Proteus.
Вот подсказка про САПР отличная посмотрю.
пропробуй это
Буду сразу заказывать микросхемы LED драйверов для своих индикаторов.
Ура! Получил MBI5026GN, 16-и канальные светодиодные драйвера. Пока они шли разбирался с работой драйверов. По документации как бы все понятно.
А вот как прикрутить к ардуинке? Остановил свой выбор на функции последовательного вывода данных (побитно) shiftOut(). Собрал тестовую схемку.
Т,к.функция shiftOut() может передать 8 бит, а нам надо 64 бита то применяю ее четыре раза.
Тестовая работа драйверов получилась. На индикаторах в цикле отображаются по разрядно 0000 потом 1111 потом 2222 и т.д и т.п. до 9999, потом цикл повторяется. Как бы по индикации мне все нравится.
вообще всё это спокойно делается на MT1638 и даже наверное tini13 потянет и пинов хватит на всё
Посмотрел ТМ 1638 интересный драйвер и кнопки можно прикрутить. Но уже пошел в направлении MBI5026. А вообще спасибо за инфу.
Теперь буду разбираться, как запустить часики на этих индикаторах. Буду рад любым идеям.
ELITE, Вы вопрос в начале прочитайте. AR, а почему не аппаратный SPI? У этих драйверов очень высокая скорость, МК будет разгружен.
AR, а почему не аппаратный SPI? У этих драйверов очень высокая скорость, МК будет разгружен.
Даже не думал в этом направлении. Мысль была попробовать запустить индикаторы. Сегодня покопаюсь с аппаратным SPI посмотрю, что за "зверь".
Запустил индикаторы с управлением по SPI, соответственно поменяв выводы на ардуинке. Теперь CLK -это D13, а SDI- это D11. Работает.
Теперь попробуйте запустить и вывести часы. Подключите выход прерывания DS3231 к INT0 или INT1 дуни, настройте прерывание часов на 1Гц. И по прерыванию от часов в прерывании дуни устанавливайте флаг обновления. А по нему в основном цикле обновляйте информацию на индикаторах и делеи будут не нужны.
настройте прерывание часов на 1Гц. И по прерыванию от часов в прерывании дуни устанавливайте флаг обновления
Мысль интересная. Буду ее "курить" :-))
Часы, часы... Как то делал человеку часы с обратным отсчётом. Задаётся дата/время предположительного конца и счёт пошел. Годов, месяцев... до секунд. 16 разрядов всего. Человек утверждает что очень мотивирует.)
Часы, часы... с обратным отсчётом....16 разрядов всего. Человек утверждает что очень мотивирует.)
Даже страшно начать считать, сколько это. Но соглашусь - это может мотивировать.
Артур Шопенгауэр: "Человеческую жизнь нельзя, в сущности, назвать ни длинной, ни короткой, так как в сущности она именно и служит масштабом, которым мы измеряем все остальные сроки."
Часы, часы... Как то делал человеку часы с обратным отсчётом. Задаётся дата/время предположительного конца и счёт пошел. Годов, месяцев... до секунд. 16 разрядов всего. Человек утверждает что очень мотивирует.)
А календарь Майя, предсказания Глобы и пролёт метеоритов на данный период туда закладывали?
А календарь Майя, предсказания Глобы и пролёт метеоритов
Или там "Водолей стал Раком на Весы" - всё надо учитывать.
Так любой каприз! Какие вопросы?
Артур Шопенгауэр: "Человеческую жизнь нельзя, в сущности, назвать ни длинной, ни короткой, так как в сущности она именно и служит масштабом, которым мы измеряем все остальные сроки."
неужели Шопенгауэр тоже говорил "значит" и "этта" ? :)
Артур Шопенгауэр: ".... в сущности, .... в сущности ..."
неужели Шопенгауэр тоже говорил "значит" и "этта" ? :)
Он философ, ему все можно.