Регулятор напряжения и тока на Arduino Pro Mini
![](https://cdn.homedistil.ru/th/1507/23/32985.164635.jpg)
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Так-то если вспомнить форму полупериода +-150мкс в начале или в конце вообще похер, проверено экспериментами с мощнометром. Я по прерыванию нуля еще кое-какие проверки в том же прерывании успеваю сделать - ни на что не влияет. Таймер триака взвел и смело можно еще микросекунд 100 ковыряться.
sevpro
Доктор наук
Worldwide
769 281
Отв.361 19 Апр. 17, 10:28
woddy, принципиально на твоей плате два резистора отличаются, они зависят от коэфф передачи по току транзистора и тока оптрона. Я R3(по схеме) по сравнению с указанным уменьшаю где-то до 100-150ком для надежного открытия.
приведи код "компесации" нуля.m16, 18 Апр. 17, 22:31Да ну, какой код?)) Прерывание по спаду и к загружаемому в таймер добавляешь половину ширины импульса.
будь любезен конкретно с цифрами .m16, 18 Апр. 17, 22:31Надергал из даташита, посмотри.
она (оптопара) излучает сплошной негативm16, 18 Апр. 17, 22:31где я это говорил? Наоборот, написал, что для неответственных применений вполне сносно работает. Резистор только нужно правильный подобрать.
сообщения удалены (2)
woddy
Доцент
Новосиб
1.3K 489
Отв.362 23 Апр. 17, 20:40
ну не на 20% же... попробую сам пересчитать
m16
Модератор
Тамбов
1.9K 1K
![](https://cdn.homedistil.ru/th/1304/21/10604.161037.jpg)
Отв.363 23 Апр. 17, 21:25, через 45 мин
20% конечно дофига. у меня с таблицей получалось +/- 5в. ну и вопрос: а как точно контроллер считает среднеквадратичное? я , например, пользуюсь внутрисхемным отладчиком - драконом и могу в реалтайме сравнить измеренно-посчитанное rms контроллера с реальным. стоит проверить этот момент, например выводя отладочную информацию через уарт если нет отладчика.
gikrus
Кандидат наук
Пермь
384 400
Отв.364 24 Апр. 17, 09:16
У меня такая же ерунда. Значения выставляемого напряжения отличаются на 20 вольт, если входное выставляешь правильно. Мерял осциллографом RIGOL. У него есть функция rms измерения. Искажения вносит скорее всего диодный мост. На нём падение около одного вольта. Может минимизировать искажения применяя трансформатор 1:1? Тогда по отношению к напряжению выпрямленной полуволны падение на диодном мосту будут несущественными? Заказал у китайцев вот такую штуку
https://ru.aliexpress.com/...0608.0.0.Qmb1mI , надеюсь это поправит ситуацию. Через пару недель придёт, попробую.
https://ru.aliexpress.com/...0608.0.0.Qmb1mI , надеюсь это поправит ситуацию. Через пару недель придёт, попробую.
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.365 24 Апр. 17, 09:35, через 19 мин
собрал схему на измерительном трансе от бесперебойника, у него 2 выходные обмотки, одинаковые, от одной запитался, по второй провожу измерения
форму синусоиды визуально не искажает, измерения с мультиметром совпадают до десятых вольта, сотые не проверял
Добавлено через 15мин.:
m16, чего-то я от меги немного отвык, подскажи если не сложно
в ней один канал ADC, когда запускаешь преобразования во freerunning есть какие-то нюансы с переключениями мультиплексора?
например пропускать один цикл преобразования, или может еще что-то?
это если циклично опрашивать два порта - ток и напряжение
(на stm32f1xx два канала, да и DMA есть)
форму синусоиды визуально не искажает, измерения с мультиметром совпадают до десятых вольта, сотые не проверял
Добавлено через 15мин.:
m16, чего-то я от меги немного отвык, подскажи если не сложно
в ней один канал ADC, когда запускаешь преобразования во freerunning есть какие-то нюансы с переключениями мультиплексора?
например пропускать один цикл преобразования, или может еще что-то?
это если циклично опрашивать два порта - ток и напряжение
(на stm32f1xx два канала, да и DMA есть)
sevpro
Доктор наук
Worldwide
769 281
Отв.366 24 Апр. 17, 10:12, через 37 мин
mak, нюансы есть. Если нужно поочередно опрашивать два канала лучше использовать режим одиночного пребразования
m16
Модератор
Тамбов
1.9K 1K
![](https://cdn.homedistil.ru/th/1304/21/10604.161037.jpg)
Отв.367 24 Апр. 17, 12:06
когда запускаешь преобразования во freerunning есть какие-то нюансы с переключениями мультиплексора?
например пропускать один цикл преобразования, или может еще что-то?
это если циклично опрашивать два порта - ток и напряжениеmak, 24 Апр. 17, 09:35
по каналу А - ток, по каналу Б - напряжение.
- включаем канал А. запускаем ацп в режиме free running . опрашиваем в течении периода сетевого (20мс) накапливаем сумму квадратов тока. останавливаем ацп.
- включаем канал Б. запускаем ацп в режиме free running . опрашиваем в течении периода сетевого (20мс)накапливаем сумму квадратов напряжения. останавливаем ацп.
- третий период сетевого вычислительный . считаем Irms, Urms, P
и так по кругу
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.368 24 Апр. 17, 12:37, через 32 мин
по каналу А - ток, по каналу Б - напряжение.m16, 24 Апр. 17, 12:06ты имеешь в виду установку mux?
и хм, период одно период другое - как-то не элегантно выходит..
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
![](https://cdn.homedistil.ru/th/2301/14/21231.368926.png)
Отв.369 24 Апр. 17, 12:37, через 1 мин
и хм, период одно период другое - как-то не элегантно выходит..mak, 24 Апр. 17, 12:37Превосходно выглядит.
сообщение удалено
m16
Модератор
Тамбов
1.9K 1K
![](https://cdn.homedistil.ru/th/1304/21/10604.161037.jpg)
Отв.370 24 Апр. 17, 13:19, через 42 мин
ты имеешь в виду установку mux?mak, 24 Апр. 17, 12:37А и Б разумеется условно. выбирай любые из MUX0...MUX7...Mux15.
как-то не элегантноmak, 24 Апр. 17, 12:37да фигня это. я аналогично тынькой так делаю. период - квадраты суммирую, полпериода на внешнее управление и полпериода на вычисление рмс и ТОР для таймера на следующие два периода.
Добавлено через 2мин.:
допустим включен рядом мощный потребитель выкусывающий периоды...mak, 24 Апр. 17, 12:41это как из розетки выкусить период? ;о))
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.371 24 Апр. 17, 13:24, через 5 мин
m16, дык в нормальных условиях все вроде нормально
но если допустить мощного потребителя, который даёт неравномерную нагрузку по периодам то что получится?
но если допустить мощного потребителя, который даёт неравномерную нагрузку по периодам то что получится?
это как из розетки выкусить период? ;о))m16, 24 Апр. 17, 13:19можно нагружать периоды неравномерно, тот же регулятор с кривой реализацией под алгоритм брезенхема
m16
Модератор
Тамбов
1.9K 1K
![](https://cdn.homedistil.ru/th/1304/21/10604.161037.jpg)
Отв.372 24 Апр. 17, 13:41, через 17 мин
два варианта:
а. регулятор не заметит выкушенный период
б. регулятор отреагирует на просадку
если сложить а. и б. то за большой промежуток времени(1час) средняя мощность будет на уровне заданной имхо.
mak, придумать можно кучу форсмажоров и здесь я вижу два подхода
- забить
- переходить на аналоговую реализацию, уж здесь реакция будет относительно мгновенной
а. регулятор не заметит выкушенный период
б. регулятор отреагирует на просадку
если сложить а. и б. то за большой промежуток времени(1час) средняя мощность будет на уровне заданной имхо.
mak, придумать можно кучу форсмажоров и здесь я вижу два подхода
- забить
- переходить на аналоговую реализацию, уж здесь реакция будет относительно мгновенной
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.373 24 Апр. 17, 14:18, через 38 мин
m16, ну в целом понятно, все равно компромиссы
ладно, 2-й макет на stm32 пилю, стоимость та же, даже интересно будет сравнить параллельно
ладно, 2-й макет на stm32 пилю, стоимость та же, даже интересно будет сравнить параллельно
sevpro
Доктор наук
Worldwide
769 281
Отв.374 24 Апр. 17, 15:29
Вообще не понятен геморрой с фрираном и кривым расчетом мощности
ISR(ADC_vect) {
ADMUX ^= 0x01;
ADCSRA |= (1 << ADSC);
unsigned int adc = ADCL + (ADCH << 8 ) ;
...
}
работает великолепно, по очереди читая 0 и 1 каналы.
ISR(ADC_vect) {
ADMUX ^= 0x01;
ADCSRA |= (1 << ADSC);
unsigned int adc = ADCL + (ADCH << 8 ) ;
...
}
работает великолепно, по очереди читая 0 и 1 каналы.
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.375 24 Апр. 17, 16:20, через 52 мин
в памяти откуда-то осталось что при переключении лучше пропускать одно значение, оно может быть не совсем адекватным
вот и возник вопрос
вот и возник вопрос
msg31
Научный сотрудник
Барнаул
4.6K 2.5K
![](https://cdn.homedistil.ru/th/2301/14/21231.368926.png)
Отв.376 24 Апр. 17, 16:36, через 16 мин
в памяти откуда-то осталось что при переключении лучше пропускать одно значение, оно может быть не совсем адекватнымmak, 24 Апр. 17, 16:20Вроде правильное остаточное знание. У меня тоже такое имеется. Но мотивированно не подскажу почему.
sevpro
Доктор наук
Worldwide
769 281
Отв.377 24 Апр. 17, 16:55, через 19 мин
при переключении лучше пропускать одно значениеmak, 24 Апр. 17, 16:20во фриране - да, на предыдущей странице я привел вырезку из даташита, почему так происходит, а в режиме одиночного все под контролем.
mak
Модератор
Екатеринбург
6.3K 1.8K
![](https://cdn.homedistil.ru/th/1304/21/7446.169847.gif)
Отв.378 24 Апр. 17, 16:58, через 4 мин
sevpro, а с таймингами как обстоит дело, сколько выборок получится на период?
sevpro
Доктор наук
Worldwide
769 281
Отв.379 24 Апр. 17, 17:11, через 14 мин
mak, насколько помню чуть больше 300 по каждому каналу (Fclk ADC = 500кГц). Что это не рекомендованный режим я в курсе, показания потом лечу программными средствами.
сообщения удалены (2)