Используя Arduino Nano и трансформатор тока (CT), я пытаюсь почувствовать ток, протекающий через линию 120 В 60 Гц.
схема
Выходы КТ в 0-1 V
соответствии с его спецификациями Этот выход смещен AREF/2
= 2,5 В.
analogRead
Ценности
Ось X представляет номер индекса образца АЦП, а ось Y представляет значение АЦП (0-1024). Частота дискретизации составляет около 9 кГц. Разница между пиками составляет около 1026 образцов.
Это форма волны, что вы ожидаете от CT? Почему существуют регионы, где значения являются плоскими, а не постоянно меняются?
Кроме того, если мы посмотрим на кривую часть графика, почему Arduino читает значения выше 512
и ниже 512
попеременно? Он читает значение выше 512
, затем значение ниже 512
, затем значение выше 512
и так далее.
Время, затраченное на analogRead
измерение, составило 110 микросекунд для моей установки, и между пиками формы сигнала было 1026 выборок. Это означает, что в течение 1 секунды будет около 9 пиков, хотя я ожидаю 60 пиков, поскольку мы ощущаем линию 60 Гц. Что вы делаете из этого? В C1
цепи есть конденсатор, это как-то связано с этим?
Подходят ли эти значения analogRead для расчета среднеквадратичного напряжения и, следовательно, среднеквадратичного тока, проходящего через измеряемый провод? Конечной целью этого является вычисление потребления энергии после определения действующего значения тока, протекающего через провод.
Эскиз, используемый для получения значений для сюжета
void setup() {
Serial.begin(9600);
}
void loop() {
double sensorValue = analogRead(1);
Serial.println(sensorValue)
}
Фактические analogRead
данные в точках рельефа
487
534
487
535
488
537
484
536
487
538
486
536
484
540
484
539
485
540
483
540
484
541
481
539
481
540
484
540
480
543
484
539
481
540
484
541
486
542
485
538
485
538
488
535
489
534
491
530
491
529
493
531
492
526
498
526
499
524
499
520
503
518
502
518
507
График аналоговых значений
Значения analogRead теперь сохраняются в буфере перед передачей через последовательный порт. В настоящее время существует 55 точек данных АЦП, составляющих 1 период. Учитывая, что время аналогового чтения составляет 110 мкс, каждый цикл занимает 6,05 мс, что дает нам частоту 165 Гц! Что могло пойти не так?
void loop() {
double sensorValue = analogRead(1);
char buf[32];
dtostrf(sensorValue, 8, 2, buf);
value = buf;
if (stop == 0) {
if (i < 10000) {
message += ',';
message += value;
i++;
}
else {
stop = 1;
Serial.println(message);
}
}
}
analogRead()
и обнаружил, что оно составляет 110 микросекунд. Обновил вопрос.Ответы:
Что касается ваших измерений, я бы полностью проигнорировал первый набор с Serial.println () в цикле. Я ожидаю, что время этого будет ненадежным.
Ваш второй набор данных, которые вы записали в буфер, выглядит правильно, но ваша оценка / синхронизация частоты может быть неправильной. Я бы инвертировал цифровой выход на каждой итерации цикла. Вы можете измерить частоту этого с помощью мультиметра, и ваша частота дискретизации АЦП будет вдвое больше этого значения.
Для блока питания ПК или ноутбука это довольно распространенная форма сигнала тока.
Без эффективной коррекции коэффициента мощности текущий сигнал, показанный ниже, будет довольно типичным (источник: http://www.nlvocables.com/blog/?p=300 ).
Вам нужно будет рассчитать среднеквадратичные значения, и было бы целесообразно отфильтровать сигнал.
Вот инструкция, которую я написал о том, как создать и кодировать монитор электричества на основе Arduino Yun с поддержкой облака / Temboo и Google Drive. Это должно вам помочь.
источник
если вы измеряете резистивную нагрузку, я бы сказал, что выбранный вами нагрузочный резистор неправильный, на ebay есть несколько дешевых трансформаторов тока (SCT-013-xxx), которые имеют версии с нагрузочными резисторами и без них, они хорошо работают за свою цену но вы должны прочитать таблицу. SCT-013-000 требуется резистор 20R для вывода 1 В с нагрузкой 100А. Если этот резистор не так, вы можете получить сильно искаженную форму волны при измерении более высоких токов (аналогично тем, которые вы предоставили), вы ожидаете, что сигнал чем больше искажение, тем ниже значение нагрузочного резистора, но это не относится к ТТ.
источник