led диммер 0-10в

stakan1986
Offline
Зарегистрирован: 17.02.2015

Ну атмега328 вполне себе справляется с задачей преобразования аналога в ШИМ)))))))

Получать 16 битный ШИМ с частотой до 2 МГц можно и с ардуины, с Уны правда всего с двух пинов, на Меге кажется на 8 пинах. Есть одна хорошая библиотека которая позволяет делать такое))).
Кстати а почему именно лентами пользуетесь? Почему не мощными светиками или гирляндами обычных - с ними было бы все гораздо проще))) . Схем токовых драйверов с аналоговым управлением хватает, если с паяльником проблем нет можно собирать под свои запросы по напряжениям, токам и тп.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

stakan1986 пишет:
Получать 16 битный ШИМ с частотой до 2 МГц можно и с ардуины,

  Масимальная частота ШИМ в 16-бит режиме - 244 Гц. Это конечно безусловно попадает в рамки "до 2Мгц", но всё же лучше называть вещи своими именами :)

select2
Offline
Зарегистрирован: 31.10.2012

Алексей!

Ну не страдайте ерундой! Ну есть же у вас управляющий сигнал 0-10в! Ну подайте его на управляющий вход любого параметрического стаба. И все!

Если хотите попрограммировать - сделайте преобразователь 10в в ШИМ на tiny восьминогой.

select2
Offline
Зарегистрирован: 31.10.2012

dimax пишет:
Масимальная частота ШИМ в 16-бит режиме - 244 Гц. Это конечно безусловно попадает в рамки "до 2Мгц", но всё же лучше называть вещи своими именами :)

Для управления ИИП этого более чем достаточно. Для модуляции источника света - конечно мало. Тут многие люди путают эти понятия.

select2
Offline
Зарегистрирован: 31.10.2012

alexey_and пишет:

с токовым опять же заморочки - нужно подбирать мощность драйвера соответственно с мощностью ленты. если грузить его меньше положенного, диапазон диммирования резко сокращается пропорционально избытку мощности. например, если присоединить к 200W драйверу ленту на 100W, диммироваться она будет от 50 до 100%

Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.

alexey_and пишет:
конкретно в данном случае я хочу управлять маленькими лентами ватт по 7-10, токового драйвера с диммированием 0-10 на такую мощность я не нашел, минимум начинается от 70W

Действительно, кинулся сейчас смотреть - в лоб 10 ватного регулируемого не нашел. Но есть у Ирбиса, например, 40-ватники с регулировкой, серии А220Т_С_М07 например. Стоят сейчас меньше 500 рублей. Или сделайте сами на hv9910 - примеров в сети море. Например: http://we.easyelectronics.ru/power-electronics/istochnik-toka-dlya-moschnyh-svetodiodov-s-pitaniem-ot-seti-220-v-50-gc.html

stakan1986
Offline
Зарегистрирован: 17.02.2015

dimax,

Пользовался вот такой бибилиотекой - измерений конечно не проводил, ибо не на чем, но надеюсь автор не из пустого места придумал цифры

http://forum.arduino.cc/index.php?topic=117425.0

select2,

что-то мне кажется, что параматреческий стаб будет неплохо греться 

select2
Offline
Зарегистрирован: 31.10.2012

stakan1986 пишет:
select2,

что-то мне кажется, что параматреческий стаб будет неплохо греться 

Ну он же параметрический! Будет греться точно так же, как и с любой другой регулировкой.

Импульсник, конечно будет греться меньше, но это гораздо сложнее сделать новичку.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

stakan1986,  вы удивитесь, насколько просто считается максимальная частота  шима :) Тактовая частота контроллера у нас 16 000 000 Гц.   Что такое 16 бит шим?  -это отсчитать таймером  65535 тактов процессора за полный цикл .  Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )

select2
Offline
Зарегистрирован: 31.10.2012

dimax пишет:

stakan1986,  вы удивитесь, насколько просто считается максимальная частота  шима :) Тактовая частота контроллера у нас 16 000 000 Гц.   Что такое 16 бит шим?  -это отсчитать таймером  65535 тактов процессора за полный цикл .  Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )

У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только  понижает частоту.

stakan1986
Offline
Зарегистрирован: 17.02.2015

dimax

Ну да, туплю((

Возвращаясь к теме, вопрос к Алексею - помогло ли от мерцаний программное усреднение считываемых значений?

alexey_and
Offline
Зарегистрирован: 03.03.2013

select2 пишет:

Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.

у меня есть такие драйверы - там наблюдаются эти проблемы. да и интернеты эту инфу подтверждают

stakan1986 пишет:

Возвращаясь к теме, вопрос к Алексею - помогло ли от мерцаний программное усреднение считываемых значений?

я не знаю как это сделать

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

select2 пишет:

У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только  понижает частоту.

А еще есть регистры сравнения OCR, с которыми сравнивается счетный региср TCNT. Поэтому можно использовать таймер не по переполнению (8-битный 255, 16-битный 65535), а по совпадению. Т.е., прерывание таймера может срабатывать раньше, таким образом частота увеличится. Та даже если нет регистров сравнения OCR (например 8-битный Timer0 на Atmega8а), можно вручную писать некое число в TCNT, чтобы переполнение наступало раньше.

stakan1986
Offline
Зарегистрирован: 17.02.2015

alexey_and пишет:

я не знаю как это сделать

Вводите переменную х = 0, счетчик i = 0, считываете значение c аналогового входа и плюсуете его к х, значение счетчика i увеличиваете на 1. Если  i  != 10, повторяем считывание, если  i ==10, то значение х делим на 10  и записываем в analogWrite, после чего обнуляем переменные и потворяем всё по новой. Да и задержку на сколько то миллисекунд в считываниях можно задать (не обязательно delay, можно через if (millis()=....))

 

alexey_and
Offline
Зарегистрирован: 03.03.2013

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

stakan1986
Offline
Зарегистрирован: 17.02.2015

ай ну это же просто среднее арифметическое находится из 10 слагаемых (сумма делить на колчичество), что ж тут жесткого. а счетчиком i, смотрим сколько раз мы суммировали измерение - если десять раз то и делим на 10, получаем среднее которое и задаем на выходе.