" title="Написать письмо">Написать письмо
Донаты на карту ВТБ:
2200 4002 2461 6363

Статьи по дате (многие всегда актуальны)

Статистика

Пользователи : 1
Статьи : 2130
Просмотры материалов : 7885013
 
Ограничитель I из Arduino. Часть 2 (26.02.2025). Печать E-mail
2025 - Февраль
26.02.2025 19:14
Save & Share
Предыдущая часть - условно-удачно (незаконченный прототип), в раздел "приборы" не попал. Эта часть - удачно (законченный усиленный прототип). Но в раздел "приборы" опять не попал: душат погрешности измерений (единицы сотых вольт и ампер, а как они в падежах склоняются - отдельная тема), помехи ЖК-экрана, инертность самодельного оптрона.



Сразу в лоб схему, прям как спаяно. Совсем забыл заземлить пин PWM резистором 1.6кОм при переназначении контактов (для Nano - было бы 22кОм) - что может быть причиной помех, описываемых ниже. И предохранитель 0.1А тоже забыл.


ТТХ:
- измерение тока: до 11.67А с дискретом 0.012А;
- максимально замеченное напряжение 18.54В на холостом ходу, минимальное напряжение 2.28В на холостом ходу. Под нагрузкой падает до 1.44В - что является не минусом, а плюсом: приближение или выход за минимальный диапазон LM2596S 1.25-1.5В (в интернете разные ТТХ попадаются);
- 4 варианта вывода выходных данных: ЖК-экран, семисегментный индикатор, светодиод, COM-порт.

Немного скринов более-менее работоспособности: плавное понижение U преобразователя напряжения, чтобы понизить I на нагрузке.


Преобразователь напряжения управляется самодельным оптроном из красного светодиода, фоторезистора и спичечного коробка - являясь токоограничителем с малым тепловыделением. Контроль напряжения и тока осуществляется высокоомными и малоомными шунтами соответственно. У LM2596S легко разрушается потенциометр, извлекаются его штыри, припаиваются провода на освобождённые места. Семисегментный индикатор не установлен, но все исходники и настройки для него взяты из предыдущих успешных проектов. Неоптимизированный скетч для Arduino 2560: 8% памяти устройства, 12% динамической памяти. Для Arduino Nano тот же скетч: 62% памяти устройства, 48% динамической памяти - ещё есть место, чтобы добавить новые функции, помимо токоограничения. Также нужно понимать, что тут аж 4 метода вывода данных (один ЖК-экран требует 2 сторонних библиотеки и одну самописную); оставить 1-3 - исходники по объёму резко сдуются.


Произошёл отказ от маломощного преобразователя напряжения в сторону условно-мощного LM2596S (пишут и 3А, и 4А - но хрен там плавал: 2А). Произошёл отказ от транзисторов, как ненадёжно приоткрывающихся элементов постоянным напряжением: из-за плохой крутизны передаточной характеристики. Не хватает диода Шоттки как защиты от переполюсовки: это не просто токоограничитель получился, а фактически ЗУ для АКБ ИБП уже. Или стабилизатор тока. Или стабилизатор напряжения. Или мультиметр, который никогда не спалишь превышением тока. Или и то, и другое вместе (4 выбираемых режима работы). В этом плане, Arduino Mega 2560 предпочтительнее, т.к. много каналов, - но её цена (1.1к и выше) и баги вызывают тошноту.

Проблемы стенда:
- высокое время стабилизации сопротивления фоторезистора после смены яркости светодиода (3с между 0 и 3 дискретами PWM). На скринах 1 и 2 видно: без такой задержки скачут номиналы. Придётся покупные оптроны изучать и макетировать - в надежде получить такой же результат (хотя светодиод в спичечном коробке - проще и дешевле для тех, кто курит);
- помехи диктуют измерения для усреднения не 100, а 1000 раз, - что, в свою очередь, ещё временную задержку порождает. На скринах 1 и 2 видно: при 300 измерениях номиналы скачут в разные стороны. Это включает и естественные скачки на несколько единиц дискретов из 1024, которые ну совсем никак не уберёшь. С учётом, что 1 дискрет равен 1.07мВ (расчётные 11.6мА), - вроде, не так критично;
- помехи ЖК-экрана влияют, приближение рук к проводам самодельного оптрона порождает дополнительные помехи;
- измеряемые каналы влияют друг на друга - надо было разнести на A5 и A7, а не на соседние A6 и A7. Все эти помехи порождают неточность измерений 0.01-0.03В/А - что критично при низкоомной нагрузке и низких значениях тока;
- нет осциллографа, чтобы убедиться на 100% в отсутствии помех в верхушке выходного напряжения;
- пока снова нет поверенного дорогого мультиметра, чтобы сделать подстройку заземления входных каналов под нормальные значения;
- схема собрана на омерзительно баганутой Arduino Mega 2560 - когда целью была Nano (эта схема и исходники будут меняться, т.к. нет совместимости). Но стажёр всё спалил - а платформы Nano так из Китая ещё и не приехали;
- проблема с русским языком у ЖК-экрана.

