Sadržaj:
- Korak 1: Demonstracija
- Korak 2: Korišteni resursi
- Korak 3: Blok dijagram
- Korak 4: Shema
- Korak 5: LM386 - Prikvačivanje
- Korak 6: AmpOp - Diferencijal (oduzimač)
- Korak 7: AmpOp - Invertersko sabiranje
- Korak 8: Maple Mini - Pinage
- Korak 9: Javor Mini - Prikvačivanje - a / D Koristi se pri snimanju
- Korak 10: Montaža
- Korak 11: Grafikon s dobivenim podacima
- Korak 12: Izračun RMS vrijednosti
- Korak 13: Izvorni kod
- Korak 14: Datoteke
Video: Mjerenje True-RMS izmjeničnog napona: 14 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Danas ćemo koristiti STM32 Maple Mini za očitavanje izmjenične struje. U našem primjeru dobit ćemo RMS vrijednost električne mreže. Ovo je vrlo korisno za one koji žele nadzirati električnu mrežu za Internet stvari. Zatim ćemo izraditi aplikaciju koristeći računsku snagu Maple Mini -a, primijeniti elektronički krug sposoban za omogućavanje akvizicije signala od 127Vac, kao i primijeniti izračun korijena srednje vrijednosti (RMS) na uzorcima.
Korak 1: Demonstracija
U današnjoj montaži imamo STM32, osim našeg analognog kruga za unos 110. Kako biste izbjegli udarce, izolirajte otpornik koji ulazi za 110.
Krug je prilično osjetljiv. Ulazim sa 110, ali ga smanjujem 168 puta pomoću razdjelnika napona i stavljam u operativno pojačalo koje ima nekoliko funkcija.
Imamo i neke dodatne kondenzatore za filtriranje izvora. Ako je vaš izvor dobre kvalitete, ne morate ih koristiti.
AD ulaz izračunava se putem osciloskopa u kojem vidite sinusoidu koja nije 110 (ali je dobro oblikovana). Druga je stvar što napon u našoj električnoj mreži nije 110 (zapravo je 127 volti). No kako smo u fazi stabilizacije, on će se prilagoditi na 115V.
Vrijednost prikazana na serijskom monitoru je ono što se izračunava u RMS -u, odnosno onome koje je identificirao Fluke mjerač.
Korak 2: Korišteni resursi
• Džemperi
• Mini javor
• Protoboard
• Pojačalo LM386
• Simetrični izvor (+ 5V i -5V)
• 10k višekretni trimpot (ili potenciometar)
• Četiri kondenzatora od 100nF poliestera
• Tri 10k otpornika
• Četiri 470k otpornika
• Jedan otpornik 5k6
• Jedna zener dioda 1n4728A
Korak 3: Blok dijagram
Korak 4: Shema
Ovo je sklop koji sam razvio na temelju specifikacija za koje vjerujem da su najbolji za ovo mjerenje, ali postoji još nekoliko primjera koji se mogu pronaći na internetu.
Korak 5: LM386 - Prikvačivanje
LM386 ima dva pojačala za kondicioniranje ili pojačavanje signala.
Korak 6: AmpOp - Diferencijal (oduzimač)
Korak 7: AmpOp - Invertersko sabiranje
Korak 8: Maple Mini - Pinage
Igle označene na:
Crveno >> 3V3 Tolerantno
Zelena >> Tolerantna na 5V
Korak 9: Javor Mini - Prikvačivanje - a / D Koristi se pri snimanju
Ovdje naglašavam da je pin koji sam koristio D11 koji je (u nomenklaturi STMicroelectronics) PA0.
Korak 10: Montaža
Za naš krug trebat će vam simetrični izvor, poput onog koji smo stvorili za ovaj projekt. Inače će vam trebati dva izvora.
Korak 11: Grafikon s dobivenim podacima
Korak 12: Izračun RMS vrijednosti
Korak 13: Izvorni kod
Izvorni kod - Definicije i konstante
Isprva smo definirali očitanje pina kao D11, kao i različite konstante korištene u izračunima.
#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 razgovara do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // rezultati em 1, 027 segundos para cada atualização // const int amostras = 35715; // rezultati em 0, 514 segundos para cada atualização
Izvorni kod - Globalne varijable
Sada definiramo neke globalne varijable.
plovak 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
Izvorni kod - Postavljanje ()
Pokrenite serijski port na 1Mbps. Prilagodili smo AD port kao ulaz i čekali 5 sekundi prije nego što smo počeli prikupljati podatke. Vrijeme pripravnosti nije obavezno.
void setup () {Serial.begin (1000000); // inicia a porta serijski em 1Mbps pinMode (leituraTensao, INPUT); // ajusta a porta do AD como entrada delay (5000); // aguarda 5s antes de iniciar a coleta. (opcionalno)}
Izvorni kod - Petlja () - Pokreće varijable prikupljanja podataka
U petlji imamo varijablu za iteraciju. Ovdje također pohranjujemo očitanja AD u 0.0 i ponovno pokrećemo varijablu VRMS također u 0.0.
void loop () {int i = 0; // varijaável para iteração float leitura = 0,0; // armazena as leituras do AD Vrms = 0,0; // reinicia a variaável Vrms
Izvorni kod - Snima i izvršava pojedinačne izračune za svaki uzorak
U ovoj fazi, ako je i manji od uzorka, započinjemo ciklus uzorkovanja sve dok i ne dosegne broj uzoraka. Pokrećemo analogRead za čitanje analognog porta i izračunavanje zbroja kvadrata očitanih napona. Konačno, povećavamo iterator.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // lê a porta analógica //Serial.println(leitura); // Descomente se quiser ver o sinal bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // izračunava soma dos quadrados das tensões lidas i ++; // uvećanje o iteradoru}
Izvorni kod - Opći izračuni uzoraka i identifikacija maksimuma, minimuma i prosjeka
Primjenjujemo činjenicu množenja kako bismo odredili stvarnu vrijednost napona. Otkrivamo je li vrijednost maksimalna ili minimalna te izračunavamo prosjek trenutnih maksimalnih i minimalnih vrijednosti.
// 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; } // izračunaj a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
Izvorni kod - Opcije izlaza
Imamo tri mogućnosti za "iscrtavanje" izlazne vrijednosti. Imamo izlaz formatiran na Arduino IDE serijskom ploteru, poput CSV -a ili Jasona.
// saída formatada para plotter serijski IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Serijski ispis (Vmax, 3); Serial.print (","); Serijski.ispis (Vmin, 3); Serial.print (","); Serijski.println (Vmed, 3); /* // formatada za json Serial.print ("{" instante (ms) ":"); Serijski.ispis (millis ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Serijski.tisak (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Serijski ispis (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Serijski.ispis (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Serijski.ispis (Vmed, 3); Serial.println ("}"); * / /* // saída formatada como CSV Serial.print (millis ()); Serial.print (","); Serijski.tisak (Vrms, 3); Serial.print (","); Serijski ispis (Vmax, 3); Serial.print (","); Serijski.ispis (Vmin, 3); Serial.print (","); Serijski.println (Vmed, 3); */}
Korak 14: Datoteke
Preuzmite datoteke:
INO
Preporučeni:
Mjerenje frekvencije i napona napajanja pomoću Arduina: 6 koraka
Mjerenje frekvencije i napona napajanja pomoću Arduina: Uvod: Cilj ovog projekta je mjerenje frekvencije i napona napajanja, koji je ovdje u Indiji između 220 do 240 V i 50Hz. Koristio sam Arduino za hvatanje signala i izračunavanje frekvencije i napona, možete koristiti bilo koju drugu mikrokontrolu
Dijagram kruga detektora izmjeničnog napona bez kontakta: 6 koraka
Dijagram kruga detektora izmjeničnog napona bez kontakta: Krug identifikatora izmjeničnog napona je primarno kolo zasnovano na potpuno NPN tranzistorima poput BC747, BC548. Krug ovisi o 3 različite faze. Nakon toga, znak krhkosti dobio je čvrst i Ovaj krug može voziti baš kao zvono. Evo ja
Mjerenje istosmjernog napona pomoću Arduina: 5 koraka
Mjerenje istosmjernog napona pomoću Arduina: U ovom projektu pokazat ću vam kako mjeriti istosmjerni napon do 50v pomoću arduina i i prikazati na OLED zaslonu dio modula treba arduino UNOoled zaslon 10k ohm otpornik1k ohm otpornik kabel
Korištenje kruga za mjerenje napona digitalnih vrata: 7 koraka
Korištenje kruga za mjerenje napona digitalnih vrata: Digitalni krugovi općenito koriste napajanja od 5 volti. Digitalni naponi koji su od 5v -2,7 volti u seriji TTL (vrsta digitalnog integriranog čipa) smatraju se visokim i imaju vrijednost 1. Digitalni naponi obrazac 0-0,5 smatraju se niskim i imaju
Regulator napona na matičnoj ploči s zaslonom / regulatorom napona Com Display za placa de ensaio: 8 koraka
Regulator napona na ploči s zaslonom / Regulator napona Com zaslon Para Placa De Ensaio: Nabavite potrebne komponente koje se nalaze na priloženom popisu (postoje veze za kupnju ili pregled njihovih karakteristika). lá os links para poderem comprar ou ver as caracteristicas d