Съдържание:

Регистратор на данни за мониторинг на променлив ток: 9 стъпки (със снимки)
Регистратор на данни за мониторинг на променлив ток: 9 стъпки (със снимки)

Видео: Регистратор на данни за мониторинг на променлив ток: 9 стъпки (със снимки)

Видео: Регистратор на данни за мониторинг на променлив ток: 9 стъпки (със снимки)
Видео: РАЗПРОСТРАНЯВАНЕ НА WIFI НАБЛЮДЕНИЕ ЛИЦЕ 4G камера за наблюдение 2024, Юли
Anonim
Регистратор на данни за мониторинг на променлив ток
Регистратор на данни за мониторинг на променлив ток

Здравейте всички, добре дошли в първата ми инструкция! През деня съм инженер -изпитател на компания, която доставя промишлено отоплително оборудване, през нощта съм запален любител на технологиите и DIY'er. Част от работата ми включва тестване на производителността на нагревателите, по този повод исках да мога да наблюдавам текущото теглене на RMS на 8 устройства за 1000 часа и да регистрирам данните, за да начертая резултатите по -късно. Имам достъп до регистратор на данни, но той вече беше ангажиран с друг проект и имах нужда от нещо на ниска цена, затова реших да съчетая този основен регистратор на данни.

Проектът използва Arduino Uno за четене на аналогови сензори чрез аналогово -цифров преобразувател (ADC) и записва данните с времева маркировка на SD карта. Има много теория и изчисления, свързани с проектирането на схемите, така че вместо да обяснявам абсолютно всичко, просто ще ви покажа как да го направите. Ако се интересувате от пълния хит, уведомете ме в коментарите и ще обясня допълнително.

ЗАБЕЛЕЖКА:

Имал съм много въпроси относно изчисленията на True RMS. Това устройство използва половин вълнов токоизправител за улавяне на върха на вълната, който след това може да се умножи по 0,707 за получаване на RMS. Следователно той ще даде точен резултат само с линейни натоварвания (т.е. измерваният ток е чиста синусова вълна). Нелинейни доставки или товари, които дават триъгълни, правоъгълни или други несинусови форми на вълната, няма да дадат истинско изчисление на RMS. Това устройство измерва променлив ток, само че не е предназначено за измерване на напрежение, следователно не изчислява или измерва фактора на мощността. Моля, вижте другите ми инструкции как да създадете измервател на фактор на мощността, който може да се използва за това. Много хора също са казали, че правият AC свързване с 2.5V централна линия е по -добър, но това въвежда усложнения, тъй като включва наличието на достатъчно бърза цифрова честота на дискретизация, стабилно усредняване/изглаждане на данни и т.н., а несигурността, която въвежда, е много по -висока от измерването суровата стойност. Лично аз предпочитам хардуерни решения и по -опростен код, когато е възможно, така че не се интересувам от този метод. По отношение на точността вярвам, че това е много по -добро от последното и по -късно ще видите в моите резултати, че има коефициент на регресия, близък до 1.0 след калибрирането.

Стъпка 1: Токови трансформатори

Токови трансформатори
Токови трансформатори
Токови трансформатори
Токови трансформатори

Този проект използва токов трансформатор HMCT103C 5A/5MA. Той има съотношение на завъртания 1: 1000, което означава, че за всеки 5A ток, протичащ през проводника, 5mA ще тече през CT. Резистор трябва да бъде свързан през двата извода на CT, за да може да се измери напрежение в него. По този повод използвах резистор 220 Ohm, следователно използвайки закона на Ом V = IR, изходът на CT ще бъде 1.1 Volts AC, за всеки 5mA ток на CT (или всеки 5A измерен ток). СТ бяха запоени към лента с резистор и някакъв инструментален проводник, за да направят летящи проводници. Прекъснах проводниците с 3.5 мм мъжки аудио жак.

Ето таблицата с данни за токовия трансформатор

Информационен лист

Стъпка 2: Кондициониране на сигнала

Кондициониране на сигнала
Кондициониране на сигнала
Кондициониране на сигнала
Кондициониране на сигнала

