Как сделать ШИМ-у еще мельче шаг?

Тема в разделе "Arduino & Shields", создана пользователем Karabas, 28 фев 2016.

  1. Karabas

    Karabas Гик

    Как все мы знаем,в нашей Ардуинке есть шим со значениями от 0 до 255, что как бы удовлетворяет 99% потребностей обычного ардуинщика.
    Но вот понадобилось мне получить очень малые значения шима, нужно регулировать мощность от 0 до 1% хотябы с шагом 0.1% (и даже мельче), а от 1 до 100% хоть через 5%.
    Есть ли простой способ это реализовать, С таймерами работать не умею, с micros() не вышло, слишком долго исполняются команды и программый шим не получился. Городить что то аппаратное пока не хотелось бы.
    Может кто то может дать совет?
     
  2. Unixon

    Unixon Оракул Модератор

    Копайте в сторону 16-битного таймера. С каким МК работаете?
    Какая исходная задача? Может вам вместо подробного ШИМа честный ЦАП нужен...
     
  3. ostrov

    ostrov Гуру

    Простите, а чем отличается 16 битрый таймер от 8 битного на малых таймингах?
     
  4. noevile

    noevile Гик

    http://www.avdweb.nl/arduino/libraries/fast-pwm-dac.html тут пример как ардуиновский PWM разогнали до 10бит .. а вообще на хабре где-то статью видел вроде ещё больше разгоняли .. так что гугл в помощь :):):)
     
  5. Onkel

    Onkel Гуру

    разрешением. У 16 битного 16 бит, у 8 битного 8 бит. Независимо от таймингов, что бы вы этим словом не называли.
     
  6. Onkel

    Onkel Гуру

    используйте обычный шим (8 разрядов получите), RC (лучше LC) фильтр нч второго порядка и выход шима (уже после фильтра) пропустите через цап (тут вам 2-3 разряда должно хватить). Цап можно взять любой с непосредственным управлением. У меня например еще с совковых времен валяются 572ПА 8 разрядные, наверняка они содраны с какого -то оригинального изделия и есть и фирменные, и китайские. 2-3 разрядный цап в принципе можно сделать и самому на основе подобранной R2R матрицы, но это хлопотно.
     
  7. Onkel

    Onkel Гуру

    а может и не "вместо", а "вместе". 2-3-4 разрядный цап дал бы нужный шаг вблизи нуля.
    как-то несколько искусственно выглядит постановка задачи. Может поясните более широко, зачем вам 10 (или более) разрядный выходной сигнал?
     
  8. ostrov

    ostrov Гуру

    Что вы имеете ввиду под "разрешением"? Один и тот же интервал времени, например 1us, и в 8 битном и в 16 битном таймере длится 0x0F (при 16Mhz). На точности это никак не отражается.
     
  9. Onkel

    Onkel Гуру

    на точности шима, построенного на таймере, отражается.
    Под разрешением я имел в виду кратность одного отсчета, соответсвенно 1/256 при 8 битах и ~1/64 тыс при 16 битах, именно такое разрешение нам важно для шима, построенного на таймере.
     
  10. ostrov

    ostrov Гуру

    Можно вручную регулировать период импульса, то есть сделать не 256, а, например, в 10 раз больше - 2560, таким образом увеличив то самое разрешение в 10 раз. Разумеется, при этом пропорционально в 10 раз уменьшится частота. Впрочем, при 16Мгц она составит 6250Гц, что вполне прилично. При стандартной частоте шим 500Гц, период, он же разрешение, может достигать 32 000. Но для этого потребуется намного научиться работать с таймерами. Я бы посмотрел в сторону режима СТС.
     
  11. Onkel

    Onkel Гуру

    это только с 16 разрядным таймером, т.е таймером 1 - а он всего один.
    Кроме того, шим с такой скважностью будет труднее интегрировать (сглаживать).
     
  12. Karabas

    Karabas Гик

    Наверное стоит более внятно описать задачу.
    Нужно включать светодиодные индикаторы (цифровые и просто светодиоды) в двух режимах, с обычной регулеровкой яркости и сверхтусклой. Потому как даже при значении analogWrite 1 выжегает глаза.
    Это нужно для астрономических наблюдений и управления аппаратурой, просто после адаптации к темноте любой яркий свет недопустим (даже подсветка наручных часов вызывает "зайчики").
     
  13. Unixon

    Unixon Оракул Модератор

    Поэтому ШИМ-ить нужно на минимальном токе, а не на максимальном (номинальном). Т.е. вам нужен драйвер, который умеет и аналоговое диммирование через управление током светодиодов и ШИМ для модуляции на минимальном токе.
     
  14. Onkel

    Onkel Гуру

    вот, с этого бы начать....
    Чувствительность глаза ЛОГАРИФМИЧЕСКИЯ, поэтому уменьшение яркости фотодиода шимом даже до минимума дает лишь 48 дБ при диапазоне глаза более 280 ( впрочем у кого как) дБ. Поэтому вам бы предусмотреть, кроме шима, еще управляемый делитель , или два выхода шима , один через резистор, ослабляющий ток так, что освещение слабеет на два порядка. Впрочем, и предыдущий мой совет - поставить цап с R2R матрицей не отменяется. Словами понятно или схемку накидать?
     
    Karabas нравится это.
  15. Karabas

    Karabas Гик

    Cпасибо, все понятно. Этот ЦАП меня уже долго преследует, то-там то-сям... просто напасть какая-то :). Ну а идея с двумя выходами и делителем выглядит хорошо, думаю так и поступлю.