Sadržaj:
- Korak 1: Demonstracija
- Korak 2: Korišteni resursi
- Korak 3: Blok dijagram
- Korak 4: Shema
- Korak 5: LM386 - Prikačivanje
- Korak 6: AmpOp - Diferencijal (oduzimač)
- Korak 7: AmpOp - Invertersko sabiranje
- Korak 8: Javor Mini - Pinaža
- Korak 9: Javor Mini - Prikačivanje - a / D Koristi se pri snimanju
- Korak 10: Montaža
- Korak 11: Grafikon sa prikupljenim podacima
- Korak 12: Izračunavanje 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 izmjena: 2024-01-30 08:07
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 stvoriti aplikaciju koristeći računsku snagu Maple Mini -a, primijeniti elektroničko kolo sposobno za omogućavanje akvizicije 127Vac signala, kao i primijeniti izračun korijena srednje vrijednosti (RMS) na uzorcima.
Korak 1: Demonstracija
U današnjem sastavu imamo STM32, pored našeg analognog kola za unos 110. Da 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 stvar je da napon u našoj električnoj mreži nije 110 (zapravo je 127 volti). Ali 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 identifikovao Fluke mjerač.
Korak 2: Korišteni resursi
• Džemperi
• Maple Mini
• 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 najbolje za ovo mjerenje, ali postoji nekoliko drugih primjera koji se mogu pronaći na internetu.
Korak 5: LM386 - Prikačivanje
LM386 ima dva pojačala za kondicioniranje ili pojačavanje signala.
Korak 6: AmpOp - Diferencijal (oduzimač)
Korak 7: AmpOp - Invertersko sabiranje
Korak 8: Javor Mini - Pinaža
Igle označene na:
Crveno >> 3V3 Tolerantno
Zelena >> 5V Tolerantna
Korak 9: Javor Mini - Prikač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. U suprotnom će vam trebati dva izvora.
Korak 11: Grafikon sa prikupljenim podacima
Korak 12: Izračunavanje RMS vrijednosti
Korak 13: Izvorni kod
Izvorni kod - Definicije i konstante
U početku smo očitavanje pina definirali kao D11, kao i različite konstante korištene u proračunima.
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico djelitelj tenzije = 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 ili vrijedna vrijednost za 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 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 - Loop () - 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; // varijable para iteração float leitura = 0.0; // armazena kao leituras do AD Vrms = 0.0; // reinicia a variaável Vrms
Izvorni kod - Snima i izvršava pojedinačne proračune za svaki uzorak
U ovoj fazi, ako je i manji od uzorka, započinjemo ciklus uzorkovanja sve dok i ne dostigne 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 prorač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 i izračunavamo prosjek trenutnih maksimalnih i minimalnih vrijednosti.
// Aplikacijski fator de multiplicação za određivanje o vrijednostima vrijednih das tensões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao; // otkrivamo da li je vrijedan i maksimalan ako (Vrms> Vmax) {Vmax = Vrms; } // detektuje se valor mimo ako (Vrms <Vmin) {Vmin = Vrms; } // izračunava a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
Izvorni kod - Opcije izlaza
Imamo tri opcije za "iscrtavanje" izlazne vrijednosti. Imamo izlaz formatiran na Arduino IDE serijskom ploteru, poput CSV -a ili Jasona.
// forma za parater plotera serijski IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); /* // formata za 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 ("}"); * / /* // forma za 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); */}
Korak 14: Datoteke
Preuzmite datoteke:
JA NE
Preporučuje se:
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 volti i 50Hz. Koristio sam Arduino za hvatanje signala i izračunavanje frekvencije i napona, možete koristiti bilo koji drugi mikrokontrolnik
Mjerenje istosmjernog napona pomoću Arduina: 5 koraka
Mjerenje istosmjernog napona pomoću Arduina: U ovom projektu pokazat ću vam kako mjeriti DC napon do 50v pomoću arduina i i prikaz na dijelu OLED ekranskog modula treba arduino UNOoled zaslon 10k ohm otpornik1k ohm otpornički kabel
Korištenje kola za mjerenje napona digitalnih vrata: 7 koraka
Korištenje kruga za mjerenje napona digitalnih vrata: Digitalna kola 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 ploči s zaslonom / Regulatorom napona Com displejom Za sve potrebne postavke: 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ženoj listi (postoje veze za kupnju ili pregled njihovih karakteristika). Ovo su linkovi koji paralelno uspoređuju karakteristike kao karakteristike
Mjerenje napona pomoću Arduina: 5 koraka
Mjerenje napona pomoću Arduina: Mjerenje napona prilično je jednostavno pomoću bilo kojeg mikrokontrolera u usporedbi s mjerenjem struje. Mjerenje napona postaje neophodno ako radite s baterijama ili želite napraviti vlastito podesivo napajanje. Iako se ova metoda primjenjuje