Сигналът от CT ще бъде слаб, така че трябва да се усили. За тази цел съм запоял обикновена усилвателна верига, използваща двурелсов операционен усилвател uA741. В този случай усилването се настройва на 150, като се използва формулата Rf / Rin (150k / 1k). Въпреки това изходният сигнал от усилвателя е все още AC, диодът на изхода на оп-усилвателя прекъсва отрицателния полупериод на променливия ток и предава положителното напрежение на кондензатор 0.1uF, за да изглади вълната в вълнообразен DC сигнал. По -долу са частите, които изграждат веригата:

  • V1-Това е произволно в тази диаграма, то просто представлява напрежението на сигнала, което се подава към неинвертиращия вход на оп-усилвателя.
  • R1 - Това е известно като резистор за обратна връзка (Rf) и е настроено на 150k
  • R2 - Това е известно като входен резистор (Rin) и е настроено на 1k
  • 741 - Това е интегрираната верига uA741
  • VCC - Положителна захранваща шина +12V
  • VEE - Релса за отрицателно захранване -12V
  • D1 - Дали диодът за изправяне на сигнала на haf вълна 1N4001
  • C3 - Този кондензатор задържа DC сигнала за зададено време

На снимка 2 можете да видите, че е сглобена с помощта на Veroboard и калайдисана медна тел. Бяха пробити 4 дупки за печатни платки, за да могат да бъдат подредени (тъй като има осем канала, трябва да има общо осем усилвателни вериги.

Стъпка 3: Захранване

Захранване
Захранване
Захранване
Захранване
Захранване
Захранване

Ако не ви харесва да го правите от нулата, тогава можете да закупите предварително сглобената платка от Китай като тази на снимката по-горе, но все пак ще ви е необходим 3VA трансформатор (намалете 240V до 12V). Тази на снимката ми струваше около 2,50 паунда

За да захранвам проекта, реших да направя собствено двурелсово 12VDC захранване. Това беше удобно, тъй като операционните усилватели изискват +12V, 0V, -12V, а Arduino Uno може да приеме всяко захранване до 14 VDC. По -долу са частите, които изграждат веригата:

  • V1 - Това представлява захранването от мрежовия контакт 240V 50Hz
  • T1 - Това е малък 3VA трансформатор, за който бях лежал. Важно е трансформаторът да има централен кран на вторичния, който ще бъде свързан към 0V, т.е.
  • D1 до D4 - Това е мостов изправител с пълна вълна, използващ 1N4007 диоди
  • C1 & C2 - 35V електролитни кондензатори 2200uF (трябва да бъде 35V, тъй като потенциалът между положителен и отрицателен ще достигне 30V)
  • U2 - LM7812, е 12V регулатор на положително напрежение
  • U3 - LM7912, е регулатор на отрицателно напрежение 12V (внимавайте да отбележите разликите в щифтовете между ICx 78xx и 79xx IC!)
  • C3 & C4 - 100nF изглаждащи кондензатори 25V електролитни
  • C5 & C6 - 10uF керамични дискови кондензатори

Запоявах компонентите върху лентата и съединих вертикалните коловози с гола едножилна калайдисана медна тел. Снимка 3 по -горе показва моето DIY захранване, съжалявам, че на снимката има много джъмпери!

Стъпка 4: Аналогово -цифрови преобразуватели

Аналогово -цифрови преобразуватели
Аналогово -цифрови преобразуватели
Аналогово -цифрови преобразуватели
Аналогово -цифрови преобразуватели

Arduino Uno вече има вграден 10-битов ADC, но има само 6 аналогови входа. Затова избрах да използвам два ADC пробива с ADS1115 16-битов. Това позволява 2^15 = 32767 бита да представят нива на напрежение от 0-4.096V (4.096V е работното напрежение на пробив), това означава, че всеки бит представлява 0.000125V! Също така, тъй като използва I2C шина, това означава, че могат да бъдат адресирани до 4 ADC, което позволява до 16 канала да бъдат наблюдавани при желание.

Опитах се да илюстрирам връзките с помощта на Fritzing, но поради ограниченията няма персонализирани части, които да илюстрират генератор на сигнали. Лилавият проводник е свързан към изхода на усилвателната верига, черният проводник до него илюстрира, че всички схеми на усилвателя трябва да имат общи точки. Затова използвах макет, за да илюстрирам как съм направил точките за свързване. Моят действителен проект обаче има пробиви, разположени в женски заглавки, запоени към Veroboard и всички точки за свързване са запоени върху veroboard.

Стъпка 5: Микроконтролер

Микроконтролер
Микроконтролер

Както бе споменато по -горе, контролерът, който избрах, беше Arduino Uno, това беше добър избор, тъй като има много на борда и вградена функционалност, която иначе би трябвало да бъде изградена отделно. Освен това е съвместим с много специално изградени „щитове“. По този повод се нуждаех от часовник в реално време, за да маркирам всички резултати и запис на SD карта, за да запиша резултатите във.csv или.txt файл. За щастие, щитът за регистриране на данни на Arduino има и двете в щит, който притиска фитингите към оригиналната платка Arduino без допълнително запояване. Щитът е съвместим с библиотеките на RTClib и SD карта, така че няма нужда от специален код.

Стъпка 6: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Използвах 5 мм риджид PVC със средна/ниска плътност (понякога известен като пенопласт), за да завинтвам повечето от компонентите си и да го нарязвам на удобен размер с нож за занаятчийски изделия. Всички компоненти са изградени по модулен начин за прототипа, тъй като позволява премахване на отделни части, ако нещата се объркат, но не е толкова ефективно или подредено като гравирана печатна платка (по -нататъшна работа), това също означава много джъмперни проводници между компонентите.

Стъпка 7: Качване на код

Качете кода в Arduino или вземете кода от моето репо Github

github.com/smooth-jamie/datalogger.git

Стъпка 8: Калибриране

Калибриране
Калибриране
Калибриране
Калибриране
Калибриране
Калибриране

Теоретично измереният ток ще бъде резултат от няколко неща, комбинирани:

Измерени ампери = (((a *0.45)/150)/(1.1/5000))/1000, където 'a' е напрежението на сигнала от усилвателя

0,45 е средносрочната стойност на Vout на веригата на усилвателя, 150 е усилването на оп-усилвателя (Rf / Rin = 150k / 1k), 1,1 е изходът на напрежение в пълна скала на CT, когато измерените ампери са 5A, 5000 е просто 5A в mA, а 1000 е количеството завои в трансформатора. Това може да бъде опростено до:

Измерени ампери = (b * 9.216) / 5406555, където b е отчетената стойност на ADC

Тази формула е тествана с помощта на 10-битовия ADC на Arduino и разлика между стойностите на мултицет и генерираните от Arduino стойности се наблюдава с 11%, което е неприемливо отклонение. Моят предпочитан метод за калибриране е да запиша стойността на ADC спрямо тока на мултицет в електронна таблица и да начертая полином от трети ред. От това кубичната формула може да се използва за по -добри резултати при изчисляване на измерения ток:

(ax^3) + (bx^2) + (cx^1) + d

Коефициентите a, b, c и d се изчисляват в excel от проста таблица с данни, x е вашата ADC стойност.

За да получа данните използвах керамичен 1k променлив резистор (реостат) и 12v трансформатор, за да намаля напрежението в мрежата от 240V, което ще ми даде генериране на променлив източник на ток от 13mA до 100mA. Колкото повече точки от данни са събрани, толкова по -добре, но бих предложил да се съберат 10 точки от данни, за да се получи точна тенденция. Прикаченият шаблон на Excel ще изчисли коефициентите вместо вас, тогава остава само да ги въведете в кода на arduino

На ред 69 от кода ще видите къде да въведете коефициентите

float chn0 = ((7.30315 * pow (10, -13)) * pow (adc0, 3) + (-3.72889 * pow (10, -8) * pow (adc0, 2) + (0.003985811 * adc0) + (0.663064521)));

която е същата като формулата в лист 1 на Excel файла:

y = 7E-13x3-4E-08x2 + 0,004x + 0,663

Където x = adc0 на който и да е канал, който калибрирате

Стъпка 9: Завършете

завършек
завършек
завършек
завършек
завършек
завършек
завършек
завършек

Поставете го в кутия за проект. Завърших захранването с превключвател за включване/изключване на всичко на захранването и IEC "фигура 8" конектор за входа на мрежата. Завийте всичко заедно и сте готови да го изпробвате.

По-нататъшна работа

Целият проект беше макетиран доста бързо, така че има много място за подобрение, гравирана верига, по -добри компоненти. В идеалния случай всичко би било гравирано или запоено върху FR4, а не върху множество джъмпери. Както казах по -рано, има много неща, които не съм споменал, но ако има нещо конкретно, което бихте искали да знаете, уведомете ме в коментарите и аз ще актуализирам инструкциите!

Актуализация 2016-12-18

Сега добавих 16x2 LCD, използвайки I2C "раницата" за наблюдение на първите четири канала, ще добавя още един за наблюдение на последните четири, когато пристигне през публикацията.

Кредити

Този проект стана възможен от всички автори на библиотеките, използвани в моя скица на Arduino, включително библиотеката DS3231, библиотеката Adafruit ADS1015 и библиотеката Arduino SD

Препоръчано: