Ну атмега328 вполне себе справляется с задачей преобразования аналога в ШИМ)))))))
Получать 16 битный ШИМ с частотой до 2 МГц можно и с ардуины, с Уны правда всего с двух пинов, на Меге кажется на 8 пинах. Есть одна хорошая библиотека которая позволяет делать такое))).
Кстати а почему именно лентами пользуетесь? Почему не мощными светиками или гирляндами обычных - с ними было бы все гораздо проще))) . Схем токовых драйверов с аналоговым управлением хватает, если с паяльником проблем нет можно собирать под свои запросы по напряжениям, токам и тп.
с токовым опять же заморочки - нужно подбирать мощность драйвера соответственно с мощностью ленты. если грузить его меньше положенного, диапазон диммирования резко сокращается пропорционально избытку мощности. например, если присоединить к 200W драйверу ленту на 100W, диммироваться она будет от 50 до 100%
Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.
alexey_and пишет:
конкретно в данном случае я хочу управлять маленькими лентами ватт по 7-10, токового драйвера с диммированием 0-10 на такую мощность я не нашел, минимум начинается от 70W
stakan1986, вы удивитесь, насколько просто считается максимальная частота шима :) Тактовая частота контроллера у нас 16 000 000 Гц. Что такое 16 бит шим? -это отсчитать таймером 65535 тактов процессора за полный цикл . Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )
stakan1986, вы удивитесь, насколько просто считается максимальная частота шима :) Тактовая частота контроллера у нас 16 000 000 Гц. Что такое 16 бит шим? -это отсчитать таймером 65535 тактов процессора за полный цикл . Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )
У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только понижает частоту.
Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.
у меня есть такие драйверы - там наблюдаются эти проблемы. да и интернеты эту инфу подтверждают
stakan1986 пишет:
Возвращаясь к теме, вопрос к Алексею - помогло ли от мерцаний программное усреднение считываемых значений?
У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только понижает частоту.
А еще есть регистры сравнения OCR, с которыми сравнивается счетный региср TCNT. Поэтому можно использовать таймер не по переполнению (8-битный 255, 16-битный 65535), а по совпадению. Т.е., прерывание таймера может срабатывать раньше, таким образом частота увеличится. Та даже если нет регистров сравнения OCR (например 8-битный Timer0 на Atmega8а), можно вручную писать некое число в TCNT, чтобы переполнение наступало раньше.
Вводите переменную х = 0, счетчикi = 0, считываете значение c аналогового входа и плюсуете его к х, значение счетчика i увеличиваете на 1. Если i != 10, повторяем считывание, еслиi ==10, то значение х делим на 10 и записываем в analogWrite, после чего обнуляем переменные и потворяем всё по новой. Да и задержку на сколько то миллисекунд в считываниях можно задать (не обязательно delay, можно через if (millis()=....))
ай ну это же просто среднее арифметическое находится из 10 слагаемых (сумма делить на колчичество), что ж тут жесткого. а счетчиком i, смотрим сколько раз мы суммировали измерение - если десять раз то и делим на 10, получаем среднее которое и задаем на выходе.
Ну атмега328 вполне себе справляется с задачей преобразования аналога в ШИМ)))))))
Получать 16 битный ШИМ с частотой до 2 МГц можно и с ардуины, с Уны правда всего с двух пинов, на Меге кажется на 8 пинах. Есть одна хорошая библиотека которая позволяет делать такое))).
Кстати а почему именно лентами пользуетесь? Почему не мощными светиками или гирляндами обычных - с ними было бы все гораздо проще))) . Схем токовых драйверов с аналоговым управлением хватает, если с паяльником проблем нет можно собирать под свои запросы по напряжениям, токам и тп.
Алексей!
Ну не страдайте ерундой! Ну есть же у вас управляющий сигнал 0-10в! Ну подайте его на управляющий вход любого параметрического стаба. И все!
Если хотите попрограммировать - сделайте преобразователь 10в в ШИМ на tiny восьминогой.
Для управления ИИП этого более чем достаточно. Для модуляции источника света - конечно мало. Тут многие люди путают эти понятия.
с токовым опять же заморочки - нужно подбирать мощность драйвера соответственно с мощностью ленты. если грузить его меньше положенного, диапазон диммирования резко сокращается пропорционально избытку мощности. например, если присоединить к 200W драйверу ленту на 100W, диммироваться она будет от 50 до 100%
Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.
Действительно, кинулся сейчас смотреть - в лоб 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
dimax,
Пользовался вот такой бибилиотекой - измерений конечно не проводил, ибо не на чем, но надеюсь автор не из пустого места придумал цифры
http://forum.arduino.cc/index.php?topic=117425.0
select2,
что-то мне кажется, что параматреческий стаб будет неплохо греться
что-то мне кажется, что параматреческий стаб будет неплохо греться
Ну он же параметрический! Будет греться точно так же, как и с любой другой регулировкой.
Импульсник, конечно будет греться меньше, но это гораздо сложнее сделать новичку.
stakan1986, вы удивитесь, насколько просто считается максимальная частота шима :) Тактовая частота контроллера у нас 16 000 000 Гц. Что такое 16 бит шим? -это отсчитать таймером 65535 тактов процессора за полный цикл . Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )
stakan1986, вы удивитесь, насколько просто считается максимальная частота шима :) Тактовая частота контроллера у нас 16 000 000 Гц. Что такое 16 бит шим? -это отсчитать таймером 65535 тактов процессора за полный цикл . Итого имееем 16 000 000 / 65535 =244 Гц. Для других разрядностей считаем по аналогии )
У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только понижает частоту.
dimax
Ну да, туплю((
Возвращаясь к теме, вопрос к Алексею - помогло ли от мерцаний программное усреднение считываемых значений?
Алексей, а с чего вы это решили? У меня есть опыт использования, который ваше замечание не подтверждает. Большинство драйверов, которые я видел, расчитаны на работу в пределах от 60 до 100% мощности. Это не зависит от того регулируемый драйвер или нет. Это обусловлено схемотехникой, а именно номиналом выходного дросселя.
у меня есть такие драйверы - там наблюдаются эти проблемы. да и интернеты эту инфу подтверждают
Возвращаясь к теме, вопрос к Алексею - помогло ли от мерцаний программное усреднение считываемых значений?
я не знаю как это сделать
У таймеров еще бывают предделители: таймер тогда может считать не на частоте процессора. Правда это только понижает частоту.
А еще есть регистры сравнения OCR, с которыми сравнивается счетный региср TCNT. Поэтому можно использовать таймер не по переполнению (8-битный 255, 16-битный 65535), а по совпадению. Т.е., прерывание таймера может срабатывать раньше, таким образом частота увеличится. Та даже если нет регистров сравнения OCR (например 8-битный Timer0 на Atmega8а), можно вручную писать некое число в TCNT, чтобы переполнение наступало раньше.
я не знаю как это сделать
Вводите переменную х = 0, счетчик i = 0, считываете значение c аналогового входа и плюсуете его к х, значение счетчика i увеличиваете на 1. Если i != 10, повторяем считывание, если i ==10, то значение х делим на 10 и записываем в analogWrite, после чего обнуляем переменные и потворяем всё по новой. Да и задержку на сколько то миллисекунд в считываниях можно задать (не обязательно delay, можно через if (millis()=....))
спасибо. жестковато пока для моего понимания, попробую разобраться, но не факт
ай ну это же просто среднее арифметическое находится из 10 слагаемых (сумма делить на колчичество), что ж тут жесткого. а счетчиком i, смотрим сколько раз мы суммировали измерение - если десять раз то и делим на 10, получаем среднее которое и задаем на выходе.