Orodha ya maudhui:

Kupima Ukweli-RMS AC Voltage: Hatua 14
Kupima Ukweli-RMS AC Voltage: Hatua 14

Video: Kupima Ukweli-RMS AC Voltage: Hatua 14

Video: Kupima Ukweli-RMS AC Voltage: Hatua 14
Video: Автомобільні стрибкові стартери (тест на осцилограф) - BASEUS 1000A проти 800A СТАРТЕР СКОРОГО [UA] 2024, Julai
Anonim
Image
Image
Maandamano
Maandamano

Leo, tutatumia STM32 Maple Mini kufanya usomaji wa AC. Katika mfano wetu, tutapata thamani ya RMS ya gridi ya umeme. Hii ni muhimu sana kwa wale ambao wanataka kufuatilia mtandao wa umeme kwa Mtandao wa Vitu. Kisha tutaunda programu kwa kutumia nguvu ya hesabu ya Maple Mini, tumia mzunguko wa elektroniki unaoweza kuruhusu kupatikana kwa ishara ya 127Vac, na pia kutumia hesabu ya maana ya mraba (RMS) kwenye sampuli.

Hatua ya 1: Maonyesho

Katika mkutano wetu wa leo, tuna STM32, pamoja na mzunguko wetu wa analog kufanya mchango wa 110. Ili kuepuka mshtuko, tenga kontena ambalo linaingia na 110.

Mzunguko ni nyeti kabisa. Ninaingia na 110, lakini ninapunguza mara 168 kwa kutumia mgawanyiko wa voltage na kuiweka kwenye kipaza sauti cha kufanya kazi, ambacho kina kazi kadhaa.

Pia tuna capacitors za hiari za kuchuja chanzo. Ikiwa chanzo chako ni cha ubora mzuri, hauitaji kukitumia.

Uingizaji wa AD umehesabiwa kupitia oscilloscope, ambayo unaona sinusoid, ambayo sio 110 (lakini imeundwa vizuri). Jambo jingine ni kwamba voltage katika mtandao wetu wa umeme sio 110 (ni kweli volts 127). Lakini tunapokuwa na utulivu, itabadilika kuwa 115V.

Thamani iliyoonyeshwa kwenye mfuatiliaji wa serial ndio inayohesabiwa katika RMS, ambayo ni ile inayotambuliwa na Fluke Meter.

Hatua ya 2: Rasilimali Zilizotumiwa

Rasilimali Zilizotumiwa
Rasilimali Zilizotumiwa

• Wanarukaji

• Mini Maple

• Kitabu cha ulinzi

• Kiboreshaji cha LM386

Chanzo cha ulinganifu (+ 5V na -5V)

• 10k trimpot ya zamu nyingi (au potentiometer)

• capacitors nne za 100nF polyester

• Vipinga vitatu vya 10k

• Vipinga vinne 470k

• Kinzani moja ya 5k6

• Diode moja ya 1n4728A ya zener

Hatua ya 3: Zuia Mchoro

Mchoro wa Kuzuia
Mchoro wa Kuzuia

Hatua ya 4: Mpango

Mpango
Mpango

Huu ni mzunguko niliotengeneza kulingana na vielelezo ninaamini ni bora kwa kipimo hiki, lakini kuna mifano mingine kadhaa ambayo inaweza kupatikana kwenye wavuti.

Hatua ya 5: LM386 - Kubandika

LM386 - Kubandika
LM386 - Kubandika

LM386 ina viboreshaji viwili vya kurekebisha au kuongeza sauti.

Hatua ya 6: AmpOp - Tofauti (mtoaji)

AmpOp - Tofauti (mtoaji)
AmpOp - Tofauti (mtoaji)

Hatua ya 7: AmpOp - Inverter Adder

AmpOp - Inverter Adder
AmpOp - Inverter Adder

Hatua ya 8: Mini Maple - Pinage

Mini Maple - Pinage
Mini Maple - Pinage

Pini zilizowekwa alama kwenye:

Nyekundu >> 3V3 Uvumilivu

Kijani >> 5V Inavumilia

Hatua ya 9: Mini Maple - Kubandika - a / D Imetumika katika Ukamataji

Maple Mini - Kubandika - a / D Imetumika katika Ukamataji
Maple Mini - Kubandika - a / D Imetumika katika Ukamataji

Nasisitiza hapa kwamba pini ambayo nilitumia ni D11 ambayo (katika nomenclature ya STMicroelectronics) ni PA0.

Hatua ya 10: Mkutano

Mkutano
Mkutano

Kwa mzunguko wetu, utahitaji chanzo cha ulinganifu, kama ile tuliyoiunda kwa mradi huu. Vinginevyo, utahitaji vyanzo viwili.

Hatua ya 11: Grafu Iliyopatikana na Takwimu

Grafu na Takwimu Zilizopatikana
Grafu na Takwimu Zilizopatikana

Hatua ya 12: Kuhesabu Thamani ya RMS

