Кто может нарисовать фазо - импульсное управление пропусков периодов
можно поискать Леонид Иванович Ридико, вроде регулятор мощности, тут что то скопипащено: http://trolsoft.ru/ru/articles/bresenham-algo Когда то делал безпомеховый регулятор для тэна с шимом и полевиком (меги есть с 6 шим), неудобство - надо выпрямлять и сглаживать хорошими конденсаторами сетевое напряжение
Уважаемый ATMEL86, если хотите просто реализовать управление нагревом тенов, то совсем не стоит заморачиваться сложными алгоритмами, как сказал товарищ Z_h_e(и я с ним обсолютно согласен): "В простейшем случае берете твердотельное реле с детектором нуля" ну или если хотите, можно взять симистор и оптопару(например MOC3063) с детектором нуля выйдет что то аналогичное твёрдотельному реле, и управляйте шимом. Поскольку тены настолько инерционная нагрузка то эти пульсации никто не заметит, а за счёт детектора нуля не будет "звона" в проводах как при использовании диммера.
Конечно крайне мало данных чтобы что-то посоветовать.
Пол периода это 10 мс или 180 градусов. Допустим будем регулироваться с дискретностью 100мкс или 1,8 градуса. Т.е. поделим полупериод на 100 частей. При тактовой частоте 16 МГц за 100мкс МК выполнит 1600 однотактовых команд. Это приличное число, т.е. между этими точками МК может заняться спокойненько другим вещами. Эти точки дисретизации условно нумеруем от 0 до 100.
Запускаете таймер в режиме СТС и настраиваете прерывание так, чтобы оно вызывалось каждые 100мкс. Так же настраиваете внешнее прерывание от детектора фазы.
Для каждого канала задается точка включения (фаза включения симистора), например по UART или как то еще. Ну видимо 6 переменных для 6 каналов. В прерывании от детектора: сброс таймера и обнуление счетчика текущей дискретной точки (текущей фазы) на полуволне. В прерывании от таймера: инкремент счетчика дискретных точек; если счетчик совпадает с заданием, то соответствующий порт включается иначе выключается.
Не знаю насколько понятно написал и надо будет конечно учесть кой-какие нюансы. Например, не увеличивать счетчик больше какого-то числа, можно останавливать таймер при фазе больше 160 градусов и запускать снова по детектору, учесть что детектор может быть чуть раньше или позже фактичего перехода через ноль и т.д.
Привет всем!
Вот кое что у меня получилось...
Правда в прерывании таймера0 задержки delay_us(30); что очень плохо
подскажите альтернативу delay_us, сделать на том же таймере0
Код:
unsigned char out_1=0, out_2=0, out_3=0, out_4=0, out_5=0, out_6=0; bit na,nb,nc,nd,ne,nf;
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
этот код следует тщательнейшим образом причесать, в таком виде это неприемлемо. 1. счетчик один, фазы каналов в массиве. инкрементируете один счетчик, сравниваете с массивом в цикле. 2. не надо задержек. импульс формируете по условию ЕСЛИ РАВНО. таким образом, в прерывании если счетчик фазы совпадает с фазой канала, выход порта включается. в следующее прерывание счетчик уже не будет совпадать, и выход канала выключится - получится импульс (хоть и не 30 мкс, но это не важно) 3. раз все выходы каналов на одном порту, заведите отдельную переменную и устанавливайте в ней биты, а затем выводите сразу в порт эту переменную, обновляя состояние одновременно всех 6 выходов - так исключите джиттер фазы.
это первое, что пришло на ум.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
PhaseCount++; if (PhaseCount>PhaseLimit) {Tim0Stop;}
else { if (PhaseCount==PhaseCh[0]) BufPort|=ch0; if (PhaseCount==PhaseCh[1]) BufPort|=ch1; if (PhaseCount==PhaseCh[2]) BufPort|=ch2; if (PhaseCount==PhaseCh[3]) BufPort|=ch3; if (PhaseCount==PhaseCh[4]) BufPort|=ch4; if (PhaseCount==PhaseCh[5]) BufPort|=ch5; }
Привет всем! я изучил программу уважаемого Z_h_e и я понял, что ввёл всех в заблуждение!!! я ни слова не сказал что, все 6 - каналов будут динамически регулироваться кнопками +/- (возможно от термодатчиков) в под программе будет инкремент\ декремент значения каждой по отдельности переменной out_1;2;3;4;5;6 я ещё раз извиняюсь.
Заголовок сообщения: Re: 6-ти канальный Диммер или регулятор мощности на мк atmeg
Добавлено: Пн авг 21, 2017 06:15:43
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Я думаю что никто не предполагал о статичном режиме работы. Я просто показал возможную реализацию. Никто Вам не мешает добавить кнопки, дисплеи и другую периферию.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Число-импульсное регулирование мощности тенов можно реализовать с отсечкой в 100 периодов сети 20мс. У меня в устройстве с аналогичным типом управления полный период 2 секунды делится на поканальное разравнивание в зависимости от установленной мощности и дополнительное разравнивание между каналами с целью выравнять мощность потребляемую от сети.
Код:
#define us100 (F_CPU/64*0.0001)// значение таймера, до которого досчитает до 100 мкс
Таймер отсчитает не 100, а 104мкс. Правильнее
Код:
#define us100 (F_CPU/64*0.0001-1)// значение таймера, до которого досчитает до 100 мкс
Заголовок сообщения: Re: 6-ти канальный Диммер или регулятор мощности на мк atmeg
Добавлено: Пн авг 21, 2017 09:21:03
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
akl писал(а):
Таймер отсчитает не 100, а 104мкс.
Я эту ошибку у себя потом увидел. Прикинул что при ограничении 91, за период вылезти не должно (конечно еще зависит от детектора). Лень было уже потом телефоном исправлять. Не сомневался, что именно Вы на нее укажете , честно сказать, думал это произойдет раньше, видимо из-за воскресенья произошла задержка .
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения