Из песочницы
Всем привет!
_____________________________________________________________________________________
___________________________________
Даташит, на датчик о котором я буду рассказывать, можно посмотреть тут. Как несложно догадаться,
цифра «100» в конце маркировки — это предельный ток, который датчик может измерить. Скажу
честно — есть у меня сомнения по этому поводу, мне кажется, выводы просто не выдержат 200А
долговременно, хотя для измерения пускового тока вполне подойдет. В моем устройстве датчик на
100А без проблем пропускает через себя постоянно не менее 35А + бывают пики потребления до
60А.
Перед тем, как перейду к основной части статьи, я предлагаю вам ознакомиться с двумя
источниками. Если у вас есть базовые знания по электронике, то они будут избыточными и смело
пропускайте этот абзац. Остальным же советую пробежаться для общего развития и понимания:
Ну что же, начнем с самого важного, а именно с маркировки. Покупаю комплектующие в 90%
случаев на www.digikey.com. В Россию компоненты приезжают через 5-6 дней, на сайте есть пожалуй
все, также очень удобный параметрический поиск и документация. Так что полный список датчиков
семейства можно посмотреть там по запросу "ACS758". Датчики мои были куплены там же —
ACS758LCB-100B.
Внутри даташита по маркировке все расписано, но я все равно обращу внимание на ключевой
момент "100В":
1) 100 — это предел измерения в амперах, то есть мой датчик умеет измерять до 100А;
2) "В" б б б б б "U"
2) "В" — вот на эту букву стоит обратить внимание особо, вместо нее может быть также буква "U".
Датчик с буквой B умеет измерять переменный ток, а соответственно и постоянный. Датчик с буквой
Еще в данной таблицы появился еще один важный параметр — зависимости выходного напряжения
от тока. Прелесть данного типа датчиков в том, что у них выход напряжения, а не тока как у
классических трансформаторов тока, что очень удобно. Например, выход датчика можно
подсоединить напрямую ко входу АЦП микроконтроллера и снимать показания.
У моего датчика данное значение равно 20 мВ/А. Это означает, что при протекании тока 1А через
выводы 4-5 датчика напряжение на его выходе увеличится на 20 мВ. Думаю логика ясна.
Следующий момент, какое же напряжение будет на выходе? Учитывая, что питание «человеческое»,
то есть однополярное, то при измерение переменного тока должна быть «точка отсчета». В данном
датчике эта точка отсчета равна 1/2 питания (Vcc). Такое решение часто бывает и это удобно. При
протекании тока в одну сторону на выходе будет "1/2 Vcc + I*0.02V", в другом полупериоде, когда ток
протекает в обратную сторону напряжение на выходе будет уже "1/2 Vcc — I*0.02V". На выходе мы
получаем синусоиду, где «ноль» это 1/2Vcc. Если же мы измеряем постоянный ток, то на выходе у
нас будет "1/2 Vcc + I*0.02V", потом при обработке данных на АЦП просто вычитаем постоянную
составляющую 1/2 Vcc и работаем с истинными данными, то есть с остатком I*0.02V.
Теперь пришло время проверить на практике то, что я описал выше, а вернее вычитал в даташите.
Чтобы поработать с датчиком и проверить его возможности, я соорудил вот такой «мини-стенд»:
р р р ру
Первым делом я решил подать на датчик питание и измерить его выход, чтобы убедиться в том, что
за «ноль» у него принято 1/2 Vcc. Схему подключения можно взять в даташите, я же, желая лишь
ознакомиться, не стал тратить время и лепить фильтрующий конденсатор по питанию + RC цепочку
ФНЧ на выводе Vout. В реальном же устройстве без них никуда! Получил в итоге такую картинку:
При подаче питания 5В с моей платки STM32VL-Discovery я увидел вот такие результаты — 2.38В.
Первый же вопрос, который возник: "Почему 2,38, а не описанные в даташите 2.5?" Вопрос отпал
практически мгновенно — измерил я шину питания на отладке, а там 4.76-4.77В. А дело все в том,
что питание идет с USB, там уже 5В, после USB стоит линейный стабилизатор LM7805, а это явно не
LDO с 40 мВ падением. Вот на нем это 250 мВ примерно и падают. Ну да ладно, это не критично,
главное знать, что «ноль» это 2.38В. Именно эту константу я буду вычитать при обработке данных с
АЦП.
А теперь проведем первое измерение, пока лишь с помощью осциллографа. Измерять буду ток КЗ
моего регулируемого блока питания, он равен 3.06А. Это и встроенный амперметр показывает и
флюка такой же результат дала. Ну что же, подключаем выходы БП к ногам 4 и 5 датчика (на фото у
меня витуха брошена) и смотрим, что получилось:
Как мы видим, напряжение на Vout увеличилось с 2.38В до 2.44В. Если посмотреть на зависимость
выше, то у нас должно было получиться 2.38В + 3.06А*0.02В/А, что соответствует значению 2.44В.
Результат соответствует ожиданиям, при токе 3А мы получили прибавку к «нулю» равную 60 мВ.
Вывод — датчик работает, можно уже работать с ним с помощью МК.
Сначала по привычке я хотел после датчика поставить ОУ с коэф. усиления «1», но, глянув на
структурную схему, понял, что он внутри уже стоит. Единственное стоит учесть, что при
максимальном токе выходное питание будет равно питанию датчика Vcc, то есть около 5В, а STM
умеет измерять от 0 до 3.3В, так что необходимо в таком случае поставить делитель напряжения
резистивный, например, 1:1,5 или 1:2. У меня же ток мизерный, поэтому пренебрегу пока этим
моментом. Выглядит мое тестовое устройство примерно так:
Также для визуализации результатов прикрутил китайский дисплей на контроллере ILI9341, благо
валялся под рукой, а руки до него никак не доходили. Чтобы написать для него полноценную
библиотеку, убил пару часов и чашку кофе, благо даташит на удивление оказался информативным,
что редкость для поделок сыновей Джеки Чана.
Теперь необходимо написать функцию для измерения Vout с помощью АЦП микроконтроллера.
Рассказывать подробно не буду, по STM32 уже и так море информации и уроков. Так что просто
смотрим:
uint16_t get_adc_value()
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
return ADC_GetConversionValue(ADC1);
Д б АЦП
Далее, чтобы получить результаты измерения АЦП в исполняемом коде основного тела или
+32 163 86
data_adc = get_adc_value();
В итоге мы получаем переменную data_adc, которая принимает значение от 0 до 4095, т.к. АЦП в
STM32 идет 12 битный. Далее нам необходимо превратить полученный результат «в попугаях» в
более привычный для нас вид, то есть в амперы. Поэтому необходимо для начала посчитать цену
деления. После стабилизатора на шине 3.3В у меня осциллограф показал 3.17В, не стал
разбираться, с чем это связано. Поэтому, разделив 3.17В на 4095, мы получим значение 0.000774В
— это и есть цена деления. То есть получив с АЦП результат, например, 2711 я просто домножу его
на 0.000774В и получу 2.09В.
В нашей же задачи напряжение лишь «посредник», его нам еще необходимо перевести в амперы.
Для этого нам надо вычесть из результата 2.38В, а остаток поделить на 0.02 [В/А]. Получилась вот
такая формула:
Измерил собственное потребление схемы как видно 230 мА. Измерив тоже самое поверенной
флюкой, оказалось, что потребление 201 мА. Ну что же — точность в один знак после запятой это
уже очень круто. Объясню, почему… Диапазон измеряемого тока 0..100А, то есть точность до 1А это
1%, а точность до десятых ампера это уже 0,1%! И прошу заметить, это без каких либо
схемотехнических решений. Я даже поленился повесить фильтрующие кондеры по питанию.
Теперь необходимо замерить ток короткого замыкания (КЗ) моего источника питания. Выкручиваю
ручку на максимум и получаю следующую картину:
В заключение даже и не знаю, чего сказать. Надеюсь, моя статья хоть как-то поможет начинающим
радиолюбителям в их нелегком пути. Возможно, кому-то понравится моя форма изложения
материала, тогда могу продолжить периодически писать о работе с различными компонентами. Свои
пожелания по тематике можно высказать в комментариях, я постараюсь учесть.
Электропочта
46 0
Карма Рейтинг
@Leerooooy
Инженер-схемотехник (СВЧ)
Комментарии
86
Реклама
ПОХОЖИЕ ПУБЛИКАЦИИ
23 мая в 15:40
+40 12K 50 9
+13 7.3K 75 17
+17 2.8K 22 1
Турбо Промо
ВАКАНСИИ
C Разработчик (Embedded)
от 120 000 ₽ · Flipper Devices Inc. · Москва
сегодня в 00:40
+48 9.2K 15 49
вчера в 14:00
+42 8.9K 40 24
вчера в 20:00
+39 14K 43 60
вчера в 11:01
вчера в 10:26
+31 6.7K 31 10
Реклама
О компании
ЧИТАЮТ СЕЙЧАС
Турбо
Песочница Конфиденциальность
Настройка языка
О сайте
Техническая поддержка
© 2006–2021 «Habr»