Kuhesabu Thamani ya RMS
Kuhesabu Thamani ya RMS

Hatua ya 13: Nambari ya Chanzo

Nambari ya chanzo - Ufafanuzi na msimamo

Mwanzoni, tulielezea usomaji wa pini kama D11, na vile vile vipindi kadhaa vilivyotumiwa katika mahesabu.

#fafanua leituraTensao D11 // AD CH0 hakuna pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // valor teórico do ganho de amplificação = 1.0 const kuelea fatorAmplificador = 1.0; // Valor usado na multiplicação da leitura const float fatorMultiplicacao = fatorDivisor * fatorAmplificador; // Valor teórico da Tensão de alimentação Vcc = 3.3V const kuelea Vcc = 3.3; // valor teórico do offset do amplificador = Vcc / 2.0; kuelea kwa constSet = 1.66; // fator teórico da conversão do AD = 3.3 / 4095.0 const kuelea fatorAD = Vcc / 4095.0; const int amostras = 71429; // resulta em 1, 027 segundos para cada atualização // const int amostras = 35715; // matokeo 0, 514 segundos kwa cada atualização

Nambari ya chanzo - Vigeuzi vya Ulimwenguni

Sasa, tunafafanua anuwai kadhaa za ulimwengu.

kuelea Vrms = 0.0; // armazena o shujaa rms da tensãofloat Vmax = 0.0; // armazena o valor máximo detectado kuelea Vmin = 10000.0; // armazena o valor mínimo detectado kuelea Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín

Nambari ya Chanzo - Usanidi ()

Anza bandari ya serial kwa 1Mbps. Tulibadilisha bandari ya AD kama pembejeo na tukasubiri sekunde 5 kabla ya kuanza kukusanya data. Wakati wa kusubiri ni chaguo.

kuanzisha batili () {Serial.begin (1000000); // inicia porta serial em 1Mbps pinMode (leituraTensao, INPUT); // ajusta porta do AD como entada kuchelewesha (5000); // aguarda 5s antes de iniciar a coleta. (hiari)}

Nambari ya Chanzo - Kitanzi () - Huanzisha anuwai ya ukusanyaji wa data

Katika Kitanzi, tuna tofauti ya iteration. Hapa, tunahifadhi pia usomaji wa AD kwa 0.0 na kuanzisha tena VRMS inayobadilika pia katika 0.0.

kitanzi batili () {int i = 0; // variável para iteração float leitura = 0.0; // armazena kama leituras hufanya AD Vrms = 0.0; // reinicia anuwai Vrms

Nambari ya Chanzo - Inakamata na kutekeleza mahesabu ya kila mtu kwa kila sampuli

Katika hatua hii, ikiwa ni ndogo kuliko sampuli, tunaanza mzunguko wa sampuli hadi nitakapofikia idadi ya sampuli. Tunakimbia AnalogSoma kusoma bandari ya analog na kuhesabu jumla ya mraba wa voltages zilizosomwa. Mwishowe, tunazidisha iterator.

wakati (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // ni porta analógica //Serial.println (leitura); // Descomente se quiser ver o sin bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // calcula a soma dos quadrados das tensões lidas i ++; // incrementa o iterador}

Nambari ya chanzo - Mahesabu ya jumla ya sampuli na kitambulisho cha kiwango cha juu, kiwango cha chini, na wastani

Tunatumia ukweli wa kuzidisha ili kuamua thamani halisi ya voltages. Tunagundua ikiwa thamani ni ya juu au ya chini, na tunahesabu wastani wa viwango vya juu vya sasa na kiwango cha chini.

// Aplicando fator de multiplicação para determinar o valor real das tensões Vrms = (sqrt (Vrms / amostras)) * fatorMultiplicacao; // detecta se é um valor ni máximo if (Vrms> Vmax) {Vmax = Vrms; } // detecta se é um valor mínimo if (Vrms <Vmin) {Vmin = Vrms; } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) / 2.0;

Nambari ya Chanzo - Chaguzi za Pato

Tuna chaguzi tatu za "kupanga njama" ya pato. Tunayo pato iliyofomatiwa kwa mpangaji wa safu ya Arduino IDE, kama CSV au Jason.

// saída formatada kwa mpangaji wa IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Printa ya serial (Vmax, 3); Serial.print (","); Printa ya serial (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); / * // saída formatada como json Serial.print ("{" instante (ms) ":"); Rekodi ya serial (millis ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Printa ya serial (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Printa ya serial (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Printa ya serial (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Printa ya serial (Vmed, 3); Serial.println ("}"); * / / * // saída formatada como ya CSV Serial.print (millis ()); Serial.print (","); Printa ya serial (Vrms, 3); Serial.print (","); Printa ya serial (Vmax, 3); Serial.print (","); Printa ya serial (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); * /}

Hatua ya 14: Faili

Pakua faili:

PDF

INO

Ilipendekeza: