⭐Светодиодный тестер ч.2 (запуск преобразователя и тесты на светодиодах)
Первая часть посвященная светодиодную проверяльщику
Быстрый показ работы
Купить на Aliexpress
🛒 STM32F401 USB Type-C DevBoard (2.97?): https://ali.ski/_nCiR
🛒 STM32F401 Learning Board(4.58?): https://ali.ski/tnBBV
🛒 STM32F401 84Mhz (3.29?): https://ali.ski/tnBBV
🛒 IRL640 (поддельные, НЕ ПОКУПАТЬ) (2.1/10pcs?): https://ali.ski/CKxpV
🛒 OLED 0.91 128x32 (1.41?): https://ali.ski/8A54d_
🛒 IPS 0.96 160x80 ST7735 (1.41?): https://ali.ski/hFlnpt
🛒 Мультиметр T21D RM113D (13.81?): https://ali.ski/ABv64
Подключение экрана на органических светодиодах 128x64
Самый маленький из доступных на контроллере SSD1306:
IIC работает на частоте 400 кГц, всё остальное оставлено по умолчанию:
Использована простенькая (без ПДП) библиотека от Alexander Lutsai, которая заработала почти сразу:
Шрифт выбрал самый большой из библиотеки (26x), можно рисовать прямоугольники, пока этого достаточно
Опять подделка транзистора IRL...
Итак, после безуспешной попытки купить транзистор IRL640, который был так нужен на али он был приобретён в местном магазине, и, это опять оказалась сраная подделка:
Также был куплен IRL620S, который обладает более скудными параметрами, но с ним хоть можно работать.
Также в процессе поиска были обнаружены полевики IRLR, которые имеет более низкую цену, корпус TO-252, UDS100В и конечно же управление логическими уровнями:
Генерация ШИМ-сигнала
Камешек мой работает на 48МГц, частота на выходе 80 кГц, при этом получилось разрешение 600 единиц.
Запуск генерации:
/* Boost PWM */
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
На выходе выйдет 80 кГц (мой осёл с такими частотами плохо справляется, взял коробку):
Другой справился:
Важное изменение в схеме
🔺 Обновление от 15.03.2024: Схема работает при напряжении 5В, но является неправильной и при повышенном напряжении выходные транзисторы, поэтому применять её воспрещается.
Чтобы получить амплитуду управляющего сигнала с напряжением 3.7-4.2В (напряжение аккумулятора), а не 3.3В от МК, что очень важно для нас для достижения высоких токов при питания от одной банки, добавлена схемка драйвера для полевого транзистора на нескольких биполярных транзисторах
Схема была взята отсюда: Discrete Gate Driver Designs
*транзистор BC847 лучше заменить на MMBT2222A
И после этого на затвор будет поступать почти напряжение питания, да и к тому же с возможностью давать высокие токи и работать на частоте 100+ кГц.
На осциллографе разница хорошо заметна, но еще лучше она проявилась в увеличении выходного напряжения с 70В до 100В
Также можно рассмотреть внимательнее сигнал на входе и выходе:
Ввиду того, что вполне рабочая плата уже была в наличии сделал миниатюрную платку:
И просто аккуратно припаял её на проводках к основной.
Использование АЦП
Т.к. в качестве питания используется аккумулятор, а далее на контроллер поступает 3.3В от стабилизатора, то это же напряжение обычно используется в качестве опорного, то есть у нас как-бы нет возможности точно измерять напряжение аккумулятора.
Решается это использованием внутреннего источника опорного напряжения для одного из каналов АЦП, с помощью которого можно измерять напряжения питания микроконтроллера, и после этого в выражениях для вычисления напряжения используем не 3.3В, а текущее измеренное значение!
Настраиваю ПДП в циклическом режиме:
Таймер, запускающий преобразования АЦП пусть работает на частоте 10 Гц:
Теперь значения будут записываться в массив из 4 элементов ( Uвых, Iвых, Uакк, Uпит).
/* Measuring BatVol-OutCur-OutVol */
HAL_ADCEx_Calibration_Start(&hadc);
HAL_ADC_Start_DMA(&hadc, (uint32_t*)ADC_Raw, 4);
Полученные значения используются для расчета измеряемых величин, учитывая, что в них теперь используется текущее напряжение питания микроконтроллера, полученное от одного из внутренних каналов АЦП:
Запуск преобразования
Но возникли неприятности в виде того, что весь этот код, использующий HAL расходует слишком много памяти, это просто пипец:
/* Boost PWM */
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
Раньше в библиотеке HAL не было возможности для управления коэффициентом заполнения без прямого использования регистров (нужно учитывать, что это значение не должно превышать ARR):
TIM1->CCR4++; // inc example
Теперь это можно сделать с помощью макроса:
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, VALUE_HERE);
Изменения его сейчас выполняется по нажатию кнопки, если она нажата, то генерируется сигнал для повышающего преобразователя и пищалки:
if(HAL_GPIO_ReadPin(SA1_BUT_GPIO_Port, SA1_BUT_Pin) == GPIO_PIN_RESET)
{
// TIM16->CCR1 = 10;
// TIM1->CCR4 = 500;
__HAL_TIM_SET_COMPARE(&htim16, TIM_CHANNEL_1, 10);
uint16_t BoostWidthSet = 100;
uint16_t BoostWidthMax = __HAL_TIM_GET_AUTORELOAD(&htim1);
if(BoostWidthSet < BoostWidthCMax)
{
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, BoostWidthSet);
}else
{
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, BoostWidthMax/2);
}
}
else{
__HAL_TIM_SET_COMPARE(&htim16, TIM_CHANNEL_1, 0);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, 0);
//TIM16->CCR1 = 0;
//TIM1->CCR4 = 0;
}
Разъем типа банан
Первоначально задумывалось делать устройство с щупом и проводом сзади, но пока, временно, просто установлен разъем для обычных щупов - это довольно удобно.
В будущем думаю сделать с двух сторон бананы: сзади будет обычный для провода, а в тот, что впереди можно будет воткнуть и закрепить винтиком/двумя (чтобы не шатался) щуп.
Проверка на подопытных светодиодных лампах
Светодиодный тестер уже хоть как-то работает, можно и поиграться проверил большой светильник 18Вт:
Да, эта та самая лампа-кукурузина, у нее вылетела плата питания:
Проверка стабилитронов
Устройство отлично подойдет при проверке, а точнее определения напряжения стабилизации стабилитронов. Используя проверяльщик в режиме источника тока в несколько мА при возможности выходного напряжения до 150В легко определить Uст большинства стабилитронов 0.5Вт, 1.3Вт, тем более, что маркировка на них либо плохо видна, либо вообще отсутствует:
Проблемы с занимаемой памятью
Выбрал я МК неплохой, на тот момент времени, тогда от стоил 0.40$, теперь он стоит хер пойми сколько, а самое главное его ресурсов едва хватает . Замена в сложившихся обстоятельствах может быть только эта:
Ну, а пока заведу устройство и с эти камнем, для этого в настройках проекта выставлю оптимизацию на наименьший размер итоговой прошивки (удалось снизить занятость FLASH с 95% до 66%):
Дальнейшая замена динамика
Использовать какой-то левый динамик от телефона (как сейчас) это не вариант, поэтому была найдена отличная замена в виде звукоизлучателя 8530 в корпусе для поверхностного монтажа.
Также существуют также миниатюрные излучатели 9 мм x 5 мм для сквозного монтажа.
Разница будет существенна, даже если громкость упадет:
Замена монохромного OLED на красочный IPS
Раз уж будут присутствовать большие вычислительные мощности и большой объем памяти, то придется расстаться с текущим экраном из-за низкого разрешения (мало информации помещается) и дальнейшего неизбежного выгорания.
В такой же ценовой категории присутствует отличный IPS-экранчик на контроллере ST7735 с высоким разрешением 160х80 точек, подключаемый по SPI (на плате его подключить можно через разъем).
Такой экран подымает уровень устройства на новый уровень, ведь помимо того, что он красочный и имеет отличные углы обзора, при диагонали 0.96 дюймов получается внушительные 186 точек/дюйм, что не может не радовать.
Еще фото
И еще фото
Здравствуйте, Админ. Есть ли возможность написать код под заказ? У вас несколько подходящих проектов есть, они могли бы выступить базой
Здравствуйте. Напишите на support@cxemka.com
Привет!
Прибор сам определяет напряжение питания светодиода и протекающий через него ток, правильно я понимаю? В обеих статьях и видео не нашел описания этих процессов...
Как именно он проводит измерения и выводит информацию на экран?
Здравствуйте.
Работает как источник тока, то есть:
Сейчас спаял новую версию платы, с учетом исправлений, в процессе проверки.
Подскажите, как Вы рассчитали индуктивность дросселя под данные параметры. Какие исходные данные? Я пробовал расчет по данному калькулятору https://vip-cxema.org/index.php/online-raschjoty/3... у меня выходит минимальная индуктивность дросселяоколо 300 мкГн при питающем напряжении 3,3-4,2 В и выходном 5-200 В с током 0,02 А и частоте ШИМ 80кГц. Но никак ни 10 мкГн!
Я собрал на макетной плате данный преобразователь и получил неутешительный результат. Во-первых, я имею очень нелинейную хаарктеристику по нарастанию выходного напряжения в при заполнении 16-98%, как рекомендует калькулятор. При 50% я получаю 150 В. При заполнении ШИМ 16-50% напряжение более-менее плавно нарастает. А с увеличением больше 50% наблюдается провал в росте напряжения. И есть явное снижение. И только при заполнении около 95-98% идет резкий рост напржения на выходе, вплоть до расчетного.
Прошу Вас привести график роста напряжения в вашей схеме в зависимости от коэффициента заполнения ШИМ.
Расчет был на основе: https://cxemka.com/75-raschet-povyshayuschego-preo...
Брал выходной ток больше 20 мА, тогда и получается около 10 мкГн.
Возможно, действительно имеет смысл уменьшить расчетный выходной ток и увеличить индуктивность катушки, т.к нелинейность также наблюдается (примерно как у вас).
Попробовал поставить дроссель, как у Вас. Нашел выводной, на гантельке с индуктивностью около 16 мкГн и схема заработала, на удивление. При той же частоте ШИМ 80 кГц я получаю 300 В примерно при 40% заполнения. Но теперь проблема немного в другом. Минимальное напряжение 16 В при заполнении чуть менее 1% и ниже получить не удается. При выключенном ШИМ на выходе напряжение, которое выдаёт аккумулятор. В итоге, для одиночного светодиода (к примеру красного с U= 1,8 В) при напряжении 16 В надо ставить последовательно с выходом резистор 680 Ом для тока 22-24 мА. При этом при напряжении литиевого элемента ток снизится практически до 3 мА. Так что надо учитывать наличие дополнительного резистора в схеме. Причем номинал желательно увеличить бы, иначе есть риск сжечь светодиод. Но в тоже время это снизит ток при прямом питании от АКБ.
Изначально я пробовал ставить 100 мкГн и 220 мкГн, так как считал по калькулятору для тока 20 мА. Но с такими значениями для устойчивой работы требовалось снижать частоту ШИМ.
Первоначально меня заинтересовала Ваша мысль стабилизировать ток посредством контроля ШИМ. Но я вижу тут трудности с выживанием обычных низковольтных светодиодов. У меня есть уже моя самоделка с похожим принципом работы, где МК занимается и измерением падения напряжения на светодиоде, и раскачкой повышающего преобразователя. Схема постоянно генерит напряжение около 300 В, а ток ограничивается резистором на 150 кОм. Этим пробником проверено уже немало всевозможных светодиодов и сборок. В том числе и низковольтных без их повреждения. Но чего она не умеет, так это проверять при токах, близких к номинальному для светодиодов.
Как Вы задумывали работу тестера с низковольтными светодиодами? Или это исключительно высоковольтный тестер будет?
А какая у вас разрядность ШИМа? У меня получается 84000000/80000=1050 шагов, то есть шаг ~0.1%, до 16В сразу не прыгает.
В этой версии проверять один светодиод нельзя (не рекомендуется).
В следующей последовательно добавлен токоограничтельный резистор (после резистора-шунта). Таким образом получим (при ШИМ 0%) до:
4.2В (макс. напряжение аккума.) - 0.6В (падение на VD1) — 1.8В (для красного)/(62 Ом+10 Ом) = 25 мА
Также будет упрощенная версия проверяльщика (повышающий преобразователь + стабилизатор тока). Поэтому я вам советую прикрепить к вашей схеме вместо резистора 150кОм (и конечно изменив схему на больший выходной ток) на выходе стабилизатор тока на двух транзисторах или на ОУ, а нужный ток выбирать через переключатель подключением заранее рассчитанных резисторов (сделать это можно и с помощью МК, подавая на вход ОУ напряжение от ЦАП или ШИМ+ФНЧ).
https://cxemka.com/57-stabilizator-toka-na-dvuh-tranzistorah-shema-plata-sborka-ispytanie.html
Я использую в качестве генератора микроконтроллер PIC16F1936. При частоте ШИМ 80 кГц и тактовой 32 МГц я имею всего 400 шагов. Минимальная генерация начинается примерно со значения 3, что равно 1% заполнения. При этом на выходе я как раз и получаю те самые 16 В. И под это же напряжение я и рассчитал сопротивление дополнительного резистора.
Я не беру Вашу схему на 100% за основу, но задумка схемы понравилась. Хотел просто модернизировать старую версию своего тестера стабилизатором тока, но чтобы могла проверять от одного светодиода и до любой цепочки в пределаах 250-300 В. Для низковольтных светодиодов я использую другую схему, первый вариант которой я когда-то публиковал на Радиокоте. Там очень старый вариант, но вполне рабочий.
Первую версию высоковольтного тестера я дорабатывать не хочу. Сейчас там баланс функциональности и простоты. Да и примененный тип микроконтроллера просто мешает развитию в более серъезную схему.
Подскажите, пожалуйста! А какой ток долговременно сейчас выдает Ваш преобразователь? Я смог «выжать» из своих комплектующих максимум 4 мА долговременно и 5 мА кратковременно при 170 В на выходе. При этом дроссель сильно греется. Думаю надо мотать самому или подбирать дроссель со старых плат на кольце с толстым проводом. Пострадают габариты устройства, но иначе у меня дроссель разогревается очень сильно. Я мечтаю о 20 мА, но не знаю, выдержит ли у меня mosfet. Я в итоге поставил IRFR825 с драйвером MCP1407. Последнюю питаю от 12 В. Драйвер на транзисторах по Вашей схеме у меня горел три раза. Вылетали полевики.
Несколько мА, я ограничиваю до 150В, потому что у транзистора Vds=200V.
Конечно сильно греется, при таком напряжении заполнениее почти 100%. У меня режим работы подключил -> нажал на кнопку -> напряжение повысилось -> проверил и отпустил.
Если вы питаете от 12В, то вам намного намного проще, и 20 мА выжимать должны (по крайне мере несколько секунд), по крайней мере в симуляторе работает:
Нет! С питанием от 12 В я еще не проверял, хотя и планирую такой вариант испытать. Пока что у меня от 12 В питается MCP1407, так как для IRFR825 нужно управляющее напряжение выше 10 В. Питание же самого повышающего преобразователя от 3,7 В.
А 12 В от лития получить просто. Достаточно поставить небольшой dc/dc step up. Зато нет проблем с поиском дефицитного и дорогого IRL640.
Можно было бы взять MT3608, но в текущей версии у меня его некуда пихать.
Сейчас перепаял дроссель на 22 мГн и снизил частоту до 40 кГц на выходе 10 мкФ, вот сколько у меня выдает:
Так я и прикрутил преобразователь на MT3608. Только от него запитан драйвер, а не повышающий преобразователь.
Ток на картинке приличный, но напряжение маловато. Не все лампы он сможет засветить. В осветительных лампах мне встречались сборки, работающие от 240-250 В по постоянке.
А что послужило причиной перехода на частоту 40 кГц? Мой опыт показал, что при более низких частотах требуется подбор индуктивности. Иначе последние ибо по току не проходят, либо входят в насыщение.
Хочу сделать преобразователь с автоподстройкой частоты, для разных диапазонов, как здесь:
https://www.ti.com/lit/an/snva765/snva765.pdf?ts=1...
Вот, что удалось выжать при 20 кГц, дальше поднимать не могу (там защитный диод уже ограничивает и транзистор может вылететь, у него же Vds=200V):
А для каких целей, если не секрет, нужно проверять лампы? Их ремонт же, как правило, нецелесообразен.
Если лампа качественная, но сгорел один светодиод, то небольшой ремонт с аменой выгоревшего на перемычку позволяет лампе прослужить еще достаточно долго. Но такое я редко проделываю, ибо тоже считаю нецелесообразным. Но если нужно временное решение проблемы до следующего похода в магазин, то вполне оправдано.
А так — это больше идея фикс. Китайцы же делают тестеры светодиодов с питанием от розетки. Как правило, они имеют на выходе напряжение от 0 до 300 В с током до 30 мА. Хочется сделать самодельный тестер с аналогичными параметрами. Особенно если тестер еще и не будет привязан к сети.
Видел тот тестер, когда искал аналоги, китайская самоделка.
Если использовать две банки 18650, то сразу отпадает проблема выбора транзистора, питания драйвера и получение 300В из 7.4В.