Arduino aref пин: измеряем точное напряжение

Расчет частоты и индуктивности

В этом проекте мы будем измерять емкость и индуктивность с помощью LC цепи, включенной параллельно – то есть, по сути, это хорошо известный нам LC контур. Эту цепь можно сравнить со звонком, который начинает резонировать на определенной частоте. При подаче на эту цепь импульса она начинает резонировать и на ее выходе образуется синусоидальное колебание на резонансной частоте. Это синусоидальное колебание нам необходимо преобразовать в прямоугольную волну. Для этого мы будем использовать операционный усилитель на микросхеме 741, который будет преобразовывать синусоидальное колебание в последовательность прямоугольных импульсов с коэффициентом заполнения 50%. Затем мы будем измерять частоту этих импульсов с помощью платы Arduino и затем с помощью ряда математических преобразований мы можем определить измеряемые индуктивность или емкость. Для этого мы будем использовать обычную формулу, связывающую частоту и время для прямоугольной волны:

f=1/(2*time)

где time (время) будет определяться с помощью функции pulseIn() .

Также нам известна формула для расчета частоты LC контура:

f=1/2*Pi* square root of (LC)

square root – квадратный корень.

Из этого выражения мы можем выразить индуктивность L:

f2 = 1/ (4Pi2LC)L= 1/ (4Pi2 f2C)L = 1/(4* Pi * Pi * f * f * C)

Поскольку синусоидальная волна с выхода LC контура имеет одинаковую длительность положительность и отрицательной полуволны, то компаратор на основе операционного усилителя преобразует ее в прямоугольную волну (последовательность прямоугольных импульсов) с коэффициентом заполнения 50% — мы можем измерить частоту этой прямоугольной волны с помощью функции pulseIn() в Arduino. Эта функция определит нам временной период, который мы затем переведем в значение частоты с помощью выше приведенной формулы. Поскольку функция pulseIn измеряет только один импульс, поэтому чтобы получить правильное значение частоты мы его в формуле умножаем на 2. А когда у нас значение частоты, мы с помощью формулы для LC контура определим значение индуктивности.

Примечание: во время измерения индуктивности (L1) емкость C1) в нашем проекте должна быть 0.1 мкФ, а во время измерения емкости (C1) индуктивность (L1) должна быть равна 10 мГн. Если вы хотите изменить эти значения, то вам необходимо будет внести соответствующие изменения в код программы.

Схема на микросхеме 711

Микросхема ACS 711

ACS 711 – тот самый чип, благодаря которому удастся изготовить токовый датчик или ТД на основе ДХ (датчика Холла). ЧД такого датчика будет равен почти 100 кГц, что будет вполне эффективно для проведения измерений.

Микросхема этого типа имеет выход, который интегрируется с усилителем. Последний, в свою очередь, за счет своей оперативности способен увеличивать возможности схемы вплоть до 1 А/В.

Что касается питания, то напряжение на усилитель поступает за счет применения внутреннего источника 2-полярного типа. Это может быть вариант NSD10 либо какой-нибудь другой. Сама микросхема питается уже посредством стабилизатора, имеющего выход с напряжением 3,3 В.

Принцип работы датчика тока ACS712

Прежде чем приступить к рассмотрению проекта остановимся кратко на принципах работы датчика тока ACS712 поскольку он является ключевым элементом нашего проекта. Измерение силы тока, а особенно силы переменного тока, всегда является достаточно сложной задачей вследствие наличия большого количества шумов, вызванных проблемами с изоляцией и т.д. Но с использованием датчика тока ACS712 эта задача значительно упрощается.

Этот датчик построен на использовании эффекта Холла, открытым ученым Эдвином Холлом. В соответствии с данным эффектом когда проводник с током помещается в магнитное поле на его концах формируется напряжение, перпендикулярное направлению протекания тока и направлению действующего магнитного поля. Измерять это напряжение мы будем в милливольтах и будем называть его напряжением Холла. Величина этого напряжения будет пропорциональна величине протекающего через проводник тока.

