74hc595, mosfet n и плавное включение светодиодных лент
- Войдите на сайт для отправки комментариев
Чт, 12/01/2017 - 09:27
Добрый день. Выходы 74hc595 управляют мосфетами, которые в свою очередь питанием лент. Подскажите можно ли отдельно управлять плавным включением каждой ленты? Читал, что можно реализовать это программно, но примеров не нашел.
Успеет ли регистр шим выводить? А так-то можно. Надо как-то сколько времени уходит на отправку в регистр байта. И сколько раз это можно сделать в секунду.
А вообще, посмотрите в сторону микросхем MBI5026 и подобных (с др. цифрами) . В сущности, это тот же сдвиговый регистр, только какая-то из серии умеет регулировать яркость, получая ШИМ с контроллера на вход защёлки (LE).
Добрый день. Выходы 74hc595 управляют мосфетами, которые в свою очередь питанием лент. Подскажите можно ли отдельно управлять плавным включением каждой ленты? Читал, что можно реализовать это программно, но примеров не нашел.
Можна. Но сложно. Нужно:
1. переменная для хранения текущей фазы периода вывода ШИМ
2. массив для хранения ШИМ по каждому каналу. Считаем что при п.1 равной 0 все каналы устанавливаем в 1 а по достижению п.1 каждого значения из этого массива соответствующий канал сбрасывает в 0.
3. Функция которая по пп.1,2 возвращает время до ближайшего момента сброса канала в 0. Если уже все сброшены то время до завершения цикла ШИМ.
4. Прерывание аппаратного таймера, которое настраиваем на формирование интервала п.3
5. Обработчик прерывания, который на основе п.1,2 определяет данные для сдвигового регистра и задвигает их туда. Затем п.3 для следующего своего вызова.
6. Оптимизировать код по скорости максимально возможно.
7. Регулировка шима тоже не проста. Если есть возможность ждать чтоб порегулировать канал в момент когда он в 0, то легко, иначе артефакты полезут, но только в период, когда делается регулировка.
Регистр успеет, можна писать ногодрыгом, можна аппаратно через SPI. Вобще я делал ногодрыгом, но сейчас глянул в код, там аппаратно через SPI. Когда менял - не помню ))) Надо помехозащищенность хорошую обеспечить, на высокой скорости регистр нахватать помех может.
Я пользуюсь этим. Оно реализует не ШИМ а БВМ, это для светодиодов одно и то же.
Не работает на Atmega8 и 128. На программном SPI (любые порты под MOSI/SCK вместо штатных D11/D13) работает в 2.5 раза медленнее, соответственно ограничения усиливаются в 2.5 раз. Ограничения - до 768 каналов вкл/выкл, до 384 с двухбитной модуляцией (0%, 33.333%, 66.666%, 100%), до 192 с четырёхбитной и т. д.
Не использовать для серво и двигателей, им такой сигнал не нравится.
Выглядит вот так:
Не использовать для серво и двигателей, им такой сигнал не нравится.
И мне этот сигнал не нравится, мосфеты слишком часто переключаются. Некошерная модуляция.
10 кГц это для любого IR со сверхнизким Rds(on) всё равно что зима, ему посрать. Был бы мегагерц, тогда понятно.
Зима на Уране, кстати, длится 42 года. Земных, ессно.
Причем тут Уран, зима и Rds?
Проблема в динамической составляющей потерь, она от Rds вобще никак не зависит (от Урана и зимы тоже). Зато зависит от числа переключений в единицу времени. И в этом BAM она в разы выше, на рисунке в 3 раза. Может и больше быть. Просто так греть мосфет не надо. К чему это приведет - зависит от конкретной задачи. Может и не к чему, может к необходимости радиатора или увеличения его площади, может потребует другой мосфет. Конкретно считать надо. Но можно избежать проблемы просто делая нормальный ШИМ.
Уверяю, на таких частотах эти разы - что студентке членом по голове постучать - она привыкла, в отличие от школьниц всяких. И перестань на зиму гнать, я люблю метафоры :)