INHOUDSOPGAWE:
- Stap 1: Demonstrasie
- Stap 2: Hulpbronne gebruik
- Stap 3: Blokdiagram
- Stap 4: Skema
- Stap 5: LM386 - Speld
- Stap 6: AmpOp - Differensiaal (aftrekker)
- Stap 7: AmpOp - Inverter Adder
- Stap 8: Maple Mini - Pinage
- Stap 9: Maple Mini - Pinning - a / D Word gebruik in die vaslegging
- Stap 10: Montering
- Stap 11: Grafiek met die verkry data
- Stap 12: Berekening van die RMS -waarde
- Stap 13: Bronkode
- Stap 14: lêers
Video: Meting van die ware-RMS-wisselspanning: 14 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Vandag sal ons die STM32 Maple Mini gebruik om 'n AC -lesing te doen. In ons voorbeeld kry ons die RMS -waarde van die kragnetwerk. Dit is baie handig vir diegene wat die elektriese netwerk vir die internet van dinge wil monitor. Ons sal dan 'n toepassing skep met behulp van die rekenkrag van die Maple Mini, 'n elektroniese stroombaan toepas wat die verkryging van 'n 127Vac sein moontlik maak, sowel as die berekening van die gemiddelde gemiddelde vierkant (RMS) op die monsters.
Stap 1: Demonstrasie
In ons vergadering vandag, het ons die STM32, bykomend tot ons analoog kring om die inset van 110 te maak. Om skokke te vermy, isoleer die weerstand wat met 110 ingaan.
Die kring is redelik sensitief. Ek kom met 110 in, maar ek verminder dit 168 keer met die spanningsverdeler en plaas dit in die operasionele versterker, wat verskeie funksies het.
Ons het ook 'n paar opsionele kapasitors vir bronfiltering. As u bron van goeie gehalte is, hoef u dit nie te gebruik nie.
Die AD -inset word bereken deur die ossilloskoop, waarin u 'n sinusvormige 110 sien (maar dit is goed gevorm). 'N Ander ding is dat die spanning in ons elektriese netwerk nie 110 is nie (dit is eintlik 127 volt). Maar aangesien ons 'n stabilisator ondergaan, pas dit aan op 115V.
Die waarde wat op die seriële monitor vertoon word, word bereken in RMS, dit wil sê die waarde wat deur die Fluke Meter geïdentifiseer word.
Stap 2: Hulpbronne gebruik
• Springers
• 'n Maple Mini
• Protoboard
• 'n LM386 versterker
• 'n Simmetriese bron (+ 5V en -5V)
• 'n 10k multi-draai trimpot (of potensiometer)
• Vier kapasitors van 100nF polyester
• Drie 10k weerstande
• Vier 470k weerstande
• Een 5k6 weerstand
• Een 1n4728A zenerdiode
Stap 3: Blokdiagram
Stap 4: Skema
Dit is 'n kring wat ek ontwikkel het, gebaseer op die spesifikasies wat ek meen die beste is vir hierdie meting, maar daar is verskeie ander voorbeelde op die internet.
Stap 5: LM386 - Speld
Die LM386 het twee versterkers vir kondisionering of seinversterking.
Stap 6: AmpOp - Differensiaal (aftrekker)
Stap 7: AmpOp - Inverter Adder
Stap 8: Maple Mini - Pinage
Spelde gemerk op:
Rooi >> 3V3 verdraagsaam
Groen >> 5V verdraagsaam
Stap 9: Maple Mini - Pinning - a / D Word gebruik in die vaslegging
Ek beklemtoon hier dat die pen wat ek gebruik het die D11 is (in die nomenklatuur van die STMicroelectronics) die PA0.
Stap 10: Montering
Vir ons stroombaan benodig u 'n simmetriese bron, soos dié wat ons vir hierdie projek geskep het. Andersins het u twee bronne nodig.
Stap 11: Grafiek met die verkry data
Stap 12: Berekening van die RMS -waarde
Stap 13: Bronkode
Bronkode - Definisies en konstantes
Aanvanklik definieer ons die penlesing as D11, sowel as die verskillende konstantes wat in die berekeninge gebruik word.
#define leituraTensao D11 // AD CH0 no 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 float 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 float Vcc = 3.3; // valor teórico do offset do amplificador = Vcc /2.0; const float offSet = 1,66; // fator teórico da conversão do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // resulta em 1, 027 segundos para cada atualização // const int amostras = 35715; // resulta em 0, 514 segundos para cada atualização
Bronkode - Globale veranderlikes
Nou definieer ons 'n paar globale veranderlikes.
float Vrms = 0.0; // armazena o valor rms da tensãofloat Vmax = 0.0; // armazena o valor máximo detectado float Vmin = 10000.0; // armazena o valor mínimo detectado float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
Bronkode - Opstelling ()
Begin die reekspoort met 1 Mbps. Ons het die AD -poort as invoer aangepas en 5 sekondes gewag voordat ons begin met die insameling van data. Bystandtyd is opsioneel.
ongeldige opstelling () {Serial.begin (1000000); // inisieer 'n portale reeks met 1Mbps pinMode (leituraTensao, INPUT); // ajusta a porta do AD como entrada delay (5000); // aguarda 5s antes de iniciar a coleta. (opsioneel)}
Bronkode - Lus () - Begin die data -insamelingsveranderlikes
In die Loop het ons die veranderlike vir iterasie. Hier stoor ons ook die lesings van AD in 0.0 en herbegin die veranderlike VRMS ook in 0.0.
leemte lus () {int i = 0; // variável para iteração float leitura = 0.0; // armazena as leituras na AD Vrms = 0.0; // reinicia a variável Vrms
Bronkode - Vang en voer die individuele berekeninge vir elke monster uit
In hierdie stadium, as i kleiner is as die monster, begin ons met 'n monsternemingsiklus totdat ek die aantal monsters bereik. Ons voer analogRead uit om die analoogpoort te lees en die som van die kwadrate van die leesspannings te bereken. Laastens verhoog ons die iterator.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // lê 'n porta analógica //Serial.println(leitura); // Descomente se quiser ver o sinal bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // calcula a soma dos quadrados das tensões lidas i ++; // incrementa o iterador}
Bronkode - Algemene berekeninge van die monsters en identifisering van maksimum, minimum en gemiddelde
Ons pas die vermenigvuldigingsfeit toe om die werklike waarde van die spannings te bepaal. Ons ontdek of die waarde maksimum of minimum is, en ons bereken die gemiddelde van die huidige maksimum en minimum waardes.
// Aplicando fator de multiplicação para determinar o valor real das tensõ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; } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
Bronkode - Uitvoeropsies
Ons het drie opsies om die uitsetwaarde te "plot". Ons het uitvoer na die Arduino IDE -reeksplotter geformateer, soos CSV of Jason.
// ook 'n formaat vir die plotter se reeks IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); /* // ook 'n formaat van json Serial.print ("{" instante (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 ("}"); * / /* // ook 'n formaat van 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); */}
Stap 14: lêers
Laai die lêers af:
EK NEE
Aanbeveel:
Die meting van u hartklop is by u vingertop: fotoplethysmografie -benadering tot die bepaling van hartklop: 7 stappe
Die meting van u hartklop is op die punt van u vinger: fotoplethysmografie benadering tot die bepaling van hartklop: 'n fotoplethysmograaf (PPG) is 'n eenvoudige en goedkoop optiese tegniek wat gereeld gebruik word om veranderinge in bloedvolume in 'n mikrovaskulêre weefselbed op te spoor. Dit word meestal nie-indringend gebruik om metings aan die oppervlak van die vel te doen, gewoonlik
Konfigurasie van die AVR -mikrobeheerder. Skep en laai die LED -knipperprogram in die flitsgeheue van die mikrokontroleerder op: 5 stappe
Konfigurasie van die AVR -mikrobeheerder. Skep en laai die LED -knipperprogram in die flitsgeheue van die mikrokontroleerder: In hierdie geval sal ons 'n eenvoudige program in C -kode skep en dit in die geheue van die mikrokontroleerder verbrand. Ons sal ons eie program skryf en die hex -lêer saamstel, met behulp van die Atmel Studio as die geïntegreerde ontwikkelingsplatform. Ons sal die sekering van twee instel
Hoe om die veiligheid van die meeste blokkeerders aan die kant van die bediener te omseil: 3 stappe
Hoe om die veiligheid van die meeste webblokkers op die bediener te verlig: dit is my eerste instruksie, so hou my in gedagte: Ok, ek sal u vertel hoe u die webblokkers wat ek in skole gebruik het, kan omseil. Al wat u nodig het, is 'n flash drive en 'n paar sagteware aflaai
Hoe om probleme op te los met die afstandsbediening van die Pionner -stuurwiel - Verhoog die IR -sein en herstel die klein slot: 14 stappe
Hoe om probleme op te los met die afstandsbediening van die stuurwiel van Pionner - Verhoog die IR -sein en herstel die klein slot.: Hierdie afstandsbediening is baie mooi en gerieflik, maar soms werk dit nie behoorlik nie. projek is nie 'n voorbeeld van doeltreffendheid nie. Ek kom uit Brasilië en het hierdie wenk op Amaz gekry
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek