Мазмұны:
- 1 -қадам: демонстрация
- 2 -қадам: Қолданылған ресурстар
- 3 -қадам: Блок диаграммасы
- 4 -қадам: Схема
- 5 -қадам: LM386 - түйреу
- 6 -қадам: AmpOp - дифференциалды (алып тастаушы)
- 7 -қадам: AmpOp - инверторлық қосқыш
- 8 -қадам: Maple Mini - Pinage
- 9 -қадам: Maple Mini - түйреу - а / Д түсіру кезінде қолданылады
- 10 -қадам: құрастыру
- 11 -қадам: Алынған мәліметтердің графигі
- 12 -қадам: RMS мәнін есептеу
- 13 -қадам: бастапқы код
- 14 -қадам: файлдар
Бейне: True-RMS айнымалы кернеуді өлшеу: 14 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бүгін біз айнымалы токты оқу үшін STM32 Maple Mini қолданамыз. Біздің мысалда біз электр желісінің RMS мәнін аламыз. Бұл заттардың интернеті үшін электр желісін бақылауды қалайтындар үшін өте пайдалы. Содан кейін біз Maple Mini -дің есептік қуатын қолдана отырып қосымша жасаймыз, 127Vac сигналын алуға мүмкіндік беретін электронды схеманы қолданамыз, сондай -ақ үлгілерде орташа квадраттық квадрат (RMS) есебін қолданамыз.
1 -қадам: демонстрация
Бүгінгі жиналыста бізде 110 -ды енгізу үшін аналогтық схемадан басқа STM32 бар. Соққылардың алдын алу үшін 110 -ға кіретін резисторды оқшаулаңыз.
Схема өте сезімтал. Мен 110 -ға кіремін, бірақ кернеу бөлгішті пайдаланып оны 168 есе азайтып, бірнеше функциялары бар жұмыс күшейткішіне қойдым.
Бізде сонымен қатар көзді сүзуге арналған қосымша конденсаторлар бар. Егер сіздің көзіңіз сапалы болса, оларды пайдаланудың қажеті жоқ.
AD кірісі осциллограф арқылы есептеледі, онда сіз синусоидты көресіз, ол 110 емес (бірақ ол жақсы қалыптасқан). Тағы бір нәрсе, біздің электр желісіндегі кернеу 110 емес (бұл 127 вольт). Бірақ біз тұрақтандырғыштан өтіп жатқанда, ол 115 В -қа бейімделеді.
Сериялық мониторда көрсетілетін мән RMS -те есептеледі, яғни Fluke Meter анықтаған мән.
2 -қадам: Қолданылған ресурстар
• Секіргіштер
• Үйеңкі шағын
• Протобон тақтасы
• LM386 күшейткіші
• Симметриялы көз (+ 5В және -5В)
• 10к көп айналымды тримпот (немесе потенциометр)
• 100nF полиэфирлі төрт конденсатор
• Үш 10к резистор
• 470к төрт резистор
• 5к6 бір резистор
• Бір 1n4728A зенерлік диод
3 -қадам: Блок диаграммасы
4 -қадам: Схема
Бұл схема, мен бұл өлшем үшін ең жақсы деп есептеймін, бірақ интернетте табуға болатын басқа да бірнеше мысалдар бар.
5 -қадам: LM386 - түйреу
LM386 -де кондиционерлеуге немесе сигналды күшейтуге арналған екі күшейткіш бар.
6 -қадам: AmpOp - дифференциалды (алып тастаушы)
7 -қадам: AmpOp - инверторлық қосқыш
8 -қадам: Maple Mini - Pinage
Белгіленген түйреуіштер:
Қызыл >> 3V3 төзімді
Жасыл >> 5В төзімді
9 -қадам: Maple Mini - түйреу - а / Д түсіру кезінде қолданылады
Мен бұл жерде мен қолданған түйреуіш D11 екенін (STMicroelectronics номенклатурасында) PA0 екенін баса айтамын.
10 -қадам: құрастыру
Біздің схема үшін сізге осы жоба үшін жасаған сияқты симметриялы көз қажет болады. Әйтпесе, сізге екі дереккөз қажет.
11 -қадам: Алынған мәліметтердің графигі
12 -қадам: RMS мәнін есептеу
13 -қадам: бастапқы код
Бастапқы код - Анықтамалар мен тұрақтылар
Алдымен біз түйреуішті D11 деп анықтадық, сонымен қатар есептеулерде қолданылатын әр түрлі тұрақтылар.
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // amplificação ganho teorico = 1.0 const float fatorAmplificador = 1.0; // Құндылықтың өзгермелі мәні: Multiplicacao = fatorDivisor * fatorAmplificador; // Valor teórico da Tensão de alimentação Vcc = 3.3V const float Vcc = 3.3; // valor teórico do offset do amplificador = Vcc /2.0; const float offSet = 1.66; // AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // нәтиже 1, 027 күндізгі шарттар // const int amostras = 35715; // нәтиже 0, 514 ж
Бастапқы код - Жаһандық айнымалылар
Енді біз кейбір жаһандық айнымалыларды анықтаймыз.
float Vrms = 0,0; // armazena o valor rms da tensãofloat Vmax = 0.0; // armazena o valor máximo detektado float Vmin = 10000.0; // armazena lost mínimo detectado float Vmed = 0.0; // қару -жарақ алу үшін Vmáx e Vmín
Бастапқы код - орнату ()
Сериялық портты 1 Мбит / с жылдамдықпен бастаңыз. Біз AD портын енгізу ретінде реттедік және деректерді жинауды бастамас бұрын 5 секунд күттік. Күту уақыты міндетті емес.
void setup () {Serial.begin (1000000); // 1Mbps pinMode (leituraTensao, INPUT) сериялық порты; // AD como entrada кідірісі (5000); // 5 -сынып оқушылары. (міндетті емес)}
Бастапқы код - Цикл () - Деректерді жинау айнымалыларын бастайды
Циклда бізде қайталанатын айнымалы бар. Мұнда біз AD көрсеткіштерін 0.0 -де сақтаймыз және VRMS айнымалы мәнін 0.0 -де қайта қосамыз.
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // armazena leituras ретінде AD Vrms = 0.0; // reinicia a variável Vrms
Бастапқы код - әрбір үлгі бойынша жеке есептеулерді түсіреді және орындайды
Бұл кезеңде, егер i үлгіден кіші болса, біз іріктеу циклін i үлгілер санына жеткенше бастаймыз. Біз analogRead бағдарламасын іске қосып, аналогтық портты оқимыз және оқу кернеулерінің квадраттарының қосындысын есептейміз. Ақырында, біз итераторды көбейтеміз.
while (i <amostras) {// inosia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // аналогиялық порталдың // сериялық.принтл (лейтура); // AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // есептік жазбалар i ++; // артуы немесе артуы}
Бастапқы код - Үлгілердің жалпы есептеулері және максимумды, минимумды және орташа мәнді анықтау
Біз кернеудің нақты мәнін анықтау үшін көбейту фактісін қолданамыз. Біз мәннің максималды немесе минималды екенін анықтаймыз және ағымдағы максимум мен минимум мәндерінің орташа мәнін есептейміз.
// Aplicando fator de a multiplicaão a detaror a de la vidé das tésões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao; // detecta se é um valor é máximo if (Vrms> Vmax) {Vmax = Vrms; } // Detecta se é um valor mínimo if (Vrms <Vmin) {Vmin = Vrms; } // есептеу әдісі Vmed = (Vmax + Vmin) /2.0;
Бастапқы код - шығыс параметрлері
Бізде шығыс мәнін «сызбалаудың» үш нұсқасы бар. Бізде CSV немесе Jason сияқты Arduino IDE сериялық плоттерінде пішімделген шығыс бар.
// IDE Arduino Serial.print (Vrms, 3) сериялық IDE сериялы графикалық формат; Serial.print («,»); Serial.print (Vmax, 3); Serial.print («,»); Serial.print (Vmin, 3); Serial.print («,»); Serial.println (Vmed, 3); /* // Comment json Serial.print форматында («{» жылдам (ms) «:»); Serial.print (millis ()); Serial.print («,»); Serial.print («\» Vrms (V) «:»); Serial.print (Vrms, 3); Serial.print («,»); Serial.print («\» Vmax (V) «:»); Serial.print (Vmax, 3); Serial.print («,»); Serial.print («\» Vmin (V) «:»); Serial.print (Vmin, 3); Serial.print («,»); Serial.print («\» Vmed (V) «:»); Serial.print (Vmed, 3); Serial.println («}»); * / /* // CSV Serial.print (millis ()) форматындағы формат; Serial.print («,»); Serial.print (Vrms, 3); Serial.print («,»); Serial.print (Vmax, 3); Serial.print («,»); Serial.print (Vmin, 3); Serial.print («,»); Serial.println (Vmed, 3); */}
14 -қадам: файлдар
Файлдарды жүктеңіз:
МЕН ЖОҚ
Ұсынылған:
Nest Hello - Ұлыбританияның кіріктірілген трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В айнымалы ток): 7 қадам (суреттермен)
Nest Hello - Ұлыбритания интеграцияланған трансформаторы бар есік қоңырауы (220-240В айнымалы ток - 16В): Мен үйде Nest Hello есік қоңырауын, 16V -24V айнымалы токта жұмыс істейтін гизмо орнатқым келді (ЕСКЕРТУ: бағдарламалық қамтамасыз етуді жаңарту 2019 жылы Еуропаны өзгертті) 12V-24V айнымалы токқа дейінгі диапазон). Ұлыбританияда кіріктірілген трансформаторлары бар стандартты есік қоңырауы
Arduino көмегімен электрмен жабдықтау жиілігі мен кернеуді өлшеу: 6 қадам
Arduino көмегімен электрмен жабдықтау жиілігі мен кернеуді өлшеу: Кіріспе: Бұл жобаның мақсаты - Үндістанда 220-240 вольт пен 50 Гц арасындағы кернеу мен жиілікті өлшеу. Мен Arduino -ды сигналды түсіруге, жиілік пен кернеуді есептеуге қолдандым, сіз кез келген басқа микроконтоны қолдана аласыз
Arduino көмегімен тұрақты кернеуді өлшеу: 5 қадам
Arduino көмегімен тұрақты ток кернеуін өлшеу: Бұл жобада мен сізге arduino көмегімен 50В дейінгі кернеуді қалай өлшеу керектігін көрсетемін және OLED дисплей модулінің бір бөлігінде arduino UNOoled дисплейі керек 10к Ом резисторы 1к Ом резисторлық кабель
Arduino көмегімен кернеуді өлшеу: 5 қадам
Arduino көмегімен кернеуді өлшеу: ток өлшеуге қарағанда кернеуді өлшеу кез келген микроконтроллердің көмегімен өте оңай. Егер сіз батареямен жұмыс жасасаңыз немесе реттелетін қуат көзін өзіңіз жасағыңыз келсе, кернеуді өлшеу қажет болады. Бұл әдіс қолданылғанымен
Тұрақты кернеуді Arduino және Node-RED көмегімен өлшеу: 8 қадам (суреттермен)
Тұрақты кернеуді Arduino мен Node-RED көмегімен өлшеу: Ардуинода тұрақты кернеуді өлшеуге арналған көптеген оқулықтар бар, бұл жағдайда мен қарсылықтың кіріс мәндерін талап етпестен тұрақты токты өлшеудің ең жақсы функционалды әдісі деп санайтын оқу құралын таптым. және мультиметр