Выкладываю обновленную версию прошивки "Регулятор тока на acs712 с предустановками и записью в память" с внешним управлением, с учётом доработок в прошивке sebra на 06.12.17.
sechevoy, навскидку у тебя дорожка от ножки 1 рс814 куда-то не туда идет. Еще поменяй местами подключение 4 и 6 ног оптотиристора - не будет необходимости под корпусом несколько дорог разводить. И еще, монтаж высоковольтной части очень плотный, не факт что детали нужной мощности и напряжения туда влезут, для отверстия крепления место неудачное - коротнуть крепежом можно низковольтный разъем с резистором в высоковольтной части
sechevoy
Специалист
Запорожье
148 26
Отв.522 08 Дек. 17, 17:01
Ещё немного доработанная версия разводки платы по регулятору напряжения с трансформатором. Увеличены посадочные места под конденсатор снаббера и резистор 82к. Немного разнесены силовые площадки. На резистор 82к рекомендую одевать термоусадку при вертикальном монтаже. Всё-таки 220В. В качестве диодного моста W10M
RMS.JPG Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
Всем привет. Сегодня собрал стабилизатор напряжения по новой схеме и решил сделать замеры, как и обещал Sebre. Для измерений использовался осциллограф Rigol DS1054. Замер выполнялся начиная с 220 В вниз с шагом один вольт. Печатать результаты не стал, просто сфотографировал листочки. На напряжении 180 вольт понял, что надо подстроить, рассогласование было стабильно 1,5 В. Дальше результаты были один в один. На напряжениях ниже 90 вольт показания на осциллографе колебались с большей амплитудой - до двух вольт. Думаю это связано с ограниченными возможностями осциллографа по измерению. Среднеквадратичное он считает по картинке на экране. При этом изображение стояло, как вкопанное. Конечно наблюдались небольшие колебания в пределах 1 Вольта, но у меня плохая сеть и входное напряжение колебалось в пределах 208 - 225 вольт. Замеры выше 200 вольт делал, когда входное было больше 220 вольт. В колонках первая цифра - задаваемое напряжение, вторая - показания на осциллографе. Я был шокирован результатом. Всё работает чётко, без сбоев и морганий. Похоже пора ставить жирную точку в этой теме. Sebra -огромное спасибо.
20171209_142455.jpg Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.20171209_142502.jpg Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.20171209_185759.jpg Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.20171209_185810.jpg Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.20171209_185820.jpg Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
сообщения удалены (4)
Chatterbox
Специалист
Калуга
123 60
Отв.524 13 Дек. 17, 18:49
[сообщение #13000957] Кто пользуется версией с энкодером. Внес исправления в библиотеку обслуживающую кнопки и энкодер. Исправил баги в работе с китайскими энкодерами в плане непроизвольной смены равщения.
сообщение удалено
sebraКуратор
Республика Коми
147 85
Отв.525 14 Дек. 17, 14:55
как я понял это есть вольт контроль то есть если низкое напряжения или высокое срабатывает вольт контроль?Art123, 13 Дек. 17, 20:44
Напряжение на выходе равно установленному, вне зависимости от входного, если установленное не больше входного.
сообщение удалено
dranenkov
Студент
Санкт-Петербург
19 4
Отв.526 14 Дек. 17, 22:31
Трансформатор для измерения можно использовать любой и от зарядки? через него же нагрузка особо никакая не идет?
ant73
Бакалавр
Мелекесс
52 30
Отв.527 16 Дек. 17, 10:24
любой и от зарядки?dranenkov, 14 Дек. 17, 22:31
От современных импульсных зарядников не подойдёт.
сообщения удалены (3)
PavelSaratov
Доктор наук
Саратов
622 80
Отв.528 19 Дек. 17, 18:49
То есть я так понимаю что в какой то момент записи числа в регистр оно совпадает со счетчиком и вызывает прерывание. Честно говоря копать еще дальше у меня пока нет желания, вариант с проверкой на тесте показал себя хорошо.
sevpro ты проверь у себя значение регистра, просто ради интереса, отсутствие вспышек не говорит об отсутствии проблемы, может там такое значение при котором триак не может открыться.
Просто вспомнил. Вот тут круто описано чего и как и почему. Ну решение собственно правильное - отключить прерывания ибо не атомарная операция. http://easyelectronics.ru/...e-operacii.html
m16Модератор
Тамбов
1.9K 1K
Отв.529 19 Дек. 17, 20:35
То есть я так понимаю что в какой то момент записи числа в регистр оно совпадает со счетчиком и вызывает прерывание.
вывод не правильный , извините , но это издержки говнокода или говно алгоритма . без обид сам когда то был таким, но ассемблер дисциплинирует и заставляет лишний раз подумать. извините-2. новоявленные си-шники в большинстве своём думать не хотят - это их бич. готовые либы ищем , сами разбираться не хотим как работает ядро , периферия , прерывания берём готовый индусский говнокод и вперёд на мины. да , ещё и плавучку впендюривают спрашивается - нахера, когда целочисленка работает быстрее. а код не работает начинаем выдвигать более нелепые причины (цитата выше) чем их код.
Ну решение собственно правильное - отключить прерыванияPavelSaratov, 19 Дек. 17, 18:49
не верное решение.
PavelSaratov
Доктор наук
Саратов
622 80
Отв.530 19 Дек. 17, 22:47
Правильное это переписать гамнокод с нуля я так понимаю?
m16Модератор
Тамбов
1.9K 1K
Отв.531 19 Дек. 17, 23:23, через 36 мин
не совсем. нужно читать и разбираться с контроллером , если трудности с английским в аттаче переводная книга по контроллерам атмел. хоть она и старовата , но принципы работы не изменились. может быть регистры периферии будут немного отличаться в названии. первоисточники от производителя - даташиты и апноты. ну к языку нужно усилия приложить . из литературы - классика жанра Керниган, Ричи. Язык C.
Добавлю свои пять копеек. Не поленитесь открыть и посмотреть ассемблерный код чтобы увидеть, что вам там gcc накомпилировал, особенно если задачи критичны к скорости работы. Бывают сюрпризы.
PavelSaratov
Доктор наук
Саратов
622 80
Отв.533 20 Дек. 17, 21:54
Коллеги, 1. Пост изначально был не мой - я прокомментировал пост другого участника форума. И таки да - отключение прерываний при неатомарных операциях - распространненое явление. И оно работает. 2. За книги спасибо - кому то будут интересны. 3. Сейчас скажу крамолу - я вообще предпочитаю C через HAL для stm32. И то потому, что ничего внятного из разряда языков IEC 61131/3 и рантайммашины примитивнейшей под него нет и не предвидится. Вернее что-то вроде народ делает в части LAD для AVR а для ARM все тухло.
m16Модератор
Тамбов
1.9K 1K
Отв.534 20 Дек. 17, 23:11
я вообще предпочитаю C через HAL для stm32PavelSaratov, 20 Дек. 17, 21:54
ну и зря. это из области доступного индусского говнокода о котором писал выше. один из каментов с сахары Скрытый текстбл..ть, е...ный куб. Короче уже 3 бага за две недели, и главное система предназначенная для быстрого старта писец сколько времени отнимает на поиск багов. Один - USB на F2, второй - LPTIM на L0, третий - запись во внутреннюю флэш на L0. Ладно если первые два очевидные (типа тактирование не включают), запись в итоге переписал с нуля, быстрее получилось, чем разбираться что накрутили.
PavelSaratov
Доктор наук
Саратов
622 80
Отв.535 21 Дек. 17, 01:18
Угу. Есть такое. Только багов ничуть не больше чем в любом другом говнокоде, а ускоряет кардинально. Поддержка HAL - целая корпорация с бюджетами. За ним будущее. Хал он для инициализации и типовых действий. У него есть куча плюсов, и не признавать это недальновидно. Он кстати не описал что за баг нашел в третьем случае. В первом сказал - не включается тактирование. Бля.. Ну так тактирование везде выключено в STM32 по умолчанию! Даже несчастной ногой дернуть через хал - тактирование надо явно APB включить. А уж как это делать через флаги регистров или понятной функцией с целовеческим названием APBчетоттамEnable () - выбирай какой хочешь. ХАЛ внезапно еще и самодокументируется в отличии от кода ассемблера, который надо комментировать. В той же теме на Сахаре
Скрытый текств целом да, действительно сильно ускоряет процесс, особенно на тяжелых вещах типа USB/TCP/RTOS и стараюсь использовать LL вариант. Еще бы разобраться как сделать свой шаблон - цены бы не было. Я обычно использую TNKernel/TNeo, оно пошустрее Можно все херачить на ассемблере и говорят даже это круто. За ассемблер с указателями там где можно было обойтись языкром уровня повыше и соответственно проще для понимания и последующего трекинга/анализа наоборот руки отрывают в некоторых местах, но это специфика наверное. Резюмируя - ассемблер посмотреть иногда полезно, но упираться в него рогом- ну его нафиг.
m16Модератор
Тамбов
1.9K 1K
Отв.536 21 Дек. 17, 08:21
но упираться в него рогом- ну его нафиг.PavelSaratov, 21 Дек. 17, 01:18
просто вы не умеете его готовить ))). что касаемо стм , базару нет - здесь С рулит ввиду сложности камня.
Резюмируя - ассемблер посмотреть иногда полезноPavelSaratov, 21 Дек. 17, 01:18
уточню - это дизассемблерный лист, и в него нужно смотреть регулярно чтобы оценить генерируемый код. при работе с асмом нужно активно пользовать макросы , и тогда рога не понадобятся ))). вот маленький пример для авра - полином 3-го порядка S - (k1 + k2*spt + k4*spt^3/kp1 - k3*spt^2 )*( temper - kt ) / kp2. используется 32-х и 48-ми разрядная знаковая целочисленка
Просто вспомнил. Вот тут круто описано чего и как и почему.PavelSaratov, 19 Дек. 17, 18:49
К чему выдергивать сообщение о проблеме месячной давности которая уже решена? Название ветки подразумевает говнокод, Си и Ардуино, в шапке все это изложено более развернуто.
Добавлено через 1ч. 58мин.:
На днях почищу ветку от старых сообщений и корявых своих мыслей. И вроде как пора ставить точку.
PavelSaratov, спасибо за ссылку, сделал закладку, может когда нибудь пригодиться.
gikrus
Кандидат наук
Пермь
384 400
Отв.538 21 Дек. 17, 22:37
Sebra. Не бери в голову. Похоже новогоднее обострение началось.))) Есть проблемка по стабилизатору напряжения, которую надо обсудить. Ну а МЭТРЫ, после новогодних праздников отойдут, добрее станут.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.539 24 Дек. 17, 20:48
Друзья, есть схема "Димер для arduino" 2366_2. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
и есть такой модуль (STK0046 - Оптосимисторный ключ) Stk0045-sch. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
Так как модуль уже есть, то была мысль приделать к нему "детектор нуля" с первой схемы, но обратил внимание, что опторазвязка на модуле совсем другая, с "zero crossing circuit". Пытался нарыть в интернете информацию, "чем это грозит", но так как почти ничего в электронике не понимаю... Короче, понял, что выводы я сделаю не скоро. На форуме в теме [Ненавязчивая автоматизация ректификационной установки] есть схема модуля для ТЭН на ардуино и там как раз силовой ключ с MOC3083 171655. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика. но детектор нуля в этой схеме в отличии от "моей" более сложный и мне кажется, что для моих целей избыточен. Можно ли к ключу (модуль STK0046) просто "приделать" детектор нуля из схемы "Регулятора..." с duino.ru? Или его (детектор) как-то нужно изменить?
Добавлено через 19мин.:
Почитал ещё в интернете. Насколько понял, с помощью MOC3083 силовой ключ в простом виде можно использовать только для включения/выключения, а не для регулировки. Видимо поэтому схема из темы [Ненавязчивая автоматизация ректификационной установки] более сложная, чем та, что в начале моего сообщения.