TM1637

Поділитися
Вставка
  • Опубліковано 2 жов 2024
  • Модуль отображения информации на 4 семисегментных индикатора и символ двоеточия на микросхеме TM1637.
    Даташит на TM1637: drive.google.c...
    Пример использования модуля: drive.google.c...
    Скетч NetTime для ESP8266: drive.google.c...
    Скетч для ESP8266 и DHT11: drive.google.c...

КОМЕНТАРІ • 29

  • @IvanDorozhkin
    @IvanDorozhkin 7 років тому +2

    9:13 - на всякий случай проверил календарь.. )

  • @Редкиевидеороликипрокомпанетнт

    Здравствуйте уважаемый Автор проекта, очень понравилось Ваше видео!
    Сделайте пожалуйста видео о том как вывести в сериал и на TM1637 дисплей данные в виде float.
    Задача такова, вывести значение float что-бы значение нулей перед запятой можно было в коде менять от 0.00 до 00000.00 (для вывода в сериал) и на TM1637, то есть выводить разрядность не заполненных данными пустых нолей перед запятой, расскажите пожалуйста об этом подробнее как с этим работать в коде. вообщем нужно заполнять нулями сегменты если они ещё не заполнены данными. как это правильно сделать?
    Заранее благодарен.

    • @alexmorozov73
      @alexmorozov73  7 років тому

      Здравствуйте.
      Разочарую Вас, но подавляющее большинство дисплеев на TM1637 не имеют десятичных точек в разрядах, так что отобразить вещественные числа на них не получится, только целые или время. Я же даже дату извращался через дефисы выводить.
      С сериалом все просто - формируете нужное строковое представление числа хотя бы функцией sprintf и выводите.

  • @aigarsv3588
    @aigarsv3588 6 років тому

    Поясните пожалуйста, как работает этот кусок кода?
    if (start || (++startPos > datalen - 4))
    startPos = 0;
    tm.display((uint32_t)data[startPos] | ((uint32_t)data[startPos + 1]

    • @alexmorozov73
      @alexmorozov73  6 років тому +2

      В массиве data лежит анимация. Соответственно, передвигаем по массиву "окно" из 4-х байт в виде длинного целого и содержимое этого окна выводим на экран. Поскольку порядок байт для экрана не совпадает с порядком хранения в массиве, то переворачиваем байты перед передачей экрану.

  • @ЕвгенийМухаметов-я3н

    Можно ли в этом модуле поменять индикатор на более крупный, подключив его через транзисторы или какой нибудь драйвер нагрузок, например ULN2003

    • @alexmorozov73
      @alexmorozov73  7 років тому

      А чем вам MAX7219 не угодил? Зачем из копеечного модуля еще какого-то Франкенштейна городить?

  • @АлександрБакуревский

    Спасибо!

  • @Редкиевидеороликипрокомпанетнт

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

    • @alexmorozov73
      @alexmorozov73  7 років тому

      Очередной разряд = младший разряд;
      Цикл по количеству используемых цифр;
      Выводим в очередной разряд Число % 10;
      Число /= 10;
      Очередной разряд сдвигаем влево;
      Конец цикла.

    • @Редкиевидеороликипрокомпанетнт
      @Редкиевидеороликипрокомпанетнт 7 років тому

      Очень благодарен, спасибо, попробуем воплотить в жизнь ;)

  • @krepton85you
    @krepton85you 7 років тому

    Написал свой скетч на основе стандартного примера NTPClient, добавил только к ему вывод даты, а так же что бы время тикало даже оффлайн, на основе millis(), так вот почему оно не точно в оффлайне тикает, за минуты 2 начинает отставать уже на сек 3-4? Как такое может быть? Пускай даже в следующий раз оно обновляется позже (зависит от др. кода что постоянно вертится в loop) чем через заданных 10 сек но, все равно интервал ведь на основе millis() так же меняется и должно четко прибавляться к unix time секунды.

    • @alexmorozov73
      @alexmorozov73  7 років тому

      У меня расхождение было 1.5 сек. за сутки.
      Плохое питание? Глючный кварц в модуле?

    • @krepton85you
      @krepton85you 7 років тому

      да врят ли в питании дело, только в кварце разве что. Это я на плате NodeMCU все делаю, у меня в др. модуле esp-12E сделаны таймеры на основе millis() (без часов NTP, устанавливается периуд с точностью от 1 сек до 24 часов ) и как то все так четко работает - перед сном считаю сколько осталось спать, выставляю таймер, что бы после будильника через минутки 3 включилась розетка в которою воткнут wi-fi роутар и все четко срабатывает. :) Вот хотелось бы сделать на основе часов тоже самое, но как то стремно с такой не точностью :)

    • @alexmorozov73
      @alexmorozov73  7 років тому

      У меня модули Weemos D1 mini, причем только один родной, остальные клоны. И вроде нареканий на них не имею. Хотя DS3231 за 40 руб. да еще и с 4 кБ EEPROM с ресурсом в миллион стираний полагаю оптимальным вариантом.

    • @krepton85you
      @krepton85you 7 років тому

      Все я кожись понял в чем проблема, это кривое преоброзование интервала из миллисекунд в секунды. У меня миллисекунды делятся на 1000, но результат может быть не целочисленным.

    • @krepton85you
      @krepton85you 7 років тому

      и часть миллисекунд теряется. Что то нужно с этим делать, остатком миллисекунд, куда его пришить то к unix time?