- Материјали потребни за ЕСП32 мерач снаге
- Мерач ефикасности заснован на Ардуину и ЕСП32 - кружни дијаграм
- Дизајн ПЦБ-а за Ардуино и ЕСП32 мерач ефикасности
- Мерач ефикасности заснован на Ардуину и ЕСП32 - код
- Тестирање мерила ефикасности заснованог на Ардуину и ЕСП32
- Даља побољшања
Сви смо свесни основног волтметра, амперметра и ватметра, три основне ствари које су вам потребне за мерење вредности на било ком електронском пројекту или кругу. Мерење напона и струје уз помоћ мултиметра може бити добар начин за почетак, али један од највећих проблема са којима се суочавам током тестирања кола је мерење ефикасности напајања. Дакле, данас ћемо тај проблем решити изградњом мерила ефикасности заснованог на Ардуину и ЕСП32 који могу мерити улазни напон, улазну струју, излазни напон и излазну струју. Стога може истовремено мерити улазну и излазну снагу, а помоћу ових вредности можемо лако мерити ефикасност. Раније смо такође урадили нешто врло слично у нашем пројекту Армерино заснованог ватметра, али овде ћемо мерити и улазну и излазну снагу на израчунати ефикасност напајања.
Уместо да купимо четири метра за тај посао, моћи ћемо да решимо овај проблем уграђивањем могућности сва четири метра у један. Изградња вашег дигиталног бројила не само да смањује трошкове већ вам пружа и простор за померање за надоградње и побољшања. Како користимо ЕСП32 за изградњу овог пројекта, лако можемо да омогућимо ИоТ овај мерач и евидентирамо податке преко веба, што је тема будућег пројекта. Након што смо разјаснили све основе, кренимо одмах у то.
Напомена: Овај мерач снаге дизајниран је за једносмерне кругове. Ако желите да измерите наизменичну струју на израчунату ефикасност наизменичне струје, можете погледати ИоТ-ове пројекте мерача електричне енергије и претплаћених мерила енергије.
Материјали потребни за ЕСП32 мерач снаге
Слика испод приказује материјале који се користе за изградњу кола. Будући да је ово направљено од врло генеричких компоненти, сав наведени материјал бисте могли да пронађете у својој локалној хоби продавници.
Такође сам доле навео компоненте заједно са потребном количином. Ако сами градите струјни круг, топло се препоручује да све материјале добијете са доње листе.
- ЕСП32 табла - 1
- 128Кс64 ОЛЕД - 1
- АЦС712-20 ИЦ - 2
- ДЦ бачва Јацк - 1
- Кондензатор 100уФ - 2
- 104пФ - 2
- 102пФ - 2
- 10К, 1% - 4
- 68.000, 1% - 2
- 6.8К, 1% - 2
Мерач ефикасности заснован на Ардуину и ЕСП32 - кружни дијаграм
Шема мерила ефикасности заснованог на Ардуину и ЕСП32 приказана је у наставку. Стварање овог кола је врло једноставно и користи генеричке компоненте.
Рад кола је врло једноставан. У овом пројекту меримо напон и струју, али на јединствен начин. Меримо напон и струју и за улаз и за излаз, тако да можемо видети ефикасност кола. Ово је врло корисно за неке пројекте. Пример би могао бити претварач једносмерне у једносмерну струју где мерење ефикасности постаје обавезно. Начин рада овог кола описан је у наставку.
ИЦ сензор струје АЦС712:
Као што видите на горњој слици, за мерење струје користимо ИЦ сензор струје АЦС712. Ово је врло занимљива ИЦ, јер користи Халлов ефекат за мерење струје, постоје три варијанте ове ИЦ које се могу наћи на тржишту ф (или 5А, 20А и 30А). Користимо варијанту 20А и означена је као АЦС712-20.
Табела података АЦС712 препоручује опсег напона од 4,5 - 5,5 за несметан рад. И док ћемо мерити струју помоћу ЕСП32, толерантна је само 3,3 В, због чега сам користио делилац напона са два отпорника од 10 К да срушим излазни напон ИЦС АЦС712. Када кроз ИЦ не пролази струја, она даје 2.5В, а када кроз ИЦ пролази нека количина струје, он или смањује напон или повећава напон у зависности од смера струје. Две од ових ИЦ користили смо за мерење улазне и излазне струје. Погледајте наше претходне пројекте (испод) у којима смо користили овај сензор АЦС712.
- Бројило електричне енергије засновано на ИоТ-у користећи Ардуино и ЕСП8266 Ви-Фи модул
- Круг дигиталног амперметра помоћу ПИЦ микроконтролера и АЦС712
Тамо где смо детаљно разговарали о раду ових сензора. Можете их погледати ако желите да сазнате више о овим сензорима.
Раздјелник напона:
Да бисмо измерили улазни и излазни напон, на улазној и излазној страни кола имамо два разделника напона. Максимални напон који коло може да измери је 35В, али се лако може променити променом вредности отпорника за делилац напона.
Регулатор напона:
За напајање ЕСП32, ОЛЕД и АЦС712 ИЦ-а користи се генерички регулатор напона ЛМ7805. Како га напајамо прилично чистом снагом, не користе се одвојни кондензатори, али смо користили кондензаторе од 100уФ и на улазу и на излазу за стабилизацију ИЦ.
ЕСП32 ИЦ и ОЛЕД дисплеј:
Као главни процесор користили смо ЕСП32, који је одговоран за сва очитавања, прорачуне, улазе и излазе. Такође, користили смо ОЛЕД екран 128Кс64 да бисмо знали вредности.
Дизајн ПЦБ-а за Ардуино и ЕСП32 мерач ефикасности
ПЦБ за наш Ардуино и ЕСП32 мерач ефикасности заснован је на једностраној плочи. Користио сам Еагле за дизајнирање ПЦБ-а, али можете користити било који софтвер за дизајн по вашем избору. 2Д слика мог дизајна плоче приказана је доле.
Користи се довољно трага земље да би се направиле одговарајуће везе између свих компонената. Такође, постарали смо се да користимо одговарајуће трагове од 5 В и 3,3 В да бисмо смањили буку и побољшали ефикасност.
- Преузмите ПЦБ Десигн и ГЕРБЕР датотеке Ардуино и ЕСП32 заснован мерач ефикасности
Ручно рађена ПЦБ:
Ради практичности и тестирања, направио сам своју ручно израђену верзију ПЦБ-а и она је приказана доле. У првој верзији направио сам неке грешке, које сам отклонио помоћу неких жица краткоспојника. Али у коначној верзији сам их поправио, можете једноставно преузети датотеке и користити их.
Мерач ефикасности заснован на Ардуину и ЕСП32 - код
Сада, када добро разумемо хардверску страну ствари, можемо отворити Ардуино ИДЕ и започети кодирање. Сврха кода је очитавање аналогног напона са пина 35 и 33 плоче ЕСП32. Такође, очитавамо напон са 32 и 34 пина што је тренутна вредност. Једном када то учинимо, можемо их помножити да бисмо добили улазну и излазну снагу, а стављајући то у формулу ефикасности, можемо добити ефикасност.
Коначно, приказујемо га на ЛЦД екрану. На крају је дат целокупни програм који то чини, који се као такав може користити за хардвер о коме је раније било речи. Даље, код је подељен на мале исечке и објашњен.
Како се користи 128Кс64 ОЛЕД екран, потребна нам је библиотеку Адафруит_ГФКС и библиотеку Адафруит_ССД1306 да комуницира са екрана. Можете их преузети с Ардуино-овог подразумеваног терминала управника одбора; ако имате било каквих проблема са делом управника одбора, такође можете да преузмете и укључите библиотеке из припадајућег ГитХуб спремишта, које је дато у наставку.
- Преузмите библиотеку Адафруит_ГФКС
- Преузмите библиотеку Адафруит_ССД1306
Као и увек, код започињемо укључивањем свих потребних библиотека. Затим дефинишемо све потребне пинове и променљиве који су приказани у наставку.
#инцлуде
У СЦРЕЕН_ВИДТХ и СЦРЕЕН_ХЕИГХТ дефиниције се користе за дефинисање величине екрана. Даље смо дефинисали све потребне пинове помоћу којих ћемо мерити напон и струју. Даље, дефинисали смо вредности отпорника које се користе у хардверу као што можете видети из шеме. Ако немате ове вредности или ако желите да промените домет мерача, можете да промените те вредности, код ће радити сасвим у реду.
Како користимо АЦС712 за мерење струје, потребна нам је вредност мВперАмп за израчунавање струје из напона. Како користим 20А АЦС712 модул, вредност мВ / А је 100 како је дато у техничком листу. Али пошто користимо ЕСП32 и делилац напона, имаћемо половину вредности која је 50, и зато смо унели вредност мВ / АМП.
АЦСоффсет је помак потребан за израчунавање струје из напона. Како се ИЦС АЦС712 напајају од 5В, офсет напон је 2,5В. Али како користимо делилац напона, он се спушта на 1,25В. Можда већ знате усрани АДЦ ЕСП32, па сам морао да користим вредност 1136. Ако имате проблема са калибрацијом, можете да подесите вредности и надокнадите АДЦ.
На крају, можемо завршити овај део прављењем приказа објекат у Адафруит_ССД1306 класе и доношење ширине екрана, висина, И 2 Ц конфигурацију, а последњи -1 параметар се користи за дефинисање ресет функционалност. Ако ваш екран нема спољни пин за ресетовање (што је сигурно за мој екран), тада морате да користите -1 за последњи аргумент.
воид сетуп () {Сериал.бегин (115200); иф (! дисплаи.бегин (ССД1306_СВИТЦХЦАПВЦЦ, 0к3Ц)) {// Адреса 0к3Д за 128к64 Сериал.принтлн (Ф („ССД1306 алокација није успела“)); за (;;); } дисплаи.цлеарДисплаи (); дисплаи.сетРотатион (2); дисплаи.сетТектСизе (1); кашњење (100); }
Даље, имамо наш одељак за подешавање () . У овом одељку омогућавамо серијско уклањање грешака, проверавамо да ли је доступан И 2 Ц екран уз помоћ методе почетка објекта приказа. Такође, поставили смо И 2 Ц адресу. Затим обришемо екран методом цлеарДисплаи () . Такође, ротирамо екран методом сетРотатион , јер сам побркао свој ПЦБ дизајн. Даље, стављамо кашњење од 100 мс да би функције ступиле на снагу. Када је то готово, сада можемо прећи на функцију петље. Али, пре него што наставите са функцијом петље, морамо разговарати друге две функције које су ретурн_волтаге_валуе () , и ретурн_цуррент_валуе () .
доубле ретурн_волтаге_валуе (инт пин_но) {доубле тмп = 0; двоструки АДЦВолтаге = 0; двоструки инпутВолтаге = 0; двоструко просечно = 0; фор (инт и = 0; и <150; и ++) {тмп = тмп + аналогРеад (пин_но); } авг = тмп / 150; АДЦВолтаге = ((просечно * 3,3) / (4095)) + 0,138; инпутВолтаге = АДЦВолтаге / (Р2_ВОЛТАГЕ / (Р1_ВОЛТАГЕ + Р2_ВОЛТАГЕ)); // формула за израчунавање напона у тј. повратном напону ГНД; }
Функција ретурн_волтаге_валуе () користи се за мерење напона који долази у АДЦ, а за аргумент узима пин_но. У овој функцији започињемо декларацијом неких променљивих, а то су тмп, АДЦВолтаге, инпутВолтаге и авг. Променљива тмп се користи за складиштење привремене вредности АДЦ коју добијамо из функције аналогРеад (), затим је просечамо 150 пута у фор петљи и вредност чувамо у променљивој званој авг. Затим израчунавамо АДЦВолтаге из дате формуле, на крају израчунавамо улазни напон и враћамо вредности. Вредност +0,138 коју видите је вредност калибрације коју сам користио за калибрацију нивоа напона, поиграјте се са овом вредношћу ако имате грешке.
двоструко ретурн_цуррент_валуе (инт пин_но) {доубле тмп = 0; двоструко просечно = 0; двоструки АДЦВолтаге = 0; двострука појачала = 0; фор (инт з = 0; з <150; з ++) {тмп = тмп + аналогРеад (пин_но); } авг = тмп / 150; АДЦВолтаге = ((просек / 4095,0) * 3300); // Добија вам мВ ампере = ((АДЦВолтаге - АЦСоффсет) / мВперАмп); повратна појачала; }
Даље, имамо функцију ретурн_цуррент_валуе () . Ова функција такође узима пин_но као аргумент. У овој функцији такође имамо четири променљиве, наиме. тмп, авг, АДЦВолтаге и Ампс
Даље читамо пин са функцијом аналогРеад () и просечујемо га 150 пута, затим користимо формулу за израчунавање АДЦволтаге, с тим израчунавамо струју и враћамо вредност. Уз то, можемо прећи на одељак петље.
воид лооп () {флоат инпут_волтаге = абс (ретурн_волтаге_валуе (ИНПУТ_ВОЛТАГЕ_СЕНСЕ_ПИН)); плутајуће инпут_цуррент = абс (ретурн_цуррент_валуе (ИНПУТ_ЦУРРЕНТ_СЕНСЕ_ПИН)); плутајући оутпут_волтаге = абс (ретурн_волтаге_валуе (ОУТПУТ_ВОЛТАГЕ_СЕНСЕ_ПИН)); флоат оутпут_цуррент = абс ((ретурн_цуррент_валуе (ОУТПУТ_ЦУРРЕНТ_СЕНСЕ_ПИН))); инпут_цуррент = инпут_цуррент - 0,025; Сериал.принт ("Улазни напон:"); Сериал.принт (инпут_волтаге); Сериал.принт ("- Улазна струја:"); Сериал.принт (инпут_цуррент); Сериал.принт ("- Излазни напон:"); Сериал.принт (оутпут_волтаге); Сериал.принт ("- Излазна струја:"); Сериал.принтлн (оутпут_цуррент); кашњење (300); дисплаи.цлеарДисплаи (); дисплаи.сетЦурсор (0, 0); дисплаи.принт ("И / ПВ:"); дисплаи.сетЦурсор (37, 0); дисплаи.принт (инпут_волтаге); дисплаи.сетЦурсор (70, 0); приказ.испис ("В"); }
Одељак петље започињемо декларирањем и дефинисањем неких променљивих променљивих, у све четири променљиве. Позивамо одговарајуће функције, прослеђујући пин_но као аргумент, јер модул АЦС712 може вратити тренутне вредности у негативне вредности. Користимо функцију абс () математичке библиотеке да негативну вредност учинимо позитивном. Даље, серијски исписујемо све вредности за отклањање грешака. Затим очистимо екран, поставимо курсор и одштампамо вредности. То радимо за све ликове приказане на екрану. Што означава крај функције петље и програма.
Тестирање мерила ефикасности заснованог на Ардуину и ЕСП32
Као што видите моју поставку теста на горњој слици. Имам 30В трансформатор као улаз, а мерач сам прикључио за тест плочу. Користим плочу претварача засновану на ЛМ2596 и за оптерећење, а паралелно користим три отпорника од 10 ома.
Као што видите на горњој слици, повезао сам се са вишеметарима како бих проверио улазни и излазни напон. Трансформатор производи скоро 32В, а излаз претварача доларја је 3,95В.
На овој слици је приказана излазна струја измерена мојим мерачем ефикасности и мултиметром. Као што видите, мултиметар показује 0,97 ампера, а ако мало зумирате, приказује 1,0А, мало је искључен због нелинеарности присутне у модулу АЦС712, али ово служи нашој сврси. За детаљно објашњење и тестирање, видео можете погледати у нашем видео одељку.
Даља побољшања
За ову демонстрацију склоп је направљен на ручно израђеној ПЦБ-у, али коло се лако може уградити у добро квалитетну ПЦБ. У мом експерименту, величина ПЦБ-а је заиста велика због величине компоненте, али у производном окружењу може се смањити коришћењем јефтиних СМД компонената. Коло такође нема уграђену заштитну функцију, па ће укључивање заштитног круга побољшати свеукупни безбедносни аспект кола. Такође, док сам писао код, приметио сам да АДЦ ЕСП32 није тако сјајан. Укључивање спољног АДЦ-а попут модула АДС1115 повећаће укупну стабилност и тачност.
Надам се да вам се свидео овај чланак и да сте из њега научили нешто ново. Ако сумњате, можете питати у коментарима испод или можете користити наше форуме за детаљну дискусију.