(добавлено 27.02.2025) Исходников, естественно, не размещал, т.к. неотлаженные. Подключение семисегментного индикатора прошло успешно. Добавление заземляющего резистора 1.6кОм привело к уменьшению максимума помехи с 0.03В/А до 0.02В/А.

(добавлено 01.03.2025) Не должно быть помех на верхушке сигнала выходного напряжения. Не только светодиод инертен и гасит импульсы ШИМ, но и фоторезистор тоже.

Исходники продолжают оптимизироваться - но пока это к уменьшению процентов загруженности платформы не приводит.

(добавлено 03.03.2025) Похоже, данная схема будет являться итоговой - и останется лишь допилить исходники. Помехи на фоторезисторе и светодиоде не играют негативной роли: если убрать постоянный показ на экране информации - проверка корректного значения PWM происходит быстро. Значит, при возникновении помехи - исходники тупо скорректируют PWM на новое необходимое число. Пока проблема только в алгоритме: 1PWM/3с - как-то медленно.

(добавлено 04.03.2025) Купленное оборудование, взамен сожжённому, - было украдено в ПВЗ пятёрочки (ПВЗ закрылся на ремонт, когда заказ там уже лежал). Удалось вернуть деньги - но перезаказывать заново; и хрен знает, сколько ещё времени ждать придётся.

Долговременное тестирование токоограничителя с малыми токами нагрузки - успешно. Скоро будет тест с высоким током 1А - часов 9 (нагрузку придётся вентилятором охлаждать); вот и посмотрим, насколько сильно греется преобразователь.

(добавлено 12.03.2025) Цифровой потенциометр - полный провал.

(добавлено 17.03.2025) Долгое свечение светодиода в коробке - перегрева нет.

Написал самоконтроль самодельного оптрона: сбор всех 255 значений, вывод в COM-порт, на экран и т.д. Почему-то поднимает напряжение до 12В вместо 18 с копейками. Это не ошибочный нефиксированный монтаж в корпус фоторезистора и светодиода (дёрнул рукой - расстояние между ними увеличилось). Спичечный коробок выдержал; а вот делитель напряжения для измерения напряжения - неверный: паразитные заземляющие 82кОм искажают результат. В итоге - использовал сам резистор 56кОм как и заземлитель канала, убрав 82кОм из схемы. Правда, появилась другая проблема: врёт в большую сторону на 0.5В. Однако, с учётом вероятности лжи неповеренного мультиметра, - перед внесением изменений в схему надо ещё раз найти поверенный: вероятно, выставлено на преобразователе не 19В, а 19.7В.

Обнаружилась другая проблема: почему-то напряжение именно при PWM=0 больше, чем PWM=1. Иногда бывает так, что 0>1>2, а дальше идёт нормально 2<3<4...

(добавлено 18.03.2025) Безопасность такого токоограничителя выше, чем у микросхем серии LM. Простая переменная на абсолютный максимум ампер в исходниках - защитит преобразователь от превышения тока (в то время, как микросхема тупо перегревается и дохнет). А если вдруг переменная установлена неверно (например, 2А для LM2596S - забыли поменять на что-то одноамперное, вида MH-Mini-360) - будет просадка выходного напряжения на преобразователе - и это можно персонально отслеживать: просадка, как правило, ну очень заметна (на примере XL6009 - улетает с 21.6В до 7В).

Повышенное измерение выходного напряжения - баг входного канала + нужно было перерасчёт коэффициента делителя сделать, измеряя напряжение прямо в схеме.

Неправильное напряжение при PWM=0 - очередной баг Arduino (люди вынуждены были полностью канал отключать); а т.к. это Mega, а не Nano, - получите такой же баг и на PWM=1 (а чтобы больше мозги пеклись - не всегда, а иногда).

Формируются первые ТТХ токоограничителя:
- диапазон выходное напряжение 2.48-18.54В;
- дискретность диапазона напряжения: 253;
- максимально допустимый ток: 2А;
- погрешность измерений А и В: всё-таки 0.03;
- частота считывания данных: а х его знает.

Специально погнул спичечный коробок с фоторезистором. Он расстроился - стал показывать на последних значениях дельту 0.1В в разные стороны - самоконтроль это заметил. Пришлось гнуть его обратно - естественно, не восстановил прежнее состояние. Поэтому перенастроил потенциометр светодиода (написав функцию его настройки) - и всё снова заработало.

(добавлено 19.03.2025) Ещё 3 плюса:
- именно самодельный оптрон - возможность подстраивания под любой преобразователь. Захотел MH-Mini-360 поставить, с целью экономии места, - понял интервал номиналов резистора опытным путём - использовал необходимый фоторезистор и обычный резистор при необходимости;
- именно у самодельного оптрона нет нагрева при любом значении PWM;
- так как PWM занимает 1 канал, а сбор данных идёт всего с 2 шунтов, - остаются свободными около 4 PWM и 6 аналоговых каналов. Это означает, что исходники можно переписать не под одно устройство, а под 4 сразу - с индивидуальным контролем каждого.

