датчик тока на ардуино неточен при нулевой нагрузке [закрыто]

В настоящее время я делаю измеритель мощности и использовал датчик тока (SCT013 30A/1V) с сайта yhdc.com . Все прошло хорошо, особенно схема, следуя руководству ( https://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface ). Использую ардуино нано. и библиотека emon для расчета тока.

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

Irms: 0.04
Irms: 0.04 
Irms: 0.04
Irms: 0.06
Irms: 0.03
Irms: 0.06
Irms: 0.03
Irms: 0.07
Irms: 0.04
Irms: 0.03
Irms: 0.03
Irms: 0.06
Irms: 0.04
Irms: 0.04

Я дважды проверил оборудование, и проблем нет.

при подключении нагрузки с током более 0,07А показания идеальные и стабильные. Я смог получить следующие показания, когда подключил лампу мощностью 75 Вт и напряжение 240 В.

Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.31
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.32
Irms: 0.32
Irms: 0.32

Мой код, как показано ниже.

#include "EmonLib.h"              // Include Emon Library
EnergyMonitor emon1;              // Create an instance

void setup()
{  
 Serial.begin(9600);


  emon1.current(0, 29);        // Current: input pin, calibration.
}

void loop()
{

   float r1=emon1.calcIrms(2000);
   Serial.print(" Irms: ");
   Serial.println(r1);



 }

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

Кто-нибудь знает, почему у меня такой шум и как его решить?

Прочитайте вход АЦП напрямую, посмотрите, какие значения он возвращает.
@jippie - Вход в АЦП от трансформатора тока - переменный ток (согласно ссылке OP). Чтение ADC напрямую даст несколько разных значений. Возможно, EmonLib.h выполняет некоторую обработку входного значения.
@Marla Я думаю, что значения АЦП находятся в шуме квантования, вероятно, этого должно быть достаточно без постобработки.
@OlinLathrop - тот факт, что используется «Arduino», не имеет отношения к проблеме. Тот факт, что Arduino основан на ATmega328p, имеет определенное значение, но многие (большинство?) микроконтроллеров будут демонстрировать подобное поведение. На самом деле, это вопрос, который в основном касается ключевых проблем проектирования электроники и таких вещей, которые, как правило, получают недостаточно информированные ответы, если их задают на сайте Arduino.
@Chris: Если это не касается Arduino, то зачем дискредитировать ваш вопрос и упоминать его. Помните, что Arduino — это не просто платформа, а состояние ума и желание НЕ изучать основные детали. В вопросе также упоминается библиотека «emon», как будто мы просто должны знать, что это такое. Также упоминается конкретный датчик тока, но нет таблицы данных и схемы, показывающей, как именно все было подключено в этом случае. Речь идет о высоких уровнях использования программного обеспечения Arduino, а не об электронных деталях.
@ Олин, так что используй свою с трудом заработанную репутацию, чтобы закрыться как слишком широкое и двигаться дальше по жизни. Ваше поведение является абразивным и ничего не решает. Вместо того, чтобы кричать на людей, которые не знают, как сформулировать законченный вопрос, закройте вопрос/потратьте 20 секунд на их обучение, и вы оба будете счастливее. Они получают ответ на свой вопрос, и вы засыпаете ночью, зная, что в следующий раз они напишут хороший вопрос. Мне кажется странным, что вы находите необходимость «вести войну» с теми, кто не так умен, как вы.
У меня была такая же проблема, и это было связано с шумом, исходящим от ПК (через USB). Я установил ЖК-дисплей для печати своих результатов, использовал приличный источник питания и отключил USB. после этого большая часть шума исчезла, и мой ток упал до 0,00 без нагрузки.
Спасибо @DanielP, я обязательно вернусь к этой проблеме и попытаюсь решить ее с помощью этого обновления.

Ответы (2)

Я думаю, вы смотрите на шум квантования аналого-цифрового преобразователя. Вы можете проверить это, проверив, какие значения выдает АЦП с помощью простого теста, analogRead(pin);и я уверен, что вы увидите только изменение этого значения на пару счетов в большую или меньшую сторону. Это означает, что вы работаете с наилучшим (или очень близким к нему) разрешением для текущей настройки. Вероятно, вам следует просто игнорировать младшую цифру.

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

Да, @Jippie, я подтвердил, что значения на аналоговом выводе немного подскакивают, и даже указывая EmonLib на этот вывод, который даже не подключен к датчику, все равно считывается малый шумный ток. Мой датчик на самом деле имеет встроенный нагрузочный резистор, поэтому позвольте мне разобрать его и попробовать использовать другой резистор... Спасибо.

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

В этом случае вам нужно выбрать лучший датчик. Технические характеристики того, что у вас есть, гарантируются только в диапазоне 10–120 % от номинального тока. Это будут уровни мощности от 360 до 4000 Вт.

Вы также должны иметь возможность переключать диапазоны. Я не знаю навскидку, каково разрешение АЦП Arduino, но, предполагая 10 бит, вы можете измерить изменения только на 1 мВ в диапазоне 0–1 В, что соответствует изменению тока нагрузки на 30 мА или 3,6 Вт при 120 В переменного тока.

Другими словами, если бы все остальное было идеально, маломощные нагрузки будут отображаться как 0 Вт, 3,6 Вт или 7,2 Вт, а не между ними. Однако вам также приходится иметь дело с реальными проблемами, такими как шум, смещения и нелинейность, которые сделают ваши измерения практически бесполезными на этом уровне.

Спасибо, Дэйв, позвольте мне попробовать сделать датчик лучше, попробуйте и сообщу вам о разработках.