регулятор мощности
- Войдите на сайт для отправки комментариев
Вс, 17/05/2015 - 08:27
Помогите сделать красиво .
Есть мощный регулятор на ардуинке . 4х канальный . 4 переменный резистора и 4 мощных сиристора на выходе .
Вот кусок кода , который собственно мошностью на выходах управляет . Нагрузка ТЭНы , поэтому регулировка скважностью выхода .
Всё работает . Но не нравится вот какой момент . При совсем малых значениях мощности , все 4 канала включаются одновременно на короткий момент времени . сильная просадка сети , мерцание лампочек.
Помогите , как сделать красивее . Для 2х каналов я придумал . А вот для 4х ?
Программы последний раз писал 20 лет назад . (
int COUNT_POWER=31; // счётчик циклов
{ POWER1 = analogRead(POWER1_IN)/32; // читаем значения регуляторов переводим в 32 градаций . POWER2 = analogRead(POWER2_IN)/32; POWER3 = analogRead(POWER3_IN)/32; POWER4 = analogRead(POWER4_IN)/32; while (COUNT_POWER!=0){ if (POWER1>=COUNT_POWER){ digitalWrite(POWER1_OUT, HIGH); //15 } else digitalWrite(POWER1_OUT, LOW); if (POWER2>=COUNT_POWER) {digitalWrite(POWER2_OUT, HIGH); ;} else digitalWrite(POWER2_OUT, LOW); if (POWER3>=COUNT_POWER){digitalWrite(POWER3_OUT, HIGH); ;} else digitalWrite(POWER3_OUT, LOW); if (POWER4>=COUNT_POWER) { digitalWrite(POWER4_OUT, HIGH); ;} else digitalWrite(POWER4_OUT, LOW); COUNT_POWER=COUNT_POWER-1;
delay(5);
}
мало того что вообще не понятно чего он там собрал.. так еще и код выдрал откуда то кусок и ожидает что щас как накинется народ и напишет ему код... вот только не нужно начинать кричать что вы вообще сантехник и вот если бы у кого то поломался унитаз, то вы бы его починили дистанционо, и потому ожидаете что щас из вашего бредового обьяснения вам напишут код
Умничаешь ? ))
Код сам написал .
кусок , потому что там много лишнего наворочено . К вопросу заданному не касающещегося .
Если ничего не понятно , ну не вникай . Зачем это тебе ?
Умничаешь ? ))
Код сам написал .
кусок , потому что там много лишнего наворочено . К вопросу заданному не касающещегося .
Если ничего не понятно , ну не вникай . Зачем это тебе ?
пытаюсь вежливо обьяснить что в данном описании нет вообще ничего касающегося проблемы.. только обрывки мыслей.. и предостереч от поспешных истерик... но вы уже впали в истерику.. так что пойду за попкорном.
если ты что то не понял , возможно это не чужая беда .
НУ да ладно . Надеюсь на более адекватных участников форума
если ты что то не понял , возможно это не чужая беда .
НУ да ладно . Надеюсь на более адекватных участников форума
гыыыы, вот вы опять делаете ошибку всех новичков...
если вас не понимают, то это не проблема понимающих, это ВАША проблема как обьясняющего, потому что это ВЫ ищите помощь. а другим участникам форума ваши плохо обьясненые проблемы и нафиг не нужны...
ваш код тупо не будет компилироватся... и в формате ардуино он просто глупо написан...
а проблема , что мощность регулируется скважностью .
При малой мощности , все 4 канала включаясь одновременно на короткое время мусорят в сеть .
Хотеся время включения каналов сделать не одновременным , а со сдвигом .
гыыы так они и будут все включаться сразу,что им еще делать то...грубо все 31 цикла за полсекунды пролетают :)
вообще какой то странные метод включения обогревателей через замудреные циклы... проще вариантов не было?
Неожиданно . Я тоже это заметил .
если с 2мя каналами сделать не сложно . Один с начала цикла включать , второй наоборот в конце .
ТО как с 4мя поступать ?
задержку разную ставил . Проблема не исчезает . Одновременное включение 8 кw даёт изрядную помеху
может и было . Это вторая прога написанная для ардуины . Первой понятно светодиодом моргал по разному .
разную? а если сделать 50 000?
Проблема в одновременном включении каналов . есть поставить 50000 , помеха станет реже .
А вот если включать все 4 канала со сдвигом на четверть цикла . , то станет гораздо красивее .
Но код аккуратный придумать не могу .
Проблема в одновременном включении каналов . есть поставить 50000 , помеха станет реже .
А вот если включать все 4 канала со сдвигом на четверть цикла . , то станет гораздо красивее .
Но код аккуратный придумать не могу .
ГЫЫЫЫ опять сделали смешно...
что бы вчключать со сдвигом 4 канала. то нафиг такой огород вообще?
короче всё понятно с тобой )
Продолжаю надеятся , что тут адекватные люди есть .
короче всё понятно с тобой )
Продолжаю надеятся , что тут адекватные люди есть .
что именно ясно? то что вы больны на всю голову и расчитываете на халяву?
Это что за бред ?
Цель его написания ?
код должен регулировать мощность по каналам . Притом независимо и одноврменно .
код должен регулировать мощность по каналам . Притом независимо и одноврменно .
эт за счет чего и каким образом он там что то должен у вас регулировать? он вас тупа включает и выключает 4 обогревателя... что у вас на аналоговых входах творится и откуда приходит, даже в хрустальном шаре не видно.. может вам сначала форум экстрасенсов попробовать?
Ну понятно вникнуть в код сил и желания не хватило .
НА аналоговых входах меняется напряжение от 0 до 5
На цифровых выходах меняется скважность сигнала . Независимо
цикл для того и нужен .
За счёт этого мощность и регулируется . ( да , устройство работает нормально )
Ну понятно вникнуть в код сил и желания не хватило .
НА аналоговых входах меняется напряжение от 0 до 5
На цифровых выходах меняется скважность сигнала . Независимо
цикл для того и нужен .
За счёт этого мощность и регулируется . ( да , устройство работает нормально )
все нафиг убил сапсем...
напряжение меняется... скважность меняется... я так понимаю по основной специальности вы сантехник в ЦЭРНЕ? тип слова вумные слышал, а нафиг и к чему не понял?
судя по первому посту напряжение меняется перемеными резисторами :) и они то уж скважность выставляют :)
Брысь гуманитарий ))
Толку от тебя всё равно не никакого .
Резисторы , не резисторы. Хоть ЦАПами . какая разница то ?
Брысь гуманитарий ))
Толку от тебя всё равно не никакого .
Резисторы , не резисторы. Хоть ЦАПами . какая разница то ?
Дядь, ты дурак?
Попробуй напряги место куда еш.
Если на входе ничего не меняется. Или там диджей сидит и крутит все 4 регулятора в разные стороны под ритм барабанов?
А выход у тебя цифровой либо включено, либо выключено... какие скважности? какие регуляторы?
пояснб алгоритм регулировки .
В цикле счётчик COUNT_POWER уменьшается от 31 до 0
при исполнений цикла COUNT_POWER сравнивается с analogRead(POWER*_IN)/32 ну и включается , выключается цифровой выход .
Если на аналоговом входе 0 , то цифровой выход будет выключен постоянно . при 5v постоянно включен .
Промежуточные значения соотвественно .
Так вот например при analogRead(POWER3_IN)/32 = 1 , время включения будет 1/31 от нагрузки .
Но проблема в том что все выхода срабатывают одновременно .
Как разнести по времени ?
Puhlyaviy несмотря на все понты , примитивный кусок кода осознать и понять не смог . )))
int COUNT_POWER=128; // счётчик циклов
расечатать?
01
{
02
03
04
POWER1 = 0+analogRead(POWER1_IN)/8;
// читаем значения регуляторов переводим в 128 градаций .
05
POWER2 = 1+analogRead(POWER2_IN)/8;
06
POWER3 = 2+analogRead(POWER3_IN)/8;
07
POWER4 = 3+analogRead(POWER4_IN)/8;
Понял . Но проблемы то вовсе не решает .
Ещё раз проблему сформулирую .
вот дааграмма работы программмы ( не художник я )
Серым включение канала . Так вот при малой мощности все 4 канала включаются в конце цикла . Все вместе .
А вот что хочется что бы каналы включались со сдвигом на четверть цикла
мой пример как раз организует сдвиг включения между каналами.
Да , но сдвиг меньше процента . А хочется 25%
Или недопонял ?
можно таким способом организовать межканальный сдвиг на 25% (ранее про 25% ничего не говорилось):
09
while
(COUNT_POWER!=0){
10
if
(POWER1>=(COUNT_POWER+0) mod 32){ digitalWrite(POWER1_OUT, HIGH);
//15
11
}
12
else
digitalWrite(POWER1_OUT, LOW);
13
if
(POWER2>=(COUNT_POWER+8) mod 32) {digitalWrite(POWER2_OUT, HIGH);
14
;}
15
else
digitalWrite(POWER2_OUT, LOW);
16
if
(POWER3>=(COUNT_POWER+16) mod 32) {digitalWrite(POWER3_OUT, HIGH);
17
;}
18
else
digitalWrite(POWER3_OUT, LOW);
19
if
(POWER4>=(COUNT_POWER+24) mod 32) { digitalWrite(POWER4_OUT, HIGH);
20
;}
21
else
digitalWrite(POWER4_OUT, LOW);
22
COUNT_POWER=COUNT_POWER-1;
Так вот если бы Puhlyaviy из вас клещами не вытащил чего вы хотите, ни кто бы вам не помог...
И почитайте что такое массив (array) и цикл for, тогда ваш код уменьшится в 4 раза.
Можно пояснить что такое mod ?
Как это работает , не могу понять .
Про массив спасибо . Не знал что такое есть )
http://arduino.ru/Reference/Modulo
надо вникать . не понимаю пока
Вот что в этой строке происходит ?
(POWER2>=(COUNT_POWER+8) mod 32)
код maksim пока понимаю лишь частично )))
Спасибо всем .
Ой! Не ожидал такого от тебя ))))
Вот что в этой строке происходит ?
(POWER2>=(COUNT_POWER+8) mod 32)
попробуй нарисовать на бумаге в клетку циклограмму работы всех 4х каналов, для случая когда power1=power2=power3=power4= 10
что происходит описано в мануале:
x = 7 % 5;
// x имеет значение 2
x = 9 % 5;
// x имеет значение 4
x = 5 % 5;
// x имеет значение 0
x = 4 % 5;
// x имеет значение 4
Ой! Не ожидал такого от тебя ))))
компилятор сам деление заменит на сдвиг, -0 отбросит. А человеку с его аналоговым мозгом проще для понимания.
Ой! Не ожидал такого от тебя ))))
компилятор сам деление заменит на сдвиг, -0 отбросит. А человеку с его аналоговым мозгом проще для понимания.
мало того, он код еще и самостоятельно в двоичный код переведет.
rencom! А то, что такие нагрузки рекомендуется коммутировать в момент перехода синусоиды через ZERO, вы никогда не слыхали? И никаких циклов + счастливые соседи.
Слышали конечно . И прежняя схема аналоговая так и работала .
Но во первых реализация хлопотная будет . точной синхронизации добится будет сложно при 4х каналах .
И что важнее переключение через 0 сейчас реализовано в ключах силовых ))) Так и проще , так и надёжней .
Помеха была не тиристорная , а от просадки сети .
Но вообще , если чисто академически , интересно конечно . как в коде реализовать .
Это здесь . Ваши потенциометры надо будет привести к диапазону 0-254 . На 8кВт не пробовал, 1-2 суммарно работают без проблем.
bwn ...........рекомендуется коммутировать в момент перехода синусоиды через ZERO, вы никогда не слыхали?........
Сейчас тяжелее найти готовые SSR которые позволяют фазовое управление чем "обычные",
где детектор нуля из серии "всё включено в комплекте"
Помех не будет
А использовать фазное регулирование для нагревателей с их инерцией....
Уж лучше за копейки ПИД контроллер купить готовый.....
Сейчас тяжелее найти готовые SSR которые позволяют фазовое управление чем "обычные",
где детектор нуля из серии "всё включено в комплекте"
Помех не будет
А использовать фазное регулирование для нагревателей с их инерцией....
Уж лучше за копейки ПИД контроллер купить готовый.....
Таки у ТС освещение(((. Чем ему ПИД и SSR помогут? Да и ПИД за 150-200 российских вряд ли найдете.
Таки у меня тэны )
Пардон, зарапортовался))). Тогда действительно не прав((((
Выбор огромный.
http://www.aliexpress.com/item/Dual-Digital-RKC-PID-Temperature-Controller-REX-C100-with-thermocouple-K-Relay-Output/638549196.html?spm=2114.32010308.4.11.dpxwiT
Или похожие. Этот под реле. Есть только под термопару, есть с платиновыми пт100.
Есть под SSR.
http://www.aliexpress.com/item/48-48mm-RKC-digital-Temperature-Controller-Thermocouple-RTD-Input-SSR-Output-Free-shipping/596001171.html?
Что в них вкусного усть- режим автоматической насторойки коэффициентов.
И датчики любых форм-размеров: болты, трубки,зонды, трубочки (PT100)