Kazalo:
- 1. korak: potrebne komponente
- 2. korak: Shematski diagram
- 3. korak: Razumevanje vezja
- 4. korak: Izračun frekvence in napetosti
- 5. korak: Arduino koda
- 6. korak: Zaključek
Video: Merjenje frekvence in napetosti napajalnika z uporabo Arduina: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Uvod:
Cilj tega projekta je merjenje napajalne frekvence in napetosti, ki je v Indiji med 220 do 240 voltov in 50Hz. Za zajem signala in izračun frekvence in napetosti sem uporabil Arduino, lahko uporabite kateri koli drug mikrokrmilnik ali ploščo, ki jo imate. Vezje zahteva nekaj komponent in je dokaj natančno za vse praktične namene.
1. korak: potrebne komponente
- Arduino Uno
- IC LM358
- Izpadni transformator (220V do 12V)
-
Kondenzatorji:
- 0,1 uF
- 2 x 1 uF
-
Upori:
- 3 x 1 kOhm
- 2 x 100 kOhm
- 1,5 kOhm
- 3,3 kOhm
- 6,8 kOhm
- 3 x 1N4148 dioda
- Plošča za kruh in skakalna žica (neobvezno)
2. korak: Shematski diagram
V zgornjem vezju je primarni transformator priključen na napajalno omrežje, primarni pa na naše merilno vezje
3. korak: Razumevanje vezja
Glede na funkcionalnost lahko to vezje razdelimo na štiri dele:
O: Vezje detektorja ničelnega prehoda
To vezje generira 5V kvadratni impulz vsakič, ko sinusni val preide iz pozitivnega v negativnega. Upor R1 v kombinaciji z D1 in D2 omejuje nihanje vhodne napetosti na stiku diode na -0,6 V do +5,6 V (ob predpostavki, da je prednja napetost diode 0,6 V). Poleg tega lahko povečate območje vhodne napetosti vezja s povečanjem vrednosti R1.
Upor R2 in R3 tvorita delilnik napetosti za omejitev nihanja napetosti na -0,24 voltov, saj je vhodna napetost v skupnem načinu LM358 omejena na -0,3 volta.
Upor R4, R5, kondenzator C1 in op-amp (tukaj uporabljen kot primerjalnik) tvori Schmittovo sprožilno vezje, kjer upor R4 in R5 nastavi histerezo na vhodu +49,5 mV nad tlemi. Izhod Schmittovega sprožilca se pošlje na Arduino PIN2 za nadaljnjo obdelavo.
B: Izolacija in napetost stopita navzdol
Kot že ime pove, ta del izolira in zniža napetost na približno 12Vrms. Zmanjšana napetost se dalje napaja v instrumentacijsko vezje.
C: Vezje detektorja vršnih vrednosti
To vezje določa največjo maksimalno napetost vhodnega signala. Uporniški delilnik R6 in R7 zmanjšata vhodno napetost za faktor 0,23 (12Vrms se zmanjša na 2.76Vrms). Dioda D3 vodi le pozitivni polcikel signala. Napetost na C2 se poveča do najvišje vrednosti odpravljenega signala, ki se napaja na analogni pin A0 Arduino za nadaljnji izračun napetosti.
Poleg tega lahko to vezje zamenjate z natančnim detektorjem vrha, kot je omenjeno tukaj. Toda za moje predstavitvene namene bo zgornje vezje dovolj.
D: Arduino
V tem delu Arduino zajame kvadratne impulze, ki jih ustvari Schmitt Trigger vezje, in odčita analogno napetost iz vezja detektorja vrha. Podatki se nadalje obdelujejo, da se določi časovno obdobje (torej frekvenca) kvadratnega impulza (ki je enak osebi za čas napajanja z izmeničnim tokom) in napetost napajanja.
4. korak: Izračun frekvence in napetosti
Izračun frekvence:
S pomočjo Arduina lahko izmerimo časovno obdobje T signala. Kvadratni valovni impulzi iz detektorja ničelnega prehoda se napajajo na pin 2, od tam lahko merimo časovno obdobje vsakega impulza. Z notranjim časovnikom Arduino (natančneje Timer1) lahko s pomočjo prekinitev izračunamo časovno obdobje med dvema naraščajočima roboma kvadratnega impulza. Časovnik se poveča za 1 na cikel ure (brez prednamestitve = 1) in vrednost se shrani v register TCNT1. Tako ura 16 Mhz poveča števec za 16 vsako mikrosekundo. Podobno se pri predkalerju = 8 časovnik poveča za 2 vsaki mikrosekundi. Od tod tudi časovno obdobje med dvema naraščajočima roboma
T = (vrednost TCNT1) / čas, potreben za vsako štetje
Kje, čas, potreben za vsako štetje = predkaler / (Taktna hitrost Arduino (16MHz)
Zato je frekvenca f = 1 / T = (Taktna hitrost Arduino (16 MHz) / (Vrednost predrazdelitve * TCNT!))
Hitrost časovnika (Hz) je zato podana z = (Taktna hitrost Arduino (16 MHz)) / predraztezovalnik
frekvenca signala pa je podana z = (Taktna hitrost Arduina
Ustrezno lahko izračunamo frekvenco f iz relacije f = 1/T.
Izračun napetosti:
Vgrajeni ADC Arduina ima ločljivost 10 bitov (možne vrednosti = 2^10 = 1024), vrne vrednosti v območju 0-1023. Za izračun ustrezne analogne napetosti V moramo uporabiti naslednje razmerje
V = (branje ADC) * 5/1023
Za izračun napajalne napetosti Vs (rms) moramo upoštevati razmerje transformatorjev, uporniški delilnik R6R7 in vršno detektorsko vezje. Lahko preprosto sestavimo različne dejavnike/razmerje kot:
Razmerje transformatorja = 12/230 = 0,052
Uporniški delilec = R7/(R6 + R7) = 0,23
Pri vršnem vezju detektorja = 1.414
Vs (rms) = V/(1.414*0.052*0.23) = (odčitavanje ADC)*0.289
Treba je opozoriti, da je ta vrednost daleč od dejanske vrednosti, predvsem zaradi napake v dejanskem razmerju transformatorjev in padca napetosti diode naprej. Eden od načinov, kako se temu izogniti, je določitev faktorja po sestavljanju vezja. To pomeni, da z multimetrom ločeno izmerimo napajalno napetost in napetost na kondenzatorju C2, nato pa izračunamo Vs (rms) na naslednji način:
Vs (rms) = ((Napajalna napetost *5)/(Napetost na C2 *1023)) *(Odčitavanje ADC)
v mojem primeru je Vs (rms) = 0,33*(branje ADC)
5. korak: Arduino koda
#define volt_in A0 // pin za branje analogne napetosti
hlapno uint16_t t_period; uint16_t ADC_value = 0; plavajoči volt, frekvenca; void isr () {t_period = TCNT1; // shranimo vrednost TCNT1 v t_period TCNT1 = 0; // ponastavi Timer1 ADC_value = analogRead (volt_in); // beri analogno napetost} float get_freq () {uint16_t timer = t_period; if (timer == 0) vrne 0; // da bi se izognili delitvi na nič else return 16000000.0/(8UL*timer); // frekvenca je podana z f = clk_freq/(prescaler*timeperiod)} void setup () {TCCR1A = 0; TCCR1B = bit (CS11); // nastavite predkaler na 8 TCNT1 = 0; // ponastavimo vrednost Timer1 TIMSK1 = bit (TOIE1); // omogočimo prekinitev pretoka Timer1 EIFR | = bit (INTF0); // počisti zastavico prekinitve INT0 Serial.begin (9600); } void loop () {attachInterrupt (0, isr, RISING); // omogočimo zakasnitev zunanjega prekinitve (INT0) (1000); detachInterrupt (0); freq = get_freq (); volt = vrednost ADC_ 0,33; Strunski buf; buf += niz (freq, 3); buf += F ("Hz / t"); buf += niz (volt); buf += F ("Volti"); Serial.println (buf); }
6. korak: Zaključek
Vezje lahko sestavite v mizo in prilagodite kodo ter dodate kartico SD za shranjevanje podatkov, ki jih je mogoče pozneje analizirati. Eden takih primerov je, da lahko analizirate napetost in frekvenco v času največje porabe.
Vezje, ki sem ga sestavil na plošči, je namesto LM358 (dvojni opamp) uporabljalo LM324 (štirikratni opamp), saj v tistem trenutku tega IC-ja še nisem imel in zapora po vsej državi zaradi pandemije COVID-19 mi je otežila pridobitev novega IC-ja. Kljub temu to ne bi vplivalo na delovanje vezja.
Za vse predloge in poizvedbe lahko spodaj komentirate.
Priporočena:
DC merjenje napetosti z uporabo Arduina: 5 korakov
Merjenje enosmerne napetosti z uporabo Arduina: V tem projektu vam bom pokazal, kako izmeriti napetost enosmernega toka do 50 voltov z uporabo arduina in in prikaz na delu modula zaslona OLED potrebuje arduino zaslon brez ohišja 10 k ohmski upor 1 k ohmski uporni kabel
Uporaba vezja za merjenje napetosti digitalnih vrat: 7 korakov
Uporaba vezja za merjenje napetosti digitalnih vrat: Digitalna vezja običajno uporabljajo napajalne napetosti 5 V. Digitalne napetosti, ki so od 5v do 2,7 voltov v seriji TTL (vrsta digitalnega integriranega čipa), veljajo za visoke in imajo vrednost 1. Digitalne napetosti obrazec 0-0,5 veljajo za nizke in imajo
Merjenje AC-napetosti True-RMS: 14 korakov
Merjenje AC-napetosti True-RMS: Danes bomo za merjenje izmeničnega toka uporabili STM32 Maple Mini. V našem primeru bomo dobili RMS vrednost električnega omrežja. To je zelo koristno za tiste, ki želijo spremljati električno omrežje za internet stvari. Nato bomo ustvarili aplikacijo
Merjenje napetosti z uporabo Arduina: 5 korakov
Merjenje napetosti z uporabo Arduina: Merjenje napetosti je precej enostavno z uporabo katerega koli mikrokrmilnika v primerjavi z merjenjem toka. Merjenje napetosti je potrebno, če delate z baterijami ali če želite sami izdelati nastavljiv napajalnik. Čeprav se ta metoda uporablja
Spreminjanje izhodne napetosti poceni napajalnika: 3 koraki
Spreminjanje izhodne napetosti poceni napajalnika: Ta navodila vam pokažejo, kako zamenjati dele v majhnem napajalniku, da spremenite izhodno napetost, da ustreza vašim potrebam. Za DIY projekt sem potreboval stabilizirano napetost natančno 7V dc in približno 100 mA. Če pogledam svojo zbirko delov, sem našel s