Obsah:
- Krok 1: Potrebné súčasti
- Krok 2: Schematický diagram
- Krok 3: Pochopenie obvodu
- Krok 4: Výpočet frekvencie a napätia
- Krok 5: Arduino kód
- Krok 6: Záver
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Úvod:
Cieľom tohto projektu je zmerať napájaciu frekvenciu a napätie, ktoré je tu v Indii medzi 220 až 240 voltov a 50 Hz. Na zachytenie signálu a výpočet frekvencie a napätia som použil Arduino, môžete použiť akýkoľvek iný mikrokontrolér alebo dosku, ktorú máte. Obvod vyžaduje niekoľko súčiastok a je celkom presný na všetky praktické účely.
Krok 1: Potrebné súčasti
- Arduino Uno
- IC LM358
- Zostupný transformátor (220 V na 12 V)
-
Kondenzátory:
- 0,1 uF
- 2 x 1 uF
-
Rezistory:
- 3 x 1 kOhm
- 2 x 100 kOhm
- 1,5 kOhm
- 3,3 kOhm
- 6,8 kOhm
- 3 x 1N4148 dióda
- Doska na chlieb a prepojovací drôt (voliteľné)
Krok 2: Schematický diagram
Vo vyššie uvedenom obvode je transformátor primárny zapojený do napájacej siete a primárny je zapojený do nášho meracieho obvodu
Krok 3: Pochopenie obvodu
Podľa funkčnosti je tento obvod možné rozdeliť na štyri časti:
A: Obvod detektora prechodu na nulu
Tento obvod generuje 5V štvorcový impulz vždy, keď sínusová vlna prechádza z kladného na záporný. Rezistor R1 kombinovaný s D1 a D2 obmedzuje kolísanie vstupného napätia na križovatke diódy na -0,6 V až +5,6 V (za predpokladu, že napätie vpred diódy je 0,6 V). Ďalej môžete zvýšiť rozsah vstupného napätia obvodu zvýšením hodnoty R1.
Odpor R2 a R3 tvorí delič napätia na obmedzenie výkyvu záporného napätia na -0,24 V, pretože vstupné napätie v spoločnom režime LM358 je obmedzené na -0,3 V.
Odpor R4, R5, kondenzátor C1 a operačný zosilňovač (tu používaný ako komparátor) tvorí obvod Schmitt Trigger, kde odpor R4 a R5 nastavuje hysteréziu na vstupe +49,5 mV nad zemou. Výstup spúšťača Schmitt je privedený na Arduino PIN2 na ďalšie spracovanie.
B: Izolácia a zníženie napätia
Ako naznačuje názov, táto časť izoluje a znižuje napätie na približne 12Vrms. Znížené napätie je ďalej privádzané do obvodu prístrojov.
C: Obvod detektora špičiek
Tento obvod určuje maximálne špičkové napätie vstupného signálu. Odporový delič R6 a R7 znižuje vstupné napätie faktorom 0,23 (12Vrms sa zníži na 2,76Vrms). Dióda D3 vedie iba kladný polovičný cyklus signálu. Napätie na C2 sa zvyšuje až na maximálnu hodnotu usmerneného signálu, ktorý je privádzaný na analógový kolík A0 Arduino na ďalší výpočet napätia.
Okrem toho môžete tento obvod nahradiť presným obvodom detektora špičiek, ako sú uvedené tu. Ale na moje demonštračné účely bude vyššie uvedený obvod dostačujúci.
D: Arduino
V tejto časti Arduino zachytáva štvorcové impulzy generované obvodom Schmitt Trigger a číta analógové napätie z obvodu detektora špičiek. Dáta sú ďalej spracované na určenie časového obdobia (teda frekvencie) štvorcového impulzu (ktorý sa rovná osobe striedavého prúdu) a napätia napájania.
Krok 4: Výpočet frekvencie a napätia
Výpočet frekvencie:
Pomocou Arduina dokážeme zmerať časové obdobie T signálu. Impulzy štvorcovej vlny z detektora prechodu nulou sú vedené na kolík 2, odtiaľ môžeme merať časové obdobie každého impulzu. Na výpočet časového obdobia medzi dvoma stúpajúcimi hranami štvorcového impulzu pomocou prerušení môžeme použiť interný časovač Arduina (konkrétne Timer1). Časovač sa zvyšuje o 1 na hodinový cyklus (bez prescaleru = 1) a hodnota je uložená v registri TCNT1. Hodiny 16 MHz preto zvyšujú počítadlo o 16 každých mikrosekúnd. Podobne pre prescaler = 8 sa časovač zvýši o 2 mikrosekundy o 2. Preto je časové obdobie medzi dvoma stúpajúcimi hranami
T = (hodnota TCNT1) / čas potrebný na každé počítanie
Kde, čas potrebný na každé počítanie = prescaler / (rýchlosť hodín Arduino (16 MHz)
Frekvencia f = 1 / T = (taktovacia frekvencia Arduino (16 MHz) / (hodnota prescaleru * TCNT!)
Preto je rýchlosť časovača (Hz) daná = (rýchlosť hodín Arduino (16 MHz)) / predzvárač
a frekvencia signálu je daná = (rýchlosť hodín Arduina
Zodpovedajúcim spôsobom môžeme vypočítať frekvenciu f zo vzťahu f = 1/T.
Výpočet napätia:
Palubný ADC Arduina má rozlíšenie 10 bitov (možné hodnoty = 2^10 = 1024), pričom vracia hodnoty v rozsahu 0-1023. Na výpočet zodpovedajúceho analógového napätia V musíme použiť nasledujúci vzťah
V = (čítanie ADC) * 5/1023
Na výpočet napájacieho napätia Vs (rms) musíme vziať do úvahy pomer transformátora, delič rezistora R6R7 a obvod detektora špičiek. Jednoducho môžeme dať dohromady rôzne faktory/pomer ako:
Pomer transformátora = 12/230 = 0,052
Rezistorový delič = R7/(R6 + R7) = 0,23
Pri obvode detektora špičiek = 1,414
Vs (rms) = V/(1,414*0,052*0,23) = (čítanie ADC)*0,289
Je potrebné poznamenať, že táto hodnota je ďaleko od skutočnej hodnoty, hlavne kvôli chybe v skutočnom pomere transformátora a poklesu napätia diódy vpred. Jedným zo spôsobov, ako to obísť, je určiť faktor po zostavení obvodu. To sa meria napájacie napätie a napätie na kondenzátore C2 oddelene multimetrom a potom sa vypočíta Vs (rms) nasledovne:
Vs (rms) = ((napájacie napätie *5)/(napätie na C2 *1023)) *(čítanie ADC)
v mojom prípade Vs (rms) = 0,33*(čítanie ADC)
Krok 5: Arduino kód
#define volt_in A0 // pin na čítanie analógového napätia
volatile uint16_t t_period; uint16_t ADC_value = 0; float volt, freq; neplatné isr () {t_period = TCNT1; // uloženie hodnoty TCNT1 v t_období TCNT1 = 0; // reset Timer1 ADC_value = analogRead (volt_in); // čítanie analógového napätia} float get_freq () {uint16_t timer = t_period; ak (časovač == 0) vráti 0; // aby sa zabránilo deleniu nulou, vráťte 16000000.0/(8UL*časovač); // frekvencia je daná f = clk_freq/(prescaler*timeperiod)} void setup () {TCCR1A = 0; TCCR1B = bit (CS11); // nastavenie predzosilňovača na 8 TCNT1 = 0; // vynulovanie hodnoty Timer1 TIMSK1 = bit (TOIE1); // povolenie prerušenia pretečenia Timer1 EIFR | = bit (INTF0); // vymazanie príznaku prerušenia INT0 Serial.begin (9600); } void loop () {attachInterrupt (0, isr, RISING); // povoliť oneskorenie externého prerušenia (INT0) (1000); detachInterrupt (0); freq = get_freq (); volt = ADC_value*0,33; String bufet; buf += Reťazec (frekv., 3); buf += F ("Hz / t"); buf += Reťazec (volt); buf += F („Volty“); Serial.println (buf); }
Krok 6: Záver
Obvod môžete zostaviť na doske, vyladiť kód a pridať kartu SD na ukladanie údajov, ktoré je možné neskôr analyzovať. Jedným z takýchto príkladov je, že môžete analyzovať napätie a frekvenciu v špičkách.
Okruh, ktorý som zostavil na doske, používal LM324 (quad operačný zosilňovač) namiesto LM358 (duálny operačný zosilňovač), pretože som v tom momente nemal tento integrovaný obvod a celonárodné zablokovanie kvôli pandémii COVID-19 mi sťažilo získanie nového integrovaného obvodu.. Nemalo by to však ovplyvniť fungovanie obvodu.
Akékoľvek návrhy a otázky môžete komentovať nižšie.
Odporúča:
Jednoduché počítadlo frekvencie pomocou Arduina: 6 krokov
Jednoduché frekvenčné počítadlo pomocou Arduina: V tomto návode sa naučíme, ako vytvoriť jednoduchý frekvenčný čítač pomocou Arduina. Pozrite si video
Meranie jednosmerného napätia pomocou Arduina: 5 krokov
Meranie napätia DC pomocou Arduina: V tomto projekte vám ukážem, ako zmerať napätie Dc až do 50 V pomocou arduina a displej na časti OLED zobrazovacieho modulu potrebuje arduino UNOoled displej 10k ohm rezistor 1k ohm rezistor prepojovací kábel
Meranie srdcovej frekvencie je na špičke prsta: Fotopletyzmografický prístup k určovaniu srdcovej frekvencie: 7 krokov
Meranie srdcovej frekvencie je na špičke prsta: Fotopletyzmografický prístup k určeniu srdcovej frekvencie: Fotopletyzmograf (PPG) je jednoduchá a lacná optická technika, ktorá sa často používa na detekciu zmien objemu krvi v mikrovaskulárnom lôžku tkaniva. Väčšinou sa používa neinvazívne na meranie na povrchu pokožky, typicky
Meranie striedavého napätia True-RMS: 14 krokov
Meranie striedavého napätia True-RMS: Dnes budeme na čítanie striedavého prúdu používať STM32 Maple Mini. V našom prípade dostaneme hodnotu RMS elektrickej siete. To je veľmi užitočné pre tých, ktorí chcú monitorovať elektrickú sieť pre internet vecí. Potom vytvoríme aplikáciu
Meranie napätia pomocou Arduina: 5 krokov
Meranie napätia pomocou Arduina: Meranie napätia je v porovnaní s meraním prúdu celkom jednoduché pomocou akéhokoľvek mikrokontroléra. Meranie napätia je nevyhnutné, ak pracujete s batériami alebo si chcete vytvoriť vlastný nastaviteľný zdroj napájania. Aj keď táto metóda platí