таймер

Тема в разделе "Глядите, что я сделал", создана пользователем akl, 10 июл 2017.

  1. akl

    akl Гуру

    решил пойти по пути наименьшего сопротивления, и для вывода значения на индикаторы использовал счетчик к176ие4. то есть он тупо быстро прощелкивает от нуля до нужной величины. Но тут внезапно и объявился прикольный баг - в момент вывода слегка помаргивали некоторые лишние сегменты. Это из-за того, что digitalWrite слишком медленный. Пришлось использовать для вывода значений прямой доступ к регистрам, он реально быстрый - не только сегменты не моргают, но без делея в 2 микросекунды даже микросхема не успевает среагировать. Считает секунды или минуты, моргает лампочками, пищит пищалкой. А еще оказалось, что у этой искры какие-то странные аналоговые пины А6 и А7 - не хотели подтягиватьтся к питанию как следует, пришлось использовать другие.

    [​IMG]
    [​IMG]
    [​IMG]

    Код дикий, но тем не менее работает. [​IMG]
     

    Вложения:

    • timer.txt
      Размер файла:
      5,2 КБ
      Просмотров:
      599
    Tomasina нравится это.
  2. Karabas

    Karabas Гик

    А зачем там счетчики, Ардуина волне может управлять семисегметником самостоятельно. Тем более с динамической индикацией.
    Не вижу упрощения с использованием счетчика, зачем? Ведь можно просто выводить значение в функции, а индикатор можно и на прямую и через 595 регистры, да хоть с мах7219 (хотя с последней нужно быто осторожным, если разрядов меньше четерех).
     
  3. akl

    akl Гуру

    Karabas, ну подключать индикаторы прямо к ардуине это моветон, да и ног может не хватить, есть же еще всякие кнопки, мигалки, пищалки. По уму конечно следовало использовать сдвиговый регистр, но т.к. я совсем не шарю в программировании, именно с точки зрения кода мне счетчики показались наиболее простым решением, тем более после того как наткнулся на соответствующую статью на вики http://wiki.amperka.ru/дисплеи-и-индикаторы:7-сегментный-индикатор
    но зато представился случай ознакомиться с методами убыстрения ног.

    Теперь меня интересует возможность обойтись без усилителей чтобы сэкономить место на плате. Насколько я понимаю у 74HC595 мощность тоже какая-то крошечная. Этот MAX7219 вроде годный, но тоже наверняка имеет какие-то подводные камни.


    о ошибку нашел. таймер не засекается при нажатии кнопки старт, поэтому отсчет стартует криво. надо вписать в эту кнопку засечку таймера.
     
    Последнее редактирование: 11 июл 2017
  4. Karabas

    Karabas Гик

    Ну, моветон- не моветон, а работает и ног с головой хватает, 74HC595 да, слабоват, но четерехразрядник работает без проблем, только нужно ток проконтролировать, чтоб спалось спокойно.
    MAX7219 же хорош, но для двух разрядов- жирновато.

    А что я вижу, таймер питается от Кроны через КРЕНку?
    risovach.ru.png
     
  5. akl

    akl Гуру

    а че такого? быстро будет сжирать батарейку? возможно. я когда начинал делать эту штуку не очень рассчитывал на практическое применение, но внезапно оказалось, что оная таки будет эффективно использоваться, даже код оптимизировал для этих прикладных нужд. Так что с радостью приму советы по оптимизации питания :)
     
  6. Karabas

    Karabas Гик

    Ну, тут либо импульсный преобразователь, либо другой источник питания.
    Я бы поставил три АА или ААА батарейки, либо внедрил бы туда дешевый повербанк на 18650 (уже с зарядником) по цене как пара Крон.
     
  7. akl

    akl Гуру

    подумал над разными вариантами впиливания аккумуляторов. придумал два неоптимальных варианта:

    1. взять два литиевых аккума + зарядник для них типа FDC-2S, и заряжать всю эту приблуду от ЮСБ через повышающий преобразователь (с каким-то ограничением тока)

    2. взять один литиевый аккум + ЮСБ-зарядник типа TP4056, и через повышающийпреобразователь питать схему.

    в первом варианте минусы - больше цена, для питания таймера все равно нужно понижение напряжения (хотя учитывая большую емкость литиевого аккума, можно забить на низкий КПД линейного стаба и оставить его)

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

    Tomasina Сушитель лампочек Модератор

    а зачем повышайка? Arduino работает от 2,8 В, индикатор от 2,5, пищалке вообще пофиг.
    Только К176ИЕ4 нужно 9 Вольт - значит его заменить на низковольтный аналог и все питать от одного аккума 18650, заряжать который будет вот такая платка за 29 руб.
     
  9. akl

    akl Гуру

    только гугл не обнадеживает наличием оных. так что думаю проще повышатель всунуть, они тоже недорогие.
     
  10. akl

    akl Гуру

    вставил аккумулятор и модули. теперь заряжается от юсб.

    [​IMG]

    и фирменный логотип [​IMG]
    [​IMG]
     
  11. akl

    akl Гуру

    продолжение таймера. теперь банановый на сдвиговых регистрах 74HC595. оные имеют хорошую мощность, что благотворно сказалось на компактности. кстати, предыдущему таймеру тоже уменьшил ток у индикатора, т.к. с 500ом резисторами он жрал под 200ма, сажая батарейку слишком быстро. заменил на 1,2 ком - теперь жрет вдвое меньше, но яркости вполне достаточно (даже можно еще уменьшить).

    [​IMG]
    [​IMG]


    бякокод (не вполне доделанный и такой же адовый как предыдущий, но вполне работает):
     

    Вложения:

    • timer2.txt
      Размер файла:
      6,8 КБ
      Просмотров:
      697
    Последнее редактирование: 21 июл 2017
    Securbond нравится это.
  12. akl

    akl Гуру

    и более компактный удобный корпус
    [​IMG]
     
  13. akl

    akl Гуру

    но на досуге решил поиграться:)
    всем фанатам коньтерстарйк посвящается

     
    Securbond нравится это.
  14. AndroT

    AndroT Guest

    Красиво вышло! :) :)