(добавлено 20.03.2025) И тут приходит неудача. Подключив цифровой вольтметр на выходное напряжение, выяснилось: реальная погрешность измерений аналоговых каналов составляет 0.3В вместо 0.02В - причём на разных номиналах оно разное. Каналы расстроены просто дико (максимальная погрешность - на меньших измерениях), хоть и погрешность самих измерений многократных составляют 0.03В. Вот тебе и 82кОм на аналоговые входы... И даже 56кОм много оказалось. Опять баг Arduino Mega? Скорее всего: ведь на Arduino Nano удавалось получать значения с точностью до сотых вольта (когда требовались околонулевые значения). Или это конкретно ЖК-экран балуется: ведь наводки от него описаны в интернете достаточно часто.

Совокупность проблем:
- время переключения напряжения 3с: фоторезистор инертен, медленно реагирует на изменение света;
- переключение с 19В до 2В, по факту, занимает и происходит ну совсем постепенно - и не укладывается даже в указанные ранее 3с. Здесь вина и конденсаторов преобразователя: им некуда разряжаться, кроме как на цифровой вольтметр, - самоконтроль должен проходить по другой логике: реле, переключающее на 1кОм как специальный разряжающий конденсаторы паразит;
- неисправимые проблемы с первыми 1-2-3PWM. 0 PWM - баг именно Arduino, последующие - медлительность фоторезистора и проблемы самоконтроля;
- время считывания напряжения 1с: 1000 измерений. Согласно форумам, должны были составлять 100мс, - но по факту, в т.ч. математические операции с коэффициентами шунтов и опорного напряжения, - суммарно дают секунду или даже чуть больше. Значит, время реакции прибора на раздражители - больше секунды. В то время, как у микросхем-токоограничителей LM, наверно, оно чуть ли не наносекунды составляет (данные в даташите на эту тему отсутствуют);
- с помощью фонарика смартфона в упор было доказано: свет проникает сквозь спичечный коробок (щели) - и минимальное напряжение с ночного 2.00В поднимается до 2.60В засвеченного. То есть, имеется зависимость от внешнего освещения (хотя писал ранее: корпус из коробка собирался на отстань). Не исключено, что и сам корпус коробка частично просвечивается;
- смещение измерения Uвых 0.3В, погрешность измерения 0.02В во тьме (0.03В на свету);
- продолжаю реализовывать программный самоконтроль: настройка подстроечного резистора светодиода самодельного оптрона, автоматический расчёт необходимого числа измерений (исходя из фактических помех, наводящихся на аналоговые каналы от всего спаянного в схеме), самоконтроль фоторезистора-светодиода-ШИМ и т.д. Если это реализовывать на Arduino Nano - есть вероятность, что не хватит места для исходников; а реализовывать что-то не на Arduino Nano - только через стажёрский труп;
- получается - практически фаталити: прибор превращается в медленное убожество, годящееся только как ЗУ для АКБ (где все процессы протекают медленно). И места для переработки его во что-то большее - практически не остаётся.

Последний шанс на спасение:
- заземлить аналоговый канал 1кОм или вообще его на землю соединить напрямую через предохранитель 0.1А (уменьшить шумы до минимума - и попытаться обосновать даташитом этот номинал: как бы не оказался минимальным 10кОм);
- подвесить между серединой шунта-делителя напряжения и аналоговым входом резистор 10МОм, изменяющий коэффициент измерения всего на 0.03%, - не разрушив его: сохранив возможность делить выходное напряжение в 19-20 раз;
- молиться о внутреннем сопротивлении входного аналогового канала в 10-ки гигаом: тогда искажение напряжения составит менее 0.1% - что от 20В будет как раз желаемые 0.02В (впрочем, можно и коэффициент делителя напряжения для аналогового канала вывести).

И хватит писать в этой статье дополнения. Надо схему довести до рабочего состояния - и выпустить часть 3 (ну как: и часть 1 считалась рабочей, и часть 2...).

В конце-концов, исправил правильное измерение напряжения: хоть и с таким диким смещением 0.3В - всё равно лучше, чем было раньше. А прямая слева коричневой кривой - оптрон самодельный расстроен снова и насыщается светом раньше, чем надо. Уже продумываются технические детали, как его лучше грамотно сделать; чтобы можно было швырять, пинать и т.д. - без последствий.

А с ручным измерением не совпало - не потому что на 0.3В в верхнюю сторону Arduino врёт. А потому что дешёвый вольтметр DT-830B искажал и напряжение в меньшую сторону, как и с амперами в прошлый раз: 0.24А показывал - а на самом деле 0.34А.


Обновлено ( 20.03.2025 22:06 )
 
 

Последние новости


©2008-2025. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru