Real time clock on STM32

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024
  • Hello! STM32F103C8T6 (BluePill) has a built-in RTC module; therefore, an external real-time clock is not needed to create a watch at all. And in this video we will make a watch on the STM32 and OLED display.
    Test sketches and library: drive.google.c...
    Links to components:
    1) Oled display: ali.pub/4n5r4m
    2) STM32F103C8T6 (BluePill): ali.pub/4fpk43
    3) NRF24L01: http: //ali.pub/4fpnjy
    4) AMS1117 3.3V: ali.pub/4fpnt3
    5) The cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    6) Mosfets SI4562: ali.pub/4fpooz
    7) Resistors: ali.pub/4fposo
    8) Capacitors: ali.pub/4fpov7
    9) Connectors: ali.pub/4fpp09
    10) Transistor MMBT2222: ali.pub/4fpp7g
    11) IR4428 driver: ali.pub/4fprvw
    12) SS32 diode: ali.pub/4fps3v
    13) Tantalum Capacitor: ali.pub/4fps60
    The most convenient cashback:
    LetyShops: goo.gl/Ev5XgI
    The most profitable cashback:
    Ecomerce: goo.gl/3dDc2w
    For cooperation, write to: h.made.chanel@gmail.com
    _________________________________________________________
    Hello! My name is Igor. I am interested in programming and developing various devices. It’s always interesting for me to create something new, unusual. This vet is breathtaking when a lifeless piece of iron suddenly begins to move, ride, fly, and perform all the actions that you invest in them. Feel like a creator of something very unusual! I am fond of programming Arduino, STM32, ESP8266 and ESP32. On this channel you will find simple and interesting things, and most importantly: you can repeat all this, and even do even better!
    #Ардуино #Arduino #STM32 #RTC #STM32F103C8T6 #BluePill #OLED

Комментарии • 129

  • @user-pp2hz7ic7h
    @user-pp2hz7ic7h 4 года назад +16

    Давай больше видео о stm32

  • @iemaylov6338
    @iemaylov6338 4 года назад +1

    Грамотная речь, все подробно и красиво. Спасибо Вам.

  • @TheForeach
    @TheForeach 4 года назад +5

    Почему не используешь PlatformIO? Это не так сложно как кажется. Arduino IDE жутко неуклюжая среда разработки.

    • @user-kp4tc1sy5z
      @user-kp4tc1sy5z 4 года назад

      Ну с этим бы я поспорил, особенно в ATOM ))) Собирал прошивку под Ender3 на BTT SKR e3 mini ver.1.2 в оболочке Атом в среде PlatformIO - гемор то еще. То репозитории не открываются, то библиотеки отваливаются, да еще и со слабым железом то еще удовольствие компилить

  • @cccp306
    @cccp306 4 года назад +3

    Спасибо за видео! Когда мои железки оживают, я чувствую себя богом... сейчас пытаюсь создать условные рефлексы, что бы Ардуина сама предугадывала что мне надо, например: больше света или включить вентилятор, кофеварку....Потом эти рефлексы можно будет объединить в систему и получится ИИ)
    А у Вас есть идеи, как программно описать "Собаку Павлова"?

    • @UCanDo
      @UCanDo  4 года назад +2

      Я вас понимаю :)
      Вам стоит смотреть в сторону "машинного обучения". Это обширная и очень серьезная тема

  • @We-BEER
    @We-BEER 4 года назад +4

    по команде "char t[] = __TIME__;" в переменной будет лежать текущее время системы, которое вы можете сразу прописывать в контроллер, вот и вся синхронизация при прошивке скеча ;) точно так же можно получить текущую дату __DATE__

    • @UCanDo
      @UCanDo  4 года назад

      Да, конечно можно. Но большинство начинающих не поймут как на самом деле устанавливается время, и в каком формате оно хранится в RTC.

    • @We-BEER
      @We-BEER 4 года назад

      @@UCanDo Вам все равно придется разобрать переменную на часы-минуты-секунды, просто не будет странных решений типа прошить так, потом раскомментировать вот тут и вот там и прошить еще раз. Большинство начинающих такие костыли хорошему точно не научат...

  • @РусланАлексеев-у7ъ
    @РусланАлексеев-у7ъ 4 года назад

    Большое спасибо за интересный выпуск!

  • @defrizr854
    @defrizr854 4 года назад +1

    Thank you for sharing this tutorial, bro.

  • @SergeyKhmura
    @SergeyKhmura 4 года назад +2

    @Home Made - То, что ты можешь сделать
    Да, верно, с точностью в Ардуино ИДЕ все хреново, потому что используется не тот кварц, который установлен на плате, а тот, который имеется внутри самого контроллера - я это проверил опытным путем: тот же проект с часами сделал не в Ардуино ИДЕ, а через КубМХ в кеил. Сначала указывал использовать внутренний кварц - часы шли точно также неточно, как и в Ардуино ИДЕ. Потом поменял на внешний кварц, и ... О, чудо! Точность стала изумительной! Как изменить на внешний в Ардуино ИДЕ - я не разобрался

    • @UCanDo
      @UCanDo  4 года назад +1

      Тоже с этим столкнулся, но причина и решение оказались элементарными. Источник тактирования указывается при настройке RTC:
      RTClock rt (RTCSEL_LSE); // initialise
      где:
      LSE - тактирование от часового кварца
      LSI - тактирование от внутренней RC цепочки с частотой 4 МГц
      HSE - тактирование с частотой 8/128MHz = 62500 Hz, но что за источник - я не разбирался
      DEFAULT и NONE - отключение RTC
      По умолчанию во всех примерах стоит тактирование от внутренней RC цепочки с частотой 4 МГц (RTCSEL_LSI), а у этой цепочки частота жутко плавает.

  • @masterkit9517
    @masterkit9517 3 года назад +1

    А чем отличается талантливый конденсатор от обычного? т.е. танталовый? в вашей ссылке?

    • @UCanDo
      @UCanDo  3 года назад +1

      Характеристики лучше,

  • @Ma_X64
    @Ma_X64 2 года назад

    Столкнулся с тем, что без батарейки генератор часов очень туго запускается. Иногда -- вообще никак не запускается. Да и вообще, драйверы кварцев у СТМок (возможно, только китайских) очень слабенькие -- еле-еле способны раскачать кристаллы. Кроме того, у ST-LINKов китайских часто вылетает HSE, и "свисток" превращается в тыкву. У знакомого уже целый пучок умерших валяется, у меня пока штуки три сдохло. Причём, всё остальное в нем работает, и от внутреннего генератора контроллер вполне можно тактировать.

  • @clora1136
    @clora1136 3 года назад +1

    Вот только похоже автор не пользовался такими часами. Дело в том что из за особенностей реализации драйвера кварца и неудачной топологии платы, а именно переходные отверстия в дорожках до кварца и отводы на пины PC14 PC15 часы показывают погоду, а не время. Надо минимум лишние отводы отрезать.

  • @DirectionToTheTop
    @DirectionToTheTop 4 года назад +2

    Досмотрел до слова "скетч". Дальше мне неинтересно. Думал, что тема про CubeIDE.

  • @Nevzoroff_
    @Nevzoroff_ 3 года назад

    Всё как обычно, видео интересное, практического применения нет...

  • @masterkit9517
    @masterkit9517 3 года назад +1

    ардуино поглотил STM32 ну и хорошо, что можно STM32 шить из ардуино, так как ардуино платы изжили себя, а их ПО лучшее что может быть, это супер, даже если некоторые возможности, это супер, привычно на ардуино многое, все ли там шьется как по маслу?

    • @totllb.b.3002
      @totllb.b.3002 3 года назад

      Вы ещё про ESP не слышали наверное.

  • @WhiteProgrammisto
    @WhiteProgrammisto 4 года назад

    Мило. Но всё же, ван лав - DS3231, хотя и она убегает в сторону на пару минут за месяц. NTP выручает =)

    • @TEENASPECT
      @TEENASPECT 4 года назад

      что-то у меня 3231 не убегает больше минуты в месяц. Опять же кварц кварцу - рознь.

    • @WhiteProgrammisto
      @WhiteProgrammisto 4 года назад

      @@TEENASPECT баг решается удалением индикаторного диода с готовых модулей. А так, она дико стабильная.

  • @_den_
    @_den_ 4 года назад +2

    Модная у тебя батарейка - Sony )

  • @geghzvryh1840
    @geghzvryh1840 4 года назад +1

    На сколько быстрый и оптимизированный код получается в arduino ide?
    Стоит ли начинать изучать стм32 с помощью этой ide, или лучше сразу обратиться к регистрам?
    И что будет быстрее, стм32 или есп32?

    • @UCanDo
      @UCanDo  4 года назад +2

      Преимущество Ардуино IDE только в легкости написания кода и тонны готовых библиотек.
      Готовый код получается громоздким и медленным (для AVR, о STM трудно судить).
      Какую среду выбрать - зависит от сложности проектов. Если планируете делать серьезные большие проекты, то лучше сразу начните изучать специализированную среду разработки.
      Что лучше STM32 или ESP32 - все зависит от конкретного проекта. К тому же есть STM32 которые «за пояс заткнут» даже Raspberry PI...
      Преимущество STM в большом количестве пинов, возможностью управления сложными устройствами (на пример дисплеями с параллельной шиной). У ESP32 меньше пинов, но зато есть WiFi, блютуз... У этих микроконтроллеров немного разные сферы назначения.

    • @geghzvryh1840
      @geghzvryh1840 4 года назад

      @@UCanDo
      Спасибо за ответ и за ваши видео, очень все качественно и главное по делу)

    • @TEENASPECT
      @TEENASPECT 4 года назад

      Код - мусор. Нет. Быстрее будет есп32. Да и там 2 ядра. По моим расчетам получается, что у СТМ32F103C8* около 158 MIPS. У самой слабой ESP32 заявлено 200MIPS и до 600 до самой мощной. Но тут некорректное сравнение, т.к. архитектуры разные в корне. В каком плане мощнее/слабее?

    • @geghzvryh1840
      @geghzvryh1840 4 года назад

      @@TEENASPECT в плане обработки сигналов, аналоговых например. Что больше подойдёт для больших проектов, с большим дисплеем например. И вроде ведь есть различные версии стм32 с разной вычислительной мощностью?
      Или может быть вообще стоит использовать разные связки контроллеров для достижения поставленной задачи?

    • @kalobyte
      @kalobyte 4 года назад

      стм32 для ардуины полное гавно
      в процентном соотношении даже сраный блинк жрет больше памяти, чем на 328 меге

  • @enderdragon4806
    @enderdragon4806 4 года назад

    В этой реализации дисплея пин ресет не используется, на самой плате он подтянут к +3.3 , но есть шилды где этот пин выеден, например на SPI версии.

    • @UCanDo
      @UCanDo  3 года назад

      В том то и прикол: ресет используется только для SPI. Зачем тогда его указывать при инициализации I2C интерфейса? Не понятно мне это...

    • @enderdragon4806
      @enderdragon4806 3 года назад

      @@UCanDo Для универсальности, один класс для обоих интерфейсов. А значит количество переменных должно быть одинаковым, просто в айтуси не используется эта переменная, но указывать нужно.

  • @Aleksandr_Sidorov
    @Aleksandr_Sidorov 4 года назад +2

    По существу это просто запустить проверить что есть такая возможность , на самом деле эти часы не просто так настроить , тут с регистрами нужно поковыряться , поснимать и повыставлять биты , в этой библиотеки от индусов я не уверен что все так как нужно , на сайте ST есть полное описание того как заводить эти часы и как ими пользоваться , это все честно дерьмо , через неделю убегут так что сам охренеешь

  • @Diger67
    @Diger67 4 года назад

    Если бы начали изучать контроллеры от ST серьезно, то знали бы о BackUp RAM. И что используя эту память можно запросто реализовать признак "часы установлены". Бросайте IDE Arduino. Пишите код в Keil или бесплатной IDE от ST. Тем более что Arduino кастрирует возможности stm32.

  • @YuriyIY
    @YuriyIY 4 года назад

    Самый главный косяк в RTC stm32f103c8t6, это отсутствие возможности работы с календарем. Можно это сделать программно, даже сохранять в флэш памяти, не вопрос. Но, при отключении питания на сутки или больше, время будет идти, да. Но дата останется датой, когда вы отключили питание. Так что, использовать "голубую пилюлю" для полноценных часов смысла нет. Если только для часов, то да. Там даже есть функция калибровки точности хода часов...

    • @UCanDo
      @UCanDo  4 года назад

      Как это дата не идёт? Ещё как идёт! Проверено.

    • @YuriyIY
      @YuriyIY 4 года назад

      @@UCanDo Давай, отключи питание в 23:59 и включи в 00:01. В процессоре c8t6 нет функций работы с календарём в принципе. Это всё надо делать программно.

  • @igordernovoy4093
    @igordernovoy4093 3 года назад +1

    Если беретесь за серьезные вещи, как STM32, то выкиньте из головы ваше Ардуино.
    На одних скетчах никогда не научишься программировать.

  • @user-mc1qd8sk7h
    @user-mc1qd8sk7h 4 года назад +1

    Спасибо я флпроговец но кайфую от видео класс

  • @masterkit9517
    @masterkit9517 4 года назад +1

    Может вы знаете как сделать миди

    • @WhiteProgrammisto
      @WhiteProgrammisto 4 года назад +1

      Миди можно мутить через отправку команд по Serial порту и приём их программами типа ttymidi на совместимой с ядром скорости, либо раскуривать как сделать midi-HID USB устройство, но мне не попадалось нормальных туториалов, пару лет назад искал. Нужно оталкиваться от задачи.

  • @kire6spirit
    @kire6spirit 4 года назад

    Спасибо! В свое время не хватало данной информации. Какая точность в данных часов, погрешность в месяц, год?

    • @UCanDo
      @UCanDo  4 года назад

      Точность зависит от качества кварца. Если китайцы поставят качественный кварц, то и часы будут идти точно.

    • @makstex
      @makstex 4 года назад

      @@UCanDo Как бы дешевле не вышло внешний ds3234 установить, то что точнее - точно.

  • @avi-crakhome2524
    @avi-crakhome2524 4 года назад +1

    Кхм, не практично. Часы конечно работать будут, но не радовать взгляд. Тут достаточно простая задача, не требующая большого количества ног мк, и его вычислительных способностей. Корпуса TSSOP-20 вполне достаточно, там есть F, G, и даже L серия за 40 центов.
    Часы без сенсора движения - деньги на ветер. Это-же практически бесплатный логгер присутствия человека в контролируемой зоне. Если сенсор будет микроволновым - то управлять часами можно через жесты, это намного проще чем нажимать малюсенькие кнопочки.
    Экран - любой с spi интерфейсом, потому как стационарные часы должны и обязаны работать от сети (время от батарейки).
    И всё это обязано закончится созданием ПП и корпуса для часов.
    Без адруино и пучка проводов.

    • @UCanDo
      @UCanDo  4 года назад

      В данном видео показано только то что STM имеют RTC. А как и где это применять - это уже личное дело каждого.

    • @TEENASPECT
      @TEENASPECT 4 года назад

      нууу, дядь. Придираешься. 1. Это макетка. 2. Тестовый стенд. 3. Демонстрация RTC. Тут не нужно выпендриваться и упрощать всё для ролика. Главное - показать. А уж в конечном девайсе - конечно же использовать не пушку нужно для стрельбы по воробьям, а что-то по-проще, надежнее и основательнее в сборке. Кто знает - тот понимает это.

    • @avi-crakhome2524
      @avi-crakhome2524 4 года назад

      @@TEENASPECT Я точно могу сказать, девайсы где ПП изготовлена под задачу (с распайкой мк) - не используют адруино.

  • @TiMbuilding
    @TiMbuilding 4 года назад +1

    У AlexGyver в одном из последних видео был скетч, в котором использовалось при прошивке время установленное на компьютере. Можно там глянуть как это сделано.

    • @UCanDo
      @UCanDo  4 года назад

      Можно конечно и так.

  • @maksdav9
    @maksdav9 3 года назад

    А библиотеку для RTClock.h где можно найти? в архиве с тестовыми скетчами её нет

    • @UCanDo
      @UCanDo  3 года назад

      Она есть в ядре STM32 для Ардуино

  • @НазарЛапатшо
    @НазарЛапатшо 4 года назад

    Привет а у тебя нет проблемы с отставанием часов ?У меня есть но проблему решил : каждый день в определённое время програмно добавляю пару минут.Что конечно не айс

    • @UCanDo
      @UCanDo  3 года назад +1

      Прошу прощения за задержку с ответом. Проблема может быть либо в низкокачественном кварце (его нужно заменить). Либо в неправильно настроенном источнике тактирования.
      По умолчанию идет тактирование от внутреннего генератора, а у него частота очень сильно плавает.

  • @zmeygavrilych
    @zmeygavrilych 4 года назад +1

    РЭсэт ))

  • @user-zp3qv8uq8d
    @user-zp3qv8uq8d 3 года назад

    Честно сказать тут мне не комфортно вести диалог с вами и на против мне вас учить не чему я люблю железо на камне и если полочный девайс то к внеш такт нет проблем но если это летает и катается то тут по внутреннему тактированию я располагаю больше.
    Вибрация вносит свои коррективы))

  • @user-rx4rp5yb5j
    @user-rx4rp5yb5j 4 года назад +6

    Дизлайк за то что не написал что это в Ардуино - я бы время не тратил

    • @sv-avtomatika
      @sv-avtomatika 4 года назад +2

      Лайк за то что в Ардуино

  • @vladilion90
    @vladilion90 Год назад

    Спасибо теперь я понял как это работает) давно искал как можно применить этот кварц часов),
    Но у меня есть тут проблема, как только я вызываю функцию rt.minute(); иличас или секунды, то у меня светодиод начинает быстро мигать и перестает вести отсчет, что-то сбивается

    • @vladilion90
      @vladilion90 Год назад +1

      А я нашел причину, тип числа должен был быть не byte a long и тогда все работает

  • @dontnow7598
    @dontnow7598 4 года назад

    че не понял но выглядит прикольно

  • @А.Ихалайнен
    @А.Ихалайнен 4 года назад

    Ну и как оно будет синхронизироваться с точным временем? Или никак, вручную корректировать надо? Я чего-то не понял?

    • @Константин_Зайцев
      @Константин_Зайцев 4 года назад +1

      так же как механические часы - вручную, или подключай плату для работы с интернетом по проводу или wifi, или ставь радиоприемник точного времени, GPS, GSM... Вариантов масса, но встроенными средствами никак. Проект часов из видео - никак, только перепрошивкой.

    • @А.Ихалайнен
      @А.Ихалайнен 4 года назад

      @@Константин_Зайцев, спасибо.

    • @А.Ихалайнен
      @А.Ихалайнен 4 года назад

      @@Константин_Зайцев, в коментах написали, что точность -1 в час (((. Баловство одно...

    • @UCanDo
      @UCanDo  4 года назад +1

      Для автоматической корректировки времени можно подключить плату ESP8266 и подключаться к NTP серверу, а с NTP сервера получать точные дату/время.
      Ну, или вручную устанавливать любым способом, кнопками, через Serial или как-то еще.

    • @UCanDo
      @UCanDo  4 года назад +1

      @Ruff точность зависит от установленного кварца

  • @slavaglow6933
    @slavaglow6933 4 года назад

    Есть ли в планах написать этот проект в CMSIS или в HAL?

    • @UCanDo
      @UCanDo  4 года назад

      Увы, просто не хватает времени изучать среду разработки для STM. Может в будущем буду делать нечто подобное, но это точно не скоро будет

    • @Pioneer271
      @Pioneer271 4 года назад

      Сейчас есть LL вместо HAL. Изучаю пока нравиться как низкоуроаневая библиотека.

  • @dizziisaturnalia3941
    @dizziisaturnalia3941 4 года назад

    А если нужен календарь? Можно ли брать время и дату с gps?

    • @UCanDo
      @UCanDo  4 года назад

      Календарь присутствует и работает. Посмотрите видео ещё раз.

  • @Константин_Зайцев
    @Константин_Зайцев 4 года назад

    А как у СТМ с точностью часов?

    • @UCanDo
      @UCanDo  4 года назад +1

      Зависит от качества кварца. Если китайцы поставят качественный кварц, то и часы будут идти точно.

  • @user-em4oz8ub5h
    @user-em4oz8ub5h 4 года назад

    Потдержевает ли календарь ?

    • @UCanDo
      @UCanDo  4 года назад +1

      Да, конечно.

  • @user-xz4wg9hq2c
    @user-xz4wg9hq2c 4 года назад

    А батарейка не будет быстро разряжаться ?

    • @UCanDo
      @UCanDo  4 года назад +1

      Батарейка используется только для поддержания хода часов. Новой батарейки хватит лет на 5. А может и больше.

  • @Nidvoraich
    @Nidvoraich 3 года назад

    У хорошего модуля часов реального времени есть измерение температуры для коррекции хода часов.
    Встроенные в стм часы быстро убегут

    • @Ma_X64
      @Ma_X64 2 года назад

      В часах СТМ есть программная коррекция. Пляски с температурой -- пустое, потому что никогда не предугадаешь, какой кварц пользователь поставит. К тому же, для бытовых целей такие заморочки не нужны, а для лабораторных приборов применяют иные техники. Например, термостатирование при повышенной температуре. Правильный путь для самоделки -- хранить время с доступной точностью + использовать какой-нибудь из способов автоматической синхронизации с эталонными часами.

  • @Slavchoo
    @Slavchoo 4 года назад +1

    Эхх, а где код Assembler?

  • @masterkit9517
    @masterkit9517 3 года назад +1

    ардуино курит бамбук в сторонке, да даже не бамбук а носки) да там отдельно стоили RTC модули, на выбор один на 3сек в сутки плавал, другой получше дороже чем STM32 STM32F103C8T6, очень не хватает для чайников дырявых уроков. Таким как я. После ардуино очень тяжело без уроков. Словно все воды в рот набрали, не хотят ничем делиться по теме STM32. Только жаль урок не в KEIL, а в ардуино не интересно уже с STM32 работать. Печалька. Урок хороший но фактически не для STM32 а для ардуино. Тема KEIL не раскрыта и куба. Ардуинщиков не выкорчевать из их ардуино. Жаль, но урок оказался бесполезен, так как нужно именно в KEIL объяснить как такое сделать. Неужели настолько никто ничего не знает.

    • @UCanDo
      @UCanDo  3 года назад +1

      Это палка о двух концах. Те кто реально изучают STM32 не нуждаются в уроках, так как изучают не самостоятельно, а в каком-то учебном учреждении. Самоучек по STM32 единицы. Именно тех, кто пытается осилить STM по даташитам, используя cmsis, stdperiph, Kail и т.д.
      И с примерами проблема именно в том что эти все примеры не могут быть применены любым пользователем. Из-за этого и с готовыми библиотеками проблема. Попробую пояснить на примере Ардуино. Среда Ардуино ИДЕ конфигурирует работу микроконтроллера (кода) всегда одним и тем же способом, и программист не имеет доступа к этим настройкам. Их можно изменить только если залезть в конфигурационные Файлы. Любая библиотека для Ардуино всегда создана с расчетом именно на эту неизменную конфигурацию МК. И по этому все методы библиотеки 100% будут работать почти на любой плате Ардуино. Что мы имеем:
      1) всегда одинаково сконфигурированный МК
      2) всегда одинаковые методы (функции) библиотек и примеров
      3) пользователь может применить это (почти) на любой плате Ардуино.
      Теперь попробуем сравнить это с STM32.
      Я даже не знаю с чего начать. Начнёт с того что существует примерно в 3-4 раза больше сред разработки для STM чем для AVR. Кому-то нравится одна среда, кому-то другая. Методы, Настройки, классы всюду разные. Применить код с одного проекта для другого не возможно. От слова совсем. Даже для одной и той же среды разработки, на пример Keil, есть несколько способов написания кода. И к тому же инициализация микроконтроллера у каждого программиста будет по-разному. По этому один и тот же код на одном МК заработает, а на другом вызовет ошибку. То же самое касается библиотек. Они написаны под конкретную конфигурацию МК, под конкретную методику программирования (stdperiph или cmsis как пример). А это все у каждого программиста своё. По этому найти пример, который у вас заработает без доработки очень и очень сложно. Именно из-за разнообразия сред разработки, языков, методов и нет хоть чего-то единого, что было бы общим для всех, что можно было бы использовать для изучения программирования. По этому изучать STM32 самостоятельно крайне сложно. Так как информации в сети очень много, а применить ее нельзя...
      По этому сейчас и возникают разные проекты по упрощению программирования STM. На пример интеграция в среду Ардуино. Или MBED.
      Я забросил изучать STM именно потому что в сложившейся обстановке самому изучать крайне сложно, и самостоятельно не получается подняться выше уровня новичка. Потому потому что: 1) мне не известно какие методики программирования являются устаревшими, а какие сейчас используются в первую очередь, по этому легко пойти по «неправильному» пути и просто потерять кучу времени. 2) На поиски информации и примеров уходит крайне много времени. Примеров много но применить их под свою методику программирования почти не возможно. То есть код нужно переписывать самостоятельно с нуля...
      Есть только несколько сред разработки которые упрощают написание кода. Это Ардуино ИДЕ и MBED. Кстати, очень рекомендую посмотреть в сторону MBED и попробовать ее в качестве среды для разработки.

    • @masterkit9517
      @masterkit9517 3 года назад

      @@UCanDo Спасибо большое! Вы правы, с STM32 совсем печалька, но уже освоившим ардуино стоит объединяться и общими силами развивать тему STM32. Понятно что способов множество, но повторять проекты возможно, если использовать одинаковые платы. И STM32 всё же важно развивать OPEN SOURCE проекты для обучения. Ардуино очень хорош, но не ардуино единым сыт человек, STM32 дополняет ардуино. Для себя решил изучать изучать и ещё раз много раз изучать STM32, что бы данный замечательный процессор не оставался в стороне, а создавались OPEN SOURCE проекты. аналогично, как командами ардуинщиков создано изменившие ход истории развитие ардуино. Ардуино это целый пласт истории, даже науки, бесценный вклад команд разработчиков создававших OPEN SOURCE на ардуино. Безусловно, ардуино все любят, но STM32 посовременнее, и как всё современное даже дешевле чем древние ардуино ATMEGA, это как старые компьютеры сравнивать STM32 и ардуино, по работе даже с STM32 разница с первой прошивки огромнейшая. Да и ардуинщики зачастую простенькие проекты делают, для STM32 достаточно просто заполнить сектор простеньких проектов, полньстью заместив ардуино, да даже в ARDUINO IDE его запускать. Важно не на какой среде написали STM32 прошивку, хорошо что и ардуино IDE их поддерживает, как родных, для многих хоть такой "принудительный" переход на STM32 состоится оставшись на ардуино IDE на более производительные микроконтроллеры. Есть версии 103й платы на 128к, это почти как MEGA2560 только в 2 раза меньше памяти, в ардуино работал всегда только с MEGA2560, но и UNO, Leonardo нравились, Leonardo самый нестабильный был, чуть не нравился код впадал в кому. Удавалось выкачивать через диспетчер устройств, и именно из за Leonardo было решено бежать от этих глюков подальше в STM32. Мощность не в пользу ардуино. В STM32 можно фаршировать столько кода, сколько влезет, а Leonardo впадал в кому, фактически если его было не откачивать камни погибали от передозировки кода, программировать их под завязку просто нельзя даже. На деле чуть не на 50% памяти если программировать Leonardo там возможно ожидать стабильность. Вообщем пуколка этот Leonardo был и pro micro. STM32 без вариантов единственная их даже не замена, а единственный пригодный мк.

    • @UCanDo
      @UCanDo  3 года назад +1

      Согласен, STM32 единственная альтернатива. И цена очень даже не плохая. Я несколько проектов делал используя платы BluePill (stm32f103c8t6). Памяти много, пинов тоже много, + встроенный RTC да и много других плюшек.
      Лично я для себя решил постепенно для STM32 переходить в среду MBED. Единственный минус этой среды в том что она «откусывает» приличный кусок памяти МК, но зато это официально поддерживаемая среда от ST.com. В общем, есть свои плюсы и минусы. Ещё из минусов все то же: мало примеров, мало документации мало готового кода..

    • @masterkit9517
      @masterkit9517 3 года назад +1

      @@UCanDo Главное всем совместно делать OPEN SOURCE, тем более опыт ардуино у многих огромнейший, эвристическим анализом, только многие уходят в заработки на этом, сходят с дистанции.

  • @user-zp3qv8uq8d
    @user-zp3qv8uq8d 3 года назад

    Добрый день. По вашим тропкам часы за ночь отстали на час и 10 минут((
    Если не прерывать питание от свд и не трогать ресет не смотря на 3VB то часы идут в ногу с внешним секундомером)
    Кнопки для настройки прикрутить и будет жить.

    • @UCanDo
      @UCanDo  3 года назад

      Здесь проблема скорее всего в том что неправильно указан источник тактирования для RTC. Если тактирование идёт от внутренней R-C цепочки или от кварца на 8 мГц, то такой результат как у вас вполне ожидаем.
      Источником тактирования нужно устанавливать внешний часовой кварц, тогда RTC будут идти верно. + не забудьте о батарейке для питания RTC.
      Есть ещё вероятность что у вас бракованный часовой кварц. Но так как у вас часы останавливаются как только отключается питание МК то это однозначно говорит о том что проблема не в кварце, а в том что неправильно выбран источник тактирования.

    • @user-zp3qv8uq8d
      @user-zp3qv8uq8d 3 года назад

      @@UCanDo Добрый вечер. Я юзал ваш скетч и кроме уарта не чего не удалял и ваш скетч работает до сих пор и было в начале +15 секунд и на сегодняшний час уже +6 секунд от часов что на ПК. У меня есть кварц в железе и думаю попробовать но в момент откл питания и нажатия кнопки ресет от внешней батареи нет смысла в плане что происходит задержка всего процесса на 1 сек и в итоге теперь +5. (+5 : девайс спешит от пк на 5 секунд ) Грубо говоря за 6 часов я отстал на 9 секунд и может быть это кварц или как обычно в иде бывает сама либа.
      Кеил с Иаром тоже не фонтан

    • @UCanDo
      @UCanDo  3 года назад

      Странно. Исходя из вашего первого сообщения по симптомам так будто неправильно выбрано тактирование, так как RTC STM32F103C8T6 зависит от источника тактирования и от питания. Питание должно идти от батарейки, а тактирование от часового кварца.
      Если эти настройки установлены верно, то ни подключение/отключение питания (общего) к плате, ни сброс микроконтроллера не должны влиять на поведение RTC! И, если не ошибаюсь, в большинстве случаев даже перепрошивка может не повлиять на работу модуля RTC.
      Но вот если тактирование идет от другого источника, или с питание что-то не так, то часы ведут себя неадекватно.
      Истолники
      И да, китыйцы могли поставить некачественный (не точный) кварц, из-за которого часы могут уходить.
      P.S. у меня была ситуация: брал новую плату BluePill, прошивал, проверял, RTC работает. Потом запаивал "гребенку", устанавливал в плату - не работает! Проблема оказалась в том что капелька флюса (не металла, а пасты) просочилась под кварц. Помогло только несколько раз промывание в спирте и в чистой воде. После этого заработало корректно. А до этого что только не делал - RTC работал криво.

    • @user-zp3qv8uq8d
      @user-zp3qv8uq8d 3 года назад

      @@UCanDo Может я сниму видео или обен вацап или телеги и я покажу что не на шаг не уходил от вашего проекта и в итоге то о чем я пытаюсь тут изложить.
      У меня есть знакомый которой в иар на хардкоре чистом С разраб прошивок на STM32/8 ваяет прошивки и при этом находит разницу за месяц и делает поправку одометра на каждый км пути.
      Я этим хотел сказать что и либа не причем иногда но и есть фактор того что в даташите и реле на железе не особо правдиво даже мне это напоминает Proteus где в в реале всё ок а на железе в реале её ещё неделю поиска заветной цифры((

    • @UCanDo
      @UCanDo  3 года назад

      Можете в моей группе в Телеграмм написать, может ещё кто-то подключится и поможет: t.me/HomeMadeChannel

  • @alexey-art-studio
    @alexey-art-studio 4 года назад +2

    Опыт показал, что точно слабовата у этих часов...

    • @UCanDo
      @UCanDo  4 года назад +1

      Точность зависит в первую очередь от кварца. Китайцы могут поставить кварцы ужасного качества. Недавно я делал одно устройство, так Часы шли в 6!!! раз быстрее.
      Это все решается заменой кварца на качественный

    • @SergeyKhmura
      @SergeyKhmura 4 года назад

      @@UCanDo
      Да, верно, с точностью в Ардуино ИДЕ все хреново, потому что используется не тот кварц, который установлен на плате, а тот, который имеется внутри самого контроллера - я это проверил опытным путем: тот же проект с часами сделал не в Ардуино ИДЕ, а через КубМХ в кеил. Сначала указывал использовать внутренний кварц - часы шли точно также неточно, как и в Ардуино ИДЕ. Потом поменял на внешний кварц, и ... О, чудо! Точность стала изумительной! Как изменить на внешний в Ардуино ИДЕ - я не разобрался

    • @UCanDo
      @UCanDo  4 года назад +1

      Тоже с этим столкнулся, но причина и решение оказались элементарными. Источник тактирования указывается при настройке RTC:
      RTClock rt (RTCSEL_LSE); // initialise
      где:
      LSE - тактирование от часового кварца
      LSI - тактирование от внутренней RC цепочки с частотой 4 МГц
      HSE - тактирование с частотой 8/128MHz = 62500 Hz, но что за источник - я не разбирался
      DEFAULT и NONE - отключение RTC
      По умолчанию во всех примерах стоит тактирование от внутренней RC цепочки с частотой 4 МГц (RTCSEL_LSI), а у этой цепочки частота жутко плавает.

    • @electronicsai
      @electronicsai 4 года назад

      Home Made - То, что ты можешь сделать
      1.LSI - Low speed internal - Внутренний низкочастотный генератор (RC цепь, 40KHz) 2. LSE - Low speed external - внешний низкочастотный генератор (часовой кварц, 32.768KHz) 3. HSE - high speed external - высокочастотный внешний генератор (8MHz кварц)

  • @evgeniygubar2434
    @evgeniygubar2434 2 года назад

    Кощунство программировать STM в ардуино ide

  • @volodyabesfamilnyy5428
    @volodyabesfamilnyy5428 4 года назад

    Где кнопки для установки времени? Так не интересно.

    • @UCanDo
      @UCanDo  4 года назад

      В видео показано только наличие RTC. Где и как вы его будете использовать - это уже каждый решает сам.
      А кнопки - прошлый век :) Надо обновляться от NTP сервера

    • @volodyabesfamilnyy5428
      @volodyabesfamilnyy5428 4 года назад

      Я всё понимаю. Но. Представьте что я подарю эти красивые часы своему корешу, живущему в другом часовом поясе. И что? А батарейка сядет через два года у него в деревне ? Вещи получаются красивые, но кнопочки хотелось-бы.

    • @UCanDo
      @UCanDo  4 года назад

      Повторюсь. В видео показано только один фактор.
      Это все равно что если бы я рассказывал о шинах, а от меня требовали машину...
      Если вам нужны кнопки - поставьте. Это ваш индивидуальный проект, с вашими индивидуальными потребностями. На канале 60000 подписчиков. Представьте если каждый потребует что-то своё, индивидуальное...

  • @seryginserg1122
    @seryginserg1122 Год назад

    на ардуино ФУ

  • @vseobovsem4387
    @vseobovsem4387 4 года назад

    Я сделал таймер 6 часов насос работает и 6 часов не работает на Arduino nano. Задал время
    unsigned long timer = 0;
    boolean flag = 0;
    unsigned long ON = 64800000; // 1000 миллисекунд в секунде * 60 секунд в минуте * 60 минут в часе * 18 часов
    unsigned long OFF = 21600000; // 6 часов
    void setup(){
    pinMode(17, OUTPUT);
    digitalWrite(17, 1);}
    void loop(){
    if(millis() - timer > OFF && flag == 0){
    timer = millis();
    digitalWrite(17, 0);
    flag = 1;}
    if(millis() - timer > ON && flag == 1){
    timer = millis();
    digitalWrite(17, 1);
    flag = 0;}}

    • @UCanDo
      @UCanDo  4 года назад

      Это самый неточный таймер в мире. millis, тем более в таком исполнении, очень сильно гуляет.

    • @vseobovsem4387
      @vseobovsem4387 4 года назад +1

      Home Made - То, что ты можешь сделать Я проверял. Реально работает, и тебе советую.

    • @user-rg5gd9td8w
      @user-rg5gd9td8w 4 года назад

      @@UCanDo Можно подробнее о таймере? Столкнулся с проблемой подсчёта ёмкости АКБ и именно на этой функции if(millis() - time было всё завязано и время и подсчёт емкости, приходилось подгонять миллисекунды иначе счёт с реальным и стартовым временем очень отличался!

    • @UCanDo
      @UCanDo  4 года назад +1

      Я и не спорю что не работает :)
      Я лишь хочу сказать что каждому примеру - свое место. Ваш пример для вас идеально подходит. И я вас поддерживаю, так как самое простое решение и есть самое лучшее. Я сам так часто делаю.
      Но использовать этот способ для точного подсчета времени нельзя, так как ошибка может составить до нескольких десятков минут за сутки. То есть вероятность ошибки и ее размеры непредсказуемы. И не учитывается сбой, который у вас произойдет при переполнении таймера, который подсчитывает millis();

    • @UCanDo
      @UCanDo  4 года назад

      @Евгений, на какой платформе это делаете? На Ардуино (Atmega328), или на STM32, или на чем-то другом? Для разных платформ - разные способы решения

  • @valeravolodarski7855
    @valeravolodarski7855 4 года назад

    К сожалению,точность -1 минута в час.Проверено на двух платах.

    • @А.Ихалайнен
      @А.Ихалайнен 4 года назад +1

      Ну и нафига они нужны. Баловство, игрушка.

    • @UCanDo
      @UCanDo  4 года назад +1

      Точность зависит от кварца. Если у вас часы настолько уходят, значит китайцы поставили бракованные кварцы. Замените их и все будет работать нормально

    • @valeravolodarski7855
      @valeravolodarski7855 4 года назад

      Можно ли подключить ds3231?Точность-секунды в год

    • @UCanDo
      @UCanDo  4 года назад

      Можно конечно.

    • @valeravolodarski7855
      @valeravolodarski7855 4 года назад

      А как?