- Potřebné materiály
- Kruhový diagram
- Měřicí jednotka
- Výpočetní a zobrazovací jednotka
- Programování Arduina
- Jak měřit s větší přesností?
- Práce a testování
Jako inženýři elektroniky jsme vždy závislí na měřidlech / přístrojích, které měří a analyzují fungování obvodu. Počínaje jednoduchým multimetrem až po komplexní analyzátory kvality energie nebo PDS má vše své vlastní jedinečné aplikace. Většina z těchto měřičů je snadno dostupná a lze je zakoupit na základě měřených parametrů a jejich přesnosti. Někdy ale můžeme skončit v situaci, kdy si musíme budovat vlastní měřiče. Řekněme například, že pracujete na projektu solárního FV systému a chcete vypočítat spotřebu energie vaší zátěže, v takových scénářích můžeme postavit vlastní Wattmetr pomocí jednoduché platformy mikrokontroléru, jako je Arduino.
Budování vlastních měřičů nejenže snižuje náklady na testování, ale také nám dává prostor pro usnadnění procesu testování. Stejně jako wattmetr vytvořený pomocí Arduina lze snadno vyladit, aby sledoval výsledky na sériovém monitoru a vykreslil graf na sériovém plotru nebo přidal SD kartu pro automatické zaznamenávání hodnot napětí, proudu a výkonu v předem definovaných intervalech. Zní to zajímavě, že !? Pojďme tedy začít…
Potřebné materiály
- Arduino Nano
- LM358 operační zesilovač
- 7805 Regulátor napětí
- 16 * 2 LCD displej
- 0,22 ohm 2Watt bočníku
- Hrnec ořezávače 10k
- Rezistory 10k, 20k, 2.2k, 1k
- Kondenzátory 0,1 uF
- Zkušební zátěž
- Parfémová deska nebo prkénko na prkénko
- Pájecí souprava (volitelně)
Kruhový diagram
Kompletní schéma zapojení projektu arduino wattmetrů je uvedeno níže.
Pro snazší pochopení je obvod wattmetru arduino rozdělen na dvě jednotky. Horní část obvodu je měřicí jednotka a spodní část obvodu je výpočetní a zobrazovací jednotka. U lidí, kteří s tímto typem obvodů začínají, se řídili štítky. Příklad + 5V je štítek, což znamená, že všechny piny, ke kterým je štítek připojen, by měly být považovány za spojené dohromady. Obvykle se používají štítky, aby schéma zapojení vypadalo úhledně.
Obvod je navržen tak, aby zapadal do systémů pracujících mezi 0-24V s proudovým rozsahem 0-1A, přičemž je třeba mít na paměti specifikaci solárního FV systému. Jakmile však pochopíte fungování obvodu, můžete rozsah snadno rozšířit. Základním principem obvodu je měření napětí napříč zátěží a proudu skrz něj pro výpočet spotřeby energie. Všechny naměřené hodnoty se zobrazí na 16 * 2 alfanumerickém LCD.
Dále rozdělíme obvod na malé segmenty, abychom získali jasný obraz o tom, jak je obvod odsazen.
Měřicí jednotka
Měřicí jednotka se skládá z děliče potenciálu, který nám pomáhá měřit napětí, a uzavírací rezistor s neinvertujícím operačním zesilovačem se používá k měření proudu v obvodu. Část potenciálního děliče z výše uvedeného obvodu je uvedena níže
Zde vstupní napětí představuje Vcc, jak již bylo řečeno, navrhujeme obvod pro rozsah napětí od 0 V do 24 V. Ale mikrokontrolér jako Arduino nemůže měřit tak vysoké hodnoty napětí; může měřit pouze napětí od 0-5V. Musíme tedy zmapovat (převést) rozsah napětí 0-24V na 0-5V. To lze snadno provést pomocí obvodu potenciálního děliče, jak je znázorněno níže. Rezistor 10k a 2,2k společně tvoří obvod děliče potenciálu. Výstupní napětí děliče potenciálu lze vypočítat pomocí níže uvedených vzorců. Totéž lze použít k rozhodování o hodnotě vašich rezistorů, můžete použít naši online kalkulačku k výpočtu hodnoty rezistoru, pokud přepracováváte obvod.
Vout = (Vin × R2) / (R1 + R2)
Mapovaných 0-5 V lze získat ze střední části, která je označena jako Napětí. Toto mapované napětí lze poté přivést na analogový pin Arduino později.
Dále musíme změřit proud přes LOAD. Jak víme, mikrokontroléry umí číst pouze analogové napětí, takže musíme nějak převést hodnotu proudu na napětí. Lze to provést jednoduchým přidáním rezistoru (bočního rezistoru) do cesty, který podle Ohmova zákona přesáhne na něj hodnotu napětí, která je úměrná proudu, který protéká. Hodnota tohoto poklesu napětí bude mnohem menší, takže k jeho zesílení použijeme operační zesilovač. Obvod stejného je uveden níže
Zde je hodnota bočního odporu (SR1) 0,22 ohmů. Jak již bylo řečeno, navrhujeme obvod pro 0 - 1 A, takže na základě Ohmova zákona můžeme vypočítat pokles napětí na tomto rezistoru, který bude kolem 0,2 V, když proudem prochází zátěž maximálně 1 A. Toto napětí je velmi malé pro čtení mikrokontroléru, používáme Op-Amp v režimu neinvertujícího zesilovače ke zvýšení napětí z 0,2 V na vyšší úroveň pro čtení Arduina.
Operační zesilovač v neinvertujícím režimu je zobrazen výše. Zesilovač je navržen tak, aby měl zisk 21, takže 0,2 * 21 = 4,2V. Vzorce pro výpočet zisku Op-zesilovače jsou uvedeny níže. Můžete také použít tuto online kalkulačku zisku, abyste získali hodnotu svého rezistoru, pokud přepracováváte obvod.
Zisk = Vout / Vin = 1 + (Rf / Rin)
Tady v našem případě je hodnota Rf 20k a hodnota Rin je 1k, což nám dává obrovskou hodnotu 21. Zesílené napětí z Op-zesilovače je pak dáno RC filtru s odporem 1k a kondenzátorem 0,1uF na filtrovat veškerý šum, který je spojen. Nakonec se napětí přivede na analogový pin Arduino.
Poslední část, která v měřící jednotce zbyla, je část regulátoru napětí. Protože dáme variabilní vstupní napětí, potřebujeme regulované napětí + 5 V, aby Arduino a operační zesilovač fungovaly. Toto regulované napětí bude dodáváno regulátorem napětí 7805. Na výstup je přidán kondenzátor, který filtruje šum.
Výpočetní a zobrazovací jednotka
V měřící jednotce jsme navrhli obvod pro převod napěťových a proudových parametrů na 0-5 V, které lze přivést na analogové piny Arduino. Nyní v této části obvodu připojíme tyto napěťové signály k Arduinu a také propojíme alfanumerický displej 16 × 2 s Arduinem, abychom mohli sledovat výsledky. Obvod stejného je uveden níže
Jak vidíte, kolík napětí je připojen k analogovému kolíku A3 a aktuální kolík je připojen k analogovému kolíku A4. LCD je napájen z + 5V z 7805 a je připojen k digitálním pinům Arduino pro práci ve 4bitovém režimu. Také jsme použili potenciometr (10k) připojený k Con pinu pro změnu kontrastu LCD.
Programování Arduina
Nyní, když dobře rozumíme hardwaru, otevřete Arduino a začněte programovat. Účelem kódu je načíst analogové napětí na pinech A3 a A4 a vypočítat hodnotu napětí, proudu a výkonu a nakonec je zobrazit na obrazovce LCD. Kompletní program, který provede totéž, je uveden na konci stránky, který lze použít jako takový pro hardware popsaný výše. Dále je kód rozdělen na malé úryvky a vysvětleno.
Jako všechny programy začínáme, definováním pinů, které jsme použili. Ve výstupním projektu se pin A3 a A4 používá k měření napětí a proudu a digitální piny 3,4,8,9,10 a 11 se používají pro propojení LCD s Arduino
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Uveďte číslo pinu pro připojení LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Také jsme zahrnuli soubor záhlaví zvaný tekutý krystal, který propojuje LCD s Arduino. Potom uvnitř funkce nastavení inicializujeme LCD displej a zobrazíme úvodní text jako „Arduino Wattmeter“ a před vymazáním počkáme dvě sekundy. Kód stejné je uveden níže.
void setup () { lcd.begin (16, 2); // Inicializace 16 * 2 LCD lcd.print ("Arduino Wattmeter"); // Úvod Řádek zprávy 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Úvodní zpoždění řádku zprávy 2 (2000); lcd.clear (); }
Uvnitř funkce hlavní smyčky používáme funkci analogového čtení ke čtení hodnoty napětí z pinů A3 a A4. Jak víme, výstupní hodnota Arduino ADC od 0 do 1203, protože má 10bitový ADC. Tuto hodnotu je pak třeba převést na 0-5 V, což lze provést vynásobením (5/1023). Pak jsme dříve v hardwaru zmapovali skutečnou hodnotu napětí od 0-24V do 0-5V a skutečnou hodnotu proudu od 0-1A do 0-5V. Takže nyní musíme použít multiplikátor, abychom tyto hodnoty vrátili zpět na skutečnou hodnotu. Toho lze dosáhnout vynásobením hodnotou multiplikátoru. Hodnotu multiplikátoru lze vypočítat teoreticky pomocí vzorců uvedených v hardwarové části, nebo pokud máte známou sadu hodnot napětí a proudu, můžete ji vypočítat prakticky.Sledoval jsem druhou možnost, protože má tendenci být přesnější v reálném čase. Takže zde je hodnota multiplikátorů 6,46 a 0,239. Proto kód vypadá níže
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5,0 / 1023,0) * 6,46; Current_Value = Current_Value * (5,0 / 1023,0) * 0,239;
Jak měřit s větší přesností?
Výše uvedený způsob výpočtu hodnoty skutečného napětí a proudu bude fungovat dobře. Ale trpí jednou nevýhodou, to znamená, že vztah mezi naměřeným napětím ADC a skutečným napětím nebude lineární, proto jediný multiplikátor neposkytne velmi přesné výsledky, stejně jako pro proud.
Abychom tedy zlepšili přesnost, můžeme vykreslit sadu naměřených hodnot ADC se skutečnými hodnotami pomocí známé sady hodnot a poté tato data použít k vykreslení grafu a odvození multiplikační rovnice pomocí metody lineární regrese. Můžete odkázat měřič Arduino dB, ve kterém jsem použil podobnou metodu.
Nakonec, jakmile vypočítáme hodnotu skutečného napětí a skutečného proudu v zátěži, můžeme vypočítat výkon pomocí vzorců (P = V * I). Poté pomocí kódu níže zobrazíme všechny tři hodnoty na LCD displeji.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Napěťová_hodnota); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Napájení ="); lcd.print (Power_Value);
Práce a testování
V zájmu výuky jsem použil desku perf k pájení všech komponent, jak je znázorněno v obvodu. Pro připojení zátěže jsem použil šroubovací terminál Phoenix a pro připojení mého zdroje napájení normální DC hlaveň Jack. Deska Arduino Nano a LCD jsou namontovány na zásuvce Bergstik, takže je lze v případě potřeby později znovu použít.
Po přípravě hardwaru nahrajte Arduino kód na vaši Nano desku. Upravte trimr tak, aby ovládal úroveň kontrastu LCD, dokud neuvidíte jasný úvodní text. Chcete-li otestovat desku, připojte zátěž ke konektoru šroubové svorky a zdroj ke konektoru hlavně. Aby tento projekt fungoval, mělo by být zdrojové napětí více než 6V, protože Arduino vyžadovalo pro provoz +5V. Pokud vše funguje, měli byste vidět hodnotu napětí napříč zátěží a proud skrz ni zobrazený v prvním řádku LCD a vypočítaný výkon zobrazený ve druhém řádku LCD, jak je uvedeno níže.
Zábavná část stavby něčeho spočívá v testování, aby se ověřilo, jak daleko to bude správně fungovat. K tomu jsem použil 12V automobilových indikátorů jako zátěž a RPS jako zdroj. Vzhledem k tomu, že samotný RPS může měřit a zobrazovat hodnotu proudu a napětí, bude pro nás snadné ověřit přesnost a výkonnost našeho obvodu. A ano, také jsem použil svůj RPS ke kalibraci hodnoty multiplikátoru, abych se přiblížil přesné hodnotě.
Kompletní práci najdete na videu na konci této stránky. Doufám, že jste pochopili okruh a program a naučili se něco užitečného. Pokud máte nějaký problém s uvedením do provozu, pošlete jej do sekce komentářů níže nebo napište na naše fóra a získejte další technickou pomoc.
Tento projekt Wattmetru založený na Arduinu má mnoho dalších upgradů, které lze přidat ke zvýšení výkonu automatického protokolování dat, vykreslování grafů, upozorňování na napětí nebo aktuální situace atd. Takže zůstaňte zvědaví a dejte mi vědět, k čemu byste to použili.