Съдържание:
- Стъпка 1: Токови трансформатори
- Стъпка 2: Кондициониране на сигнала
- Стъпка 3: Захранване
- Стъпка 4: Аналогово -цифрови преобразуватели
- Стъпка 5: Микроконтролер
- Стъпка 6: Монтаж
- Стъпка 7: Качване на код
- Стъпка 8: Калибриране
- Стъпка 9: Завършете
Видео: Регистратор на данни за мониторинг на променлив ток: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте всички, добре дошли в първата ми инструкция! През деня съм инженер -изпитател на компания, която доставя промишлено отоплително оборудване, през нощта съм запален любител на технологиите и 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
Препоръчано:
Безжичен детектор за променлив ток: 7 стъпки (със снимки)
Безжичен детектор за променлив ток: Докато правих предишния си Instructable (лесен инфрачервен сензор за близост), разбрах няколко неща относно използването на 2 транзистора подред за усилване на много слаб сигнал. В тази инструкция ще опиша този принцип, който също се нарича & quo
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта - DHT11 регистратор на данни Симулация в Proteus: 5 стъпки
Как да направим рекордер за данни за влажност и температура в реално време с Arduino UNO и SD-карта | DHT11 симулация на регистратор на данни в Proteus: Въведение: Здравейте, това е Liono Maker, ето линк към YouTube. Ние правим творчески проект с Arduino и работим върху вградени системи. Data-Logger: Регистратор на данни (също регистратор на данни или запис на данни) е електронно устройство, което записва данни във времето с
Направи си сам GPS регистратор на данни за следващо шофиране/пешеходна пътека: 11 стъпки (със снимки)
DIY GPS регистратор на данни за вас Следващо шофиране/Пешеходна пътека: Това е GPS регистратор на данни, който можете да използвате за множество цели, да речем, ако искате да регистрирате дългото си шофиране, което сте взели през уикенда, за да проверите есенните цветове. или имате любима пътека, която посещавате през есента всяка година и ще
Конвертиране на електроника, захранвана от батерията, за работа на променлив ток: 4 стъпки (със снимки)
Конвертирайте електрониката, захранвана от батерии, за да работи на променлив ток: Използваме батерии за захранване на голяма част от нашата електроника. Но има някои устройства, захранвани с батерии, които не е задължително да бъдат преносими през цялото време. Един пример е люлката на баща ми, задвижвана от батерията. Може да се мести, но обикновено остава в
Използване на променлив ток със светодиоди (част 4) - новите технологии: 6 стъпки (със снимки)
Използване на променлив ток със светодиоди (част 4) - новите технологии: Някои от препятствията в общото приемане на светодиодите в дома са относително високата цена на лумен и сложните и тромави системи за преобразуване на енергия. През последните месеци редица нови разработки обещават да ни доближат крачка до