Основным достоинством датчика тока ACS712 является то, что он может измерять как переменный (AC), так и постоянный ток (DC) и он также обеспечивает изоляцию между нагрузкой и измерительным устройством (в нашем случае это будет плата Arduino. Как показано на следующем рисунке, датчик тока ACS712 имеет три контакта – Vcc (питающее напряжение), Vout (выход) и Ground (земля).

Слева на рисунке показаны два контакта, которые подсоединяются к тому месту, где необходимо измерить ток. Датчик работает от напряжения +5V – его необходимо подать на контакт Vcc датчика. Контакт Ground датчика необходимо подсоединить к земле схемы. Если сила измеряемого тока равна нулю, то на выходном контакте датчика напряжение равно 2500mV, если протекающий ток положителен, то напряжение на выходе датчика будет больше 2500mV, если отрицателен – то меньше 2500mV.

Для считывания напряжения с этого контакта мы будем использовать один из аналоговых входов Arduino – на выходе его АЦП (аналогово-цифровой преобразователь) будет значение 512 когда на входе контакта будет напряжение 2500mV – то есть когда ток не протекает. Это значение будет уменьшаться когда ток будет протекать в обратном (отрицательном) направлении, и увеличиваться когда ток будет протекать в прямом (положительном) направлении. В следующей таблице представлены примеры значений на выходе АЦП аналогового контакта Arduino в зависимости от величины протекающего через датчик тока.

Эти значения были рассчитаны на основе даташита на датчик ACS712. Вы их также можете рассчитать по следующим формулам:

Vout Voltage(mV) = (ADC Value/ 1023)*5000Ток через проводник (A) = (Vout(mv)-2500)/185

Модуль ВМР 280

ВМР 250 – микро-чип, используемый для цифрового высокочастотного измерителя показателей атмосферного давления. Каждый датчик на этапе его создания проходит калибровку. Благодаря минимальным размерам, отличной измерительной способности и незначительному энергопотреблению, они часто используются для датчиков давления Ардуино. ВМР 280 имеет два последовательных интерфейса, используемых для обмена данными и 3 режима работы:

  • FORCED. Этот режим дает возможность активировать модуль подачи сигнала извне. После того, как измерения произведены, он переходит в режим автоматического сниженного энергопотребления.
  • SLEEP. Находясь в этом режиме потребление электроэнергии прибора минимальное.
  • NORMAL. При переходе в этот режим, модуль начинает периодичные измерения. После этого он вновь переходит в спящий режим. Для задачи нужной частоты, с которой должны проводиться измерения, используется специальная программа. Результат может быть считан в любое время.

Кроме измерения показателей атмосферного давления, модуль ВМР 280 способен измерять температуру воздуха. Чтобы отфильтровать вычисления, которые осуществляет модуль, используется программный фильтр с подходящими настройками.

Датчик атмосферного давления и температуры BMP280Источник 3d-diy.ru

Среди основных технических характеристик модуля ВМР 280, выделяют:

  • показатели напряжения питания на уровне от 1,71 V до 3,6 V;
  • атмосферное давление может измеряться в диапазоне от 300hPa до 1100hPa (такие показатели характерны для высоты от -500 до 9 000 м выше уровня моря);
  • интерфейс обмена информацией SPI с максимально возможной частотой работы 10 МГц или I2C с показателем максимально возможной частотой работы 3,4 МГц;
  • прибор способен работать при температуре не ниже -40 и не выше +85 градусов;
  • размер модуля составляет 21*18 мм;
  • в режиме работы величина тока потребления равна 2.7uA.

Исходный код программы

Полный код программы приведен в конце статьи, здесь же сначала рассмотрим его наиболее важные фрагменты.

В программе мы должны сообщить плате Arduino, к каким ее контактам подключен ЖК дисплей. Контакт RS ЖК дисплея подключен к цифровому контакту 2 платы Arduino, а контакт Enable – к цифровому контакту 3 платы Arduino. Контакты данных ЖК дисплея (D4-D7) подключены к цифровым контактам 4,5,6,7 платы Arduino.

Arduino

LiquidCrystal lcd(2,3,4,5,6,7); //rs,e,d4,d5,d6,d7

1 LiquidCrystallcd(2,3,4,5,6,7);//rs,e,d4,d5,d6,d7

Затем в программе мы должны инициализировать необходимые нам переменные.

Arduino

int Vin=5; //напряжение на контакте 5V платы arduino
float Vout=0; //напряжение на контакте A0 платы arduino
float R1=3300; //значение сопротивления известного резистора
float R2=0; // значение сопротивления неизвестного резистора

1
2
3
4

intVin=5;//напряжение на контакте 5V платы arduino

floatVout=;//напряжение на контакте A0 платы arduino

floatR1=3300;//значение сопротивления известного резистора

floatR2=;// значение сопротивления неизвестного резистора

Далее в программе мы должны инициализировать наш ЖК дисплей.

Arduino

lcd.begin(16,2);

1 lcd.begin(16,2);

Затем мы должны считать значение на выходе АЦП контакта A0.

Далее значение с выхода АЦП (оно в диапазоне от 0 до 1023) конвертируется в значение напряжения.

Arduino

buffer=a2d_data*Vin;
Vout=(buffer)/1024.0;

1
2

buffer=a2d_data*Vin;

Vout=(buffer)1024.0;

Далее в коде программе исходя из найденного значения напряжения мы рассчитываем значение сопротивления R2.

Arduino

buffer=Vout/(Vin-Vout);
R2=R1*buffer;

1
2

buffer=Vout(Vin-Vout);

R2=R1*buffer;

Далее найденное значение сопротивления резистора R2 выводится на экран ЖК дисплея.

Arduino

lcd.setCursor(4,0);
lcd.print(«ohm meter»);
lcd.setCursor(0,1);
lcd.print(«R (ohm) = «);
lcd.print(R2);

1
2
3
4
5

lcd.setCursor(4,);

lcd.print(«ohm meter»);

lcd.setCursor(,1);

lcd.print(«R (ohm) = «);

lcd.print(R2);

Если вас заинтересовал данный проект, то вы можете следующие похожие проекты на нашем сайте:
— цифровой вольтметр на Arduino;
— цифровой амперметр на Arduino;
— частотомер на Arduino;
— измеритель емкости на Arduino.

Далее приведен полный код программы.

Arduino

#include<LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7); //rs,e,d4,d5,d6,d7
int Vin=5; //напряжение на контакте 5V платы arduino
float Vout=0; //напряжение на контакте A0 платы arduino
float R1=3300; //значение сопротивления известного резистора
float R2=0; // значение сопротивления неизвестного резистора
int a2d_data=0;
float buffer=0;
void setup()
{
lcd.begin(16,2);
}
void loop()
{
a2d_data=analogRead(A0);
if(a2d_data)
{
buffer=a2d_data*Vin;
Vout=(buffer)/1024.0;
buffer=Vout/(Vin-Vout);
R2=R1*buffer;
lcd.setCursor(4,0);
lcd.print(«ohm meter»);
lcd.setCursor(0,1);
lcd.print(«R (ohm) = «);
lcd.print(R2);

delay(1000);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include<LiquidCrystal.h>

LiquidCrystallcd(2,3,4,5,6,7);//rs,e,d4,d5,d6,d7

intVin=5;//напряжение на контакте 5V платы arduino

floatVout=;//напряжение на контакте A0 платы arduino

floatR1=3300;//значение сопротивления известного резистора

floatR2=;// значение сопротивления неизвестного резистора

inta2d_data=;

floatbuffer=;

voidsetup()

{

lcd.begin(16,2);

}

voidloop()

{

a2d_data=analogRead(A0);

if(a2d_data)

{

buffer=a2d_data*Vin;

Vout=(buffer)1024.0;

buffer=Vout(Vin-Vout);

R2=R1*buffer;

lcd.setCursor(4,);

lcd.print(«ohm meter»);

lcd.setCursor(,1);

lcd.print(«R (ohm) = «);

lcd.print(R2);

delay(1000);

}

}

Библиотека HX711.h

Все сказанное ранее описывает всего несколько команд управляющих HX711. Далее представлен их полный список с расшифровкой. Нужно только напомнить, что инициализация подключаемого модуля проводится так: #define DT A0 #define SCK A1 #include «HX711.h» HX711 scale; // структура через которую будет идти обращение

Остальные процедуры:

Название Параметры по порядку На выходе Описание
begin() A1 — Вывод Ардуино, где DT, A2 — вывод SCK,

A3 — разрядность датчика 32(B), 64 или 128(A). По умолчанию 128

Ничего Инициализация
is_ready() Ничего True — готов, False — не готов Тест состояния АЦП
set_gain() 32,64,128 Ничего Установка значения усиления
read() Ничего Сырое значение АЦП Возвращает «чистый» ответ HX711 без поправочных сведений
read_average() Сколько делать проб Возвращает среднюю цифру от выполненных проб (унция) Получить усредненные данные
get_value() Сколько делать проб На выходе средняя масса (унция) без упаковки Получение поправленного значения без веса упаковки
get_units() Сколько делать проб Усредненная поправленная масса (унция) Возвращает массу с учетом упаковки и поправочных значений.
Tare() Сколько делать проб Масса упаковки (унция) Получение массы упаковки
set_scale() Коэффициент Ничего Задание значения корректировки
get_scale() Ничего Значение Получение текущего значения заданного set_scale()
set_offset() Вес (унция) Ничего Ручная установка веса упаковки
Get_offset() Ничего Масса (унция) Запрос установленного вручную параметра упаковки
power_down() Ничего Ничего Перевести HX711 в состояние «сна»
power_up() Ничего Ничего Вывод модуля АЦП из «сна»

Датчик тока на микросхеме ZXCT1009F

Упростить схему активного датчика и увеличить крутизну передаточной характеристики датчика тока можно, применив специализированную микросхему ZXCT1009F.

О возможности применения этой микросхемы для измерения переменного тока было рассказано в . Схема устройства показана на рис. 11. Назначение элементов R1 и С1 такое же, как в ранее описанных устройствах.

Диод VD1 защищает вход микросхемы DA1 от нештатной полярности входного напряжения. Эта микросхема работает как однополупериодный выпрямитель, напряжение на выходе интегрирующей цепи R3C2 будет пропорционально среднему значению тока нагрузки.

Рис. 11. Схема датчика тока на микросхеме ZXCT1009F.

Рис. 12. Печатная плата.

Рис. 13. Размещение деталей на печатной плате.

Детали устройства смонтированы на печатной плате из фольгированного с одной стороны стеклотекстолита, чертёж которой приведён на рис. 12. Расположение элементов показано на рис. 13, а внешний вид варианта смонтированной платы — на рис. 14. Применены элементы для поверх ностного монтажа.

При выборе напряжения питания активных датчиков не следует забывать о так называемом коэффициенте амплитуды Ка (или крест-факторе) потребляемого нагрузкой тока, который характеризует отношение амплитуды потребляемого тока Іа к его действующему (или эффективному) значению Іэф: Ка = Iа/Iэф.

Дело в том, что многие бытовые устройства, питающиеся от сети, имеют встроенный импульсный источник питания с выпрямителем на входе.

Сглаживающий конденсатор выпрямителя заряжается только вблизи максимума сетевого напряжения, и от сети потребляется ток только в эти моменты. Для переменного тока прямоугольной формы Ка = 1, для синусоидального — Ка = 1,41, а для импульсного источника — Кa = 2…4.

Рис. 14. Вид датчика.

Это означает, что в активных датчиках максимальное неискаженное выходное напряжение ииыима,с должно быть больше, чем напряжение Uвых на выходе датчика (см. рис. 1), по крайней мере, в Ка, раз, а напряжение питания — ещё больше.

Например, для датчика на ОУ (двухполупериодный выпрямитель) при Uвых = 2 В и Ка = 2 напряжение питания Uпит >= 4 В для ОУ структуры rail-to-rail или Uпит >= 5…6 В для обычного ОУ.

Поскольку на микросхеме ZXCT1009F собран одполупериодный выпрямитель, при тех же условиях напряжение питания должно быть примерно в три раза больше, чем Uвых. При этом не следует забывать, что для питания самой микросхемы требуется напряжение не менее 1,5…2 В.

Поскольку интегрирующие цепи на выходе датчиков высокоомные, к их выходам следует подключать нагрузку, сопротивление которой, по крайней мере, в десять раз больше сопротивления резистора в интегрирующей цепи.

Каждый из датчиков требует калибровки, которую можно провести с помощью амперметра действующего значения переменного тока, источника переменного напряжения, в качестве которого можно применить вторичную обмотку понижающего трансформатора, включённого в сеть, и мощного переменного резистора.

И. Нечаев, г. Москва. Р-06-19.

Литература:

  1. ZXCT1009. HIGH-SIDE CURRENT MONITOR. diodes.com.
  2. Нечаев И. Микросхема ZXCT1009F и конструкции на её основе. Часть 1. Измерение большого постоянного и переменного токов. Приставка к мультиметру. — Р-11-2018.
  3. Anthony Н. Smith. Full-Wave Active Rectifier Requires No Diodes. — radiolocman.com.

Практические ниши применения

Несмотря на определенные ограничения сенсора, ниши в которых он действительно пригодится весьма широки. Посудите сами — в сущности, потребление электроэнергии возникает единовременно с моментами включения устройств, находящихся на линии. А сам сенсор именно в это время начинает регистрировать показания. То есть датчик тока с Arduino можно использовать не только, как конечный измеряющий прибор, но и в качестве контролирующей части, определяющей активацию какого-либо оборудования. Самый простой пример — обычная лампа. Совместив микроконтроллер с датчиком света и тока можно добиться того, что будет не только производиться активация освещения в темный период времени, но и станет отправляться сигнал пользователю, если источник видимого излучения выйдет из строя. Или, другим примером может стать контроль физического состояния насоса, двигателя, а также любого электрического прибора, потребляющего энергию.

Опять же. Применяя Arduino одновременно с ACS712, как наиболее распространенным датчиком тока платформы, можно использовать микроконтроллер именно в роли детектирующего прибора, который в зависимости от определенного времени производит замер потребления конечной сети. Или как очень «умный» мультиметр, с возможностью построения On-line графиков на дополнительно соединенном к аппарату экране или внешнем компьютере.

1Описание датчикатока ACS712

Датчик тока ACS712 – это датчик, который основан на эффекте Холла. Эффект Холла заключается в том, что когда через проводник, помещённый в магнитное поле, протекает электрический ток, в проводнике возникает напряжение. Это напряжение и служит индикатором силы тока: оно линейно зависит от силы тока. Ещё оно имеет небольшую зависимость от температуры окружающей среды и поддаётся влиянию внешних магнитных полей. Так, например, на графике ниже показана зависимость напряжения на выходе датчика ACS712 от силы протекающего тока (для одной из разновидностей датчика, об этом чуть ниже) при различных температурах:


Зависимость напряжения на выходе датчика ACS712 от силы тока

Модуль с датчиком ACS712 может выглядеть, например, так:


Модуль с датчиком тока ACS712 и схема подключения

Датчик ACS712 имеет следующие характеристики:

  • работает с постоянным и переменным током;
  • ток потребления – до 13 мА;
  • температура эксплуатации -40…+85 °C.

Существуют несколько разновидностей датчика ACS712, которые отличаются величиной измеряемого тока. Так, существуют разновидности с максимально измеряемым током 5, 20 и 30 А. Широкий диапазон измеряемых значений тока можно отнести к существенным преимуществам датчика ACS712. Перечисленные модификации имеют чувствительность 185, 100 и 66 мВ/А соответственно.

Как работают датчики и токовые клещи для измерения постоянного и переменного тока

Для расширения функционала мультиметров, осциллографов и других электроизмерительных инструментов, применяются токовые датчики в форме клещей — токовые клещи. Для проведения измерений клещами, их смыкают в обхват проводника с током, и таким образом, без разрыва цепи и без необходимости врезания в проводник какого бы то ни было шунта, осуществляют замер.

Это просто и удобно. Результат измерения прибор отображает на своей шкале в виде напряжения или тока пропорциональной измеренному току величины. Достоинство метода заключается еще и в том, что прибор может и не иметь достаточно широкого входного диапазона, тогда как датчик — клещи вполне в состоянии свободно принять проводник даже с очень большим током.

Проводник с измеряемым током не только остается целым, но и всегда гальванически изолирован от цепей измерительного прибора. Сам же прибор может иметь входную цепь с очень высоким импедансом и даже быть заземлен. Здесь нет необходимости как-то регулировать или включать и выключать питание цепи, параметры которой измеряются клещами, а значит в работе питаемого оборудования не будет простоев.

Среднеквадратичное значение тока в диапазоне частотных характеристик датчика можно измерить при совместном использовании токового датчика с мультиметром, способным измерять среднеквадратичные значения. В данном случае диапазон будет ограничен возможностями (шкалой) мультиметра. Лучшие результаты достигаются с датчиками обладающими широкой частотной характеристикой, минимальным фазовым сдвигом и высокой точностью.

Для измерения параметров переменного тока используются датчики, работающие по принципу обычного измерительного токового трансформатора. Любой трансформатор имеет первичную и вторичную обмотки, установленные на общем магнитопроводе. Первичное напряжение подается на первичную обмотку, в сердечнике создается переменный магнитный поток, наводящий во вторичной обмотке соответствующую коэффициенту трансформации ЭДС. Токи первичной и вторичной обмоток соотносятся как количества витков во вторичной и первичной обмотках.

Так и работает токовый датчик для измерения переменного тока. Магнитопровод в форме клещей замыкается вокруг проводника. Проводник — это первичная обмотка, состоящая из одного единственного витка, значение тока в котором необходимо узнать.

Ток во вторичной обмотке будет пропорционален току в проводнике и отличаться от него в число раз, равное коэффициенту трансформации, то есть во столько раз, сколько витков во вторичной обмотке. Количество витков во вторичной обмотке датчика обычно 1000, 500 или 100.

Если датчик имеет 1000 витков, то клещи имеют обозначение 1000:1 или 1мА/А — это значит что 1 мА в показаниях прибора тождественен 1А в исследуемом проводнике. Или 1А на приборе — 1000 А в проводнике.

Соотношение может быть в принципе и другим: 3000:5 или 2000:2, в зависимости от назначения прибора. Однако в большинстве случаев клещи работают в паре с обычным мультиметром и соотношение, как правило, 1000:1.

При соотношении 1000:1 или 1мА/А показания прибора будут такими. При входном токе в 700А выходные показания окажутся 700мА, при 300А — 300мА и т. д. Так происходит потому, что выход датчика присоединяется к цифровому мультиметру в режиме измерения переменного тока с выбранным диапазоном значений.

Для определения действующей величины тока в проводнике, показания мультиметра умножаются на коэффициент датчика. Главное — чтобы измерительный прибор имел требуемое входное сопротивление.

Если измерительный прибор имеет вход только по напряжению (вольтметр или осциллограф), то он также может использоваться с токовым датчиком — клещами. Для этого токовый выход датчика необходимо согласовать с входом прибора, применив принцип измерительного трансформатора тока. Тогда показания переменного напряжения будут пропорциональны измеряемому переменному току.

Как настроить датчик тока на полетном контроллере квадрокоптера?

Во-первых, настройка датчика тока с помощью обычного мультиметра.

Для того, чтобы измерить потребляемый ток мультиметром, необходимо спаять вот такой переходник.

Состоит он из двух разъемов XT-60, автомобильного предохранителя на 10 ампер и трех кусков провода сечением не меньше 1,5 мм 2 .

Одним куском провода мы напрямую соединяем разъемы для аккумуляторов. Другие 2 куска припаиваем к разъемам, но оставляем разрыв. В этот разрыв припаиваем предохранитель. Он нам нужен для того, чтобы предотвратить порчу мультиметра. Большинство измерительных приборов, которые есть в продаже, имеют ограничение по измеряемому току в 10 А.

Ну вот и все готово для настройки датчика тока квадрокоптера.

Изготовление печатной платы для проекта

Спроектированная нами печатная плата для рассматриваемого в данной статье проекта регулируемой электронной нагрузки на основе платы Arduino показана на следующем рисунке.

Заказать печатную плату можно, к примеру, на сервисе allpcb.com, или у любого другого изготовителя печатных плат. Процессы заказа и оплаты изготовления печатной платы на сервисе allpcb.com показаны на следующих рисунках.

После изготовления печатная плата пришла авторам проекта вот в такой вот коробке:

Внешний вид пришедшей печатной платы показан на следующем рисунке. Качество изготовления, как видите, хорошее.

После сборки проекта на основе этой печатной платы получился следующий окончательный вид конструкции нашего проекта:

Дальнейшее развитие идеи и замечания

  • Нелинейность датчика составляет приблизительно 3% от максимально измеряемого тока. То есть в случае 100A-ного датчика показания будут гулять в +-3A. . Для меньшего предельного тока выбирайте подходящий датчик, не покупайте «с запасом» по уровню тока.
  • У меня снятое напряжение с датчика отправляется на собственный сервер Blynk, что позволяет грубо отслеживать энергопотребление удаленного от меня дома.
  • Стоит отдельно сказать о том, что датчик показывает именно ток. При стабильном сетевом напряжении в 230 вольт этот ток можно перевести в ватты или киловатты, просто умножив ток на сетевое напряжение. Однако в сельской местности напряжение периодически проседает, и это необходимо учитывать.
  • При отладке я чуть мозг себе не сломал из-за херово работающего dupont-контакта на аналоговый порт. Убедитесь в качественном контакте, чтобы не терять зря целый вечер, как я.
  • Датчик ловит большом количество электромагнитных шумов даже при полном отсутствии какой бы то ни было нагрузки (особенно, около ртутных ламп-трубок, особенно, если он рассчитан на 100А), поэтому это тоже стоит учитывать и, возможно, ставить какой-от программный фильтр. В моем случае датчик обнаруживал в воздухе около 0,03-0,05А тока.
  • Подключить датчик SCT-013-000 к Raspberry не выйдет, так как он отдает аналоговый сигнал, а «голый», без обвеса шилдами raspberry не обладает АЦП. Либо надо покупать шилд АЦП для малинки, либо, что проще, использовать в качестве АЦП Arduino Nano и Arduino Micro, а на «малинку» отдавать уже готовые значения. Притом на Ардуино можно организовать даже примитивный программный фильтр.

Практика применения

Чаще всего данные изделия используются как измерители в схемах токовых реле, которые управляют режимами работы различного электроприводного оборудования и предохраняют его от экстремальных ситуаций.

Токовые реле способны защитить любое механическое устройство от заклинивания или других условий перегрузки, которые приводят к ощутимому увеличению нагрузки на двигатель. Функционально они определяют уровни тока и выдают выходной сигнал при достижении указанного значения. Такие реле используются для:

  • Сигнала сильноточных условий, например, забитая зёрнами доверху кофемолка;
  • Некоторых слаботочных условий, например, работающий насос при низком уровне воды.

Чтобы удовлетворить требования разнообразного набора приложений, в настоящее время используется блочный принцип компоновки датчиков, включая применение USB-разъёмов, монтаж на DIN-рейку и кольцевые исполнения устройств. Это обеспечивает выполнение следующих функций:

  • Надёжную работу на любых режимах эксплуатации;
  • Возможность применения трансформаторов;
  • Регулировка текущих параметров, которые могут быть фиксированными или регулируемыми;
  • Аналоговый или цифровой выход, включая и вариант с коротким замыканием;
  • Различные исполнения блоков питания.

В качестве примера рассмотрим схему датчика тока для управления работой водяного насоса, обеспечивающего подачу воды в дом.

Кавитация — это разрушительное состояние, вызванное присутствием пузырьков, которые образуются, когда центробежный насос или вертикальный турбинный насос работает с низким уровнем жидкости. Образующиеся пузырьки затем лопаются, что приводит к точечной коррозии и разрушению исполнительного узла насоса. Подобную ситуацию предотвращает токовое реле.

Когда насос работает в нормальном режиме, и жидкость полностью перекрывает его впускное отверстие, двигатель насоса потребляет номинальный рабочий ток. В случае снижения уровня воды потребляемый ток уменьшается. Если кнопка запуска нажата, одновременно включаются стартёр M и таймер TD. Реле CD настроено на максимальный ток, поэтому его контакт при первоначальном запуске двигателя не будет замкнут. При падении силы тока ниже установленного минимума реле включается, а, после истечения времени ожидания TD, включается в его нормально замкнутый контакт. Соответственно контакты CR размыкаются и обесточивают двигатель насоса.

Применение такого детектора исключает автоматический перезапуск насоса, поскольку оператору необходимо убедиться в том, что уровень жидкости перед впускным отверстием достаточен.

Практика применения

Чаще всего данные изделия используются как измерители в схемах токовых реле, которые управляют режимами работы различного электроприводного оборудования и предохраняют его от экстремальных ситуаций.

Токовые реле способны защитить любое механическое устройство от заклинивания или других условий перегрузки, которые приводят к ощутимому увеличению нагрузки на двигатель. Функционально они определяют уровни тока и выдают выходной сигнал при достижении указанного значения. Такие реле используются для:

  • Сигнала сильноточных условий, например, забитая зёрнами доверху кофемолка;
  • Некоторых слаботочных условий, например, работающий насос при низком уровне воды.

Чтобы удовлетворить требования разнообразного набора приложений, в настоящее время используется блочный принцип компоновки датчиков, включая применение USB-разъёмов, монтаж на DIN-рейку и кольцевые исполнения устройств. Это обеспечивает выполнение следующих функций:

  • Надёжную работу на любых режимах эксплуатации;
  • Возможность применения трансформаторов;
  • Регулировка текущих параметров, которые могут быть фиксированными или регулируемыми;
  • Аналоговый или цифровой выход, включая и вариант с коротким замыканием;
  • Различные исполнения блоков питания.

В качестве примера рассмотрим схему датчика тока для управления работой водяного насоса, обеспечивающего подачу воды в дом.

Кавитация — это разрушительное состояние, вызванное присутствием пузырьков, которые образуются, когда центробежный насос или вертикальный турбинный насос работает с низким уровнем жидкости. Образующиеся пузырьки затем лопаются, что приводит к точечной коррозии и разрушению исполнительного узла насоса. Подобную ситуацию предотвращает токовое реле.

Когда насос работает в нормальном режиме, и жидкость полностью перекрывает его впускное отверстие, двигатель насоса потребляет номинальный рабочий ток. В случае снижения уровня воды потребляемый ток уменьшается. Если кнопка запуска нажата, одновременно включаются стартёр M и таймер TD. Реле CD настроено на максимальный ток, поэтому его контакт при первоначальном запуске двигателя не будет замкнут. При падении силы тока ниже установленного минимума реле включается, а, после истечения времени ожидания TD, включается в его нормально замкнутый контакт. Соответственно контакты CR размыкаются и обесточивают двигатель насоса.

Применение такого детектора исключает автоматический перезапуск насоса, поскольку оператору необходимо убедиться в том, что уровень жидкости перед впускным отверстием достаточен.

5Подключение датчика тока и напряжения INA219 к Arduino

Для начала пойдём простым путём: скачаем готовую библиотеку, загрузим в Arduino и посмотрим на результат. Существует несколько библиотек для работы с нашим датчиком. Предлагаю воспользоваться вот этой популярной библиотекой для INA219 от Adafruit. Скачаем её, установим стандартным образом и загрузим в Arduino скетч из примеров getcurrent.

Если скетч не компилируется, а в сообщениях об ошибках присутствуют какие-то недостающие компоненты (например, Adafruit_I2CDevice.h или Adafruit_BusIO_Register.h, то необходимо доустановить их. Проще всего это сделать так. Для этого способа требуется подключение к интернету на компьютере, где запущена среда разработки. Открыть в среде Arduino IDE менеджер библиотек: в меню Tools Manage Libraries…. Откроется окно Library Manager. В поле поиска следует ввести adafruit busio. Когда библиотека будет обнаружена и покажется в списке, нажать кнопку Install.


Установка недостающих библиотек через менеджер библиотек Arduino IDE

Подключим модуль GY-219 к Arduino по следующей схеме. SDA и SCL датчика можно подключить как к аналоговым входам A4 и A5 Arduino, так и к специально выделенным портам SDA и SCL (если они есть на вашей плате).


Схема подключения датчика INA219 к Arduino

В качестве нагрузки может быть любой источник, например, электромотор, лампа или просто мощный резистор. У меня это 5 соединённых параллельно 5-ваттных 16-омных резисторов. В качестве источника питания также может выступать любой из имеющихся у вас источников. Я буду использовать лабораторный источник питания.


Датчик INA219 подключён к Arduino

В результате выполнения скетча получится следующий вывод:


Результат работы скетча «GetCurrent» для датчика тока INA219

Отлично! Всё работает! Как говорится, бери – и пользуйся.

Данная библиотека позволяет также проводить калибровку датчика INA219 при необходимости. Подробности – в описании библиотеки и в самих исходниках (в файле Adafruit_INA219.cpp библиотеки даётся большое число пояснений).

Принцип работы барометра

Давление атмосферного столбика измеряют прибором, именуемым барометром. Раньше он был круглым и плоским, как тарелка, внутрь помещали ртуть и ставили пробирку. Если снаружи давление увеличивалось, то и ртуть поднималась внутри колбы выше.

Такой принцип действия сродни термометру спиртового типа. Барометр-анероид — более усовершенствованная и безопасная модель, ее создали позже.

Карманный барометр Baro 90BИсточник bigl.ua

Сегодня барометры используют не только для оценки показателей атмосферного давления. Его так же устанавливают на различные летательные аппараты с целью определения высоты полета. Если летательный аппарат при подъеме оказывается выше уровня моря, показатель давления на приборе уменьшается. Таким образом, получается определить высоту полета.

Еще один вариант использования барометров – прогнозирование погоды в домашних условиях. Для этого так же используют знания и том, как погода зависит от давления атмосферы. На такие приборы дополнительно устанавливают датчики, определяющие температуру воздуха и уровень его влажности.