Obvod LED voltmetru mikrokontroléru. Digitální voltampérmetr na ATmega8 pro napájení

Programová logika

Na začátku programu se provedou inicializační funkce. ADC se nakonfiguruje a spustí, nakonfiguruje se port, ke kterému je indikátor připojen, a nakonfiguruje se časovač T0. Poté jsou povolena přerušení a mikrokontrolér vykonává nekonečnou smyčku. V cyklu se dotazuje softwarová vyrovnávací paměť ADC a vypočítává se hodnota napětí. Vypočtená hodnota je předána funkci indikátoru, která ji převede na binární dekadické číslice, poté na kódy číslic indikátoru a zapíše je do pole (bufferu).

Paralelně s hlavním programem jsou volána přerušení ADC a časovače T0. ADC pracuje v režimu jediné konverze, s interním referenční zdroj napětí 2,56V. Zarovnáno vpravo, je použito všech 10 číslic. Výsledek převodu ADC je akumulován 8krát v proměnné, zprůměrován a zapsán do softwarové vyrovnávací paměti.

Přerušení časovače T0 jej restartuje a vyvolá funkci aktualizace indikátoru. Zhasne aktuálně zobrazený výboj a rozsvítí další.

Struktura projektu

Projekt se skládá ze 3 softwarových modulů.
main.c – hlavní program
adc.c – funkce pro práci s ADC
ukazatel.c – ovladač sedmisegmentového 4místného ukazatele.

Realizace voltmetru od Vladimíra

Na indikační anody byly přidány přepínače, které zvýšily jas displeje a umožnily použití výkonnějších displejů.

Dva signety pro DIP14 a SO14

Obvod využívá tranzistory BC847 (KT3102).

Při aktualizaci hlavního článku o voltmetru byl vyměněn dělič napětí v obvodu a pečeti od Vladimíra. Firmware pro voltmetr je v hlavním článku.

Realizace síťového voltmetru od Wali Marat

Signet se od obvodu liší nahrazením rezistorů R2 a R3 jedním trimrem 4,7k a absencí zenerovy diody VD1.

Poslán byl i upravený obvod síťového voltmetru s kvalitnějším obvodem pro stabilizaci napájecího napětí voltmetru.

Fotografie síťového voltmetru

Realizace voltmetru/ampérmetru od Wali Marat

Zenerova dioda 5,1V VD1 (označená zeleně) byla přidána do všech obvodů od Wali Marat pro ochranu vstupu ADC mikrokontroléru před přepětím.

Obvod na obr. 1 je rozvinutím předchozího návrhu pro použití analogového vstupu v mikrokontroléru, který nemá vestavěný ADC, a také využívá technické techniky z jiného návrhového nápadu pro ovládání sedmisegmentového LED indikátoru bez externí klíčové tranzistory. Tento obvod má sériový kanál a pro přenos naměřených hodnot do osobního počítače potřebuje pouze kroucený dvoulinkový kabel.

Sériové spojení bylo testováno pomocí programu Hyper Terminal společnosti Microsoft nakonfigurovaného na 115 200 baudů; 8 bitů, parita, 1 stop bit; bez hardwarového ovládání.

Stručně řečeno, program ovládá jednu LED sedmisegmentový ukazatel současně podél linií RA0 a RB7. Nastavením výstupu RA0 na jedničku a použitím RB7 jako vstupu se aktivuje indikátor se společnou anodou DS3. Nastavením výstupu RA0 na nulu a použitím RB7 jako vstupu se aktivuje indikátor DS2 společné katody. Použitím RA0 jako vstupu a nastavením výstupu RB7 na jedničku se aktivuje indikátor DS1 společné anody a použitím RA0 jako vstupu a nastavením výstupu RB7 na nulu se aktivuje indikátor DSO společné katody. Po úspěšné aktivaci jednoho indikátoru je pouze jedna z linek RB0 ... RB6 nakonfigurována jako výstup pro ovládání jednoho LED segmentu. Tento obvod již není omezen na napájecí napětí VDD - 3V nebo nižší - protože LED diody jsou zády k sobě, takže pokles napětí v dopředném směru na jedné LED omezuje zpětné napětí na druhé. Použití červených LED vyžaduje 1,6V.

Obrázek 2 ilustruje nové aspekty nápadu designu. Q1, R5 a R6 fungují jako ekvivalentní proměnný odpor RX, který nabíjí kondenzátor C3. Místo připojení RX k zemi jej jednoduše připojte k jedné I/O lince – například RB0 – mikrokontroléru. Pokud je RB0 zapnutý jako výstup s nulovým stavem, pak je aktivován první analogový kanál a rutina měření počítá nabíjecí impulsy na hodnotu 66 % VDD; pak se podle tabulky výsledná hodnota zpoždění převede na třímístnou hodnotu milivoltů. Chcete-li zvýšit počet analogových vstupů, můžete paralelně zapojit až sedm obvodů s proměnným odporem - tak, že každý je zapojen mezi C3 a jednu I/O linku, RB1...RB7. Je důležité, aby I/O linky byly připojeny k indikátorům a také povolily nebo zakázaly analogové kanály. Když je jeden analogový kanál nízkoimpedanční linkou I/O, ostatní linky mají vysokou impedanci a fungují jako vstupy, což deaktivuje všechny ostatní kanály. V souladu s tím jsou indikátory deaktivovány.

Do obvodu na obr. 1 byl také přidán jednoduchý sériový kanál bez přidání externích součástek. Pokud připojíte dvě I/O linky, RA1 a RA2, nakonfigurované jako výstupy k RXD (Pin 2) a GND (Pin 5) konektoru RS 232, můžete pomocí programu vytvořit kladná a záporná napětí vzhledem k zemi PC s portem RS 232. Když je RA1 jedna a RA2 nula, RXD má kladný potenciál 5 V vzhledem k zemi portu RS 232 v PC. Když je RA1 nula a RA2 je jedna, RXD má záporný potenciál -5 V vzhledem k zemi portu RS 232 v PC.

Kdy byla potřeba měřicí část pro laboratorní zdroj, uvaž různá schémata z internetu jsem si hned vybral sedm segmentových LED indikátorů (možnou alternativou jsou indikátory jako 0802, 1602 - drahé a špatně čitelné). Také jsem nechtěl žádné přepínání - proud i napětí by se měly číst kdykoli. Z různých důvodů nalezen hotová řešení nefungovalo a rozhodl jsem se navrhnout vlastní obvod.

Navržené zařízení je určeno pro použití ve spojení s různými napájecími zdroji a umožňuje měřit napětí v rozsahu od 0 do 99,9 V s přesností 0,1 V a odběr proudu v rozsahu od 0 do 9,99 A s přesností 0,01 A . Zařízení je sestaveno na levném mikrokontroléru PIC12F675, který je nejlevnější a nejrozšířenější z těch s 10bitovým ADC, dvěma registry 74HC595 a dvěma 4 nebo 3bitovými LED indikátory. Celková cena použitých dílů je dle mého názoru u takovýchto provedení se současnou indikací napětí a proudu minimální.

Popis činnosti obvodu.

Napětí je zobrazeno indikátorem HL1 a proud indikátorem HL2. Stejnojmenné segmentové piny indikátorů jsou spojeny do párů a připojeny k paralelním výstupům registru DD2, společné bitové piny jsou připojeny k registru DD3. Registry jsou zapojeny do série a tvoří 16bitový posuvný registr, ovládaný třemi vodiči: piny 11 jsou hodiny, 14 jsou informace a informace se zapisují do výstupních západek na základě poklesu na pinu 12. Indikace je normální dynamická - přes výstupy registru DD3 se postupně volí společné svorky indikátorů a z výstupů DD2 přes proud omezující odpory R12-R19 se zapínají segmenty odpovídající zvolené číslici. Indikátory mohou být buď se společnou anodou, nebo se společnou katodou (oba jsou ale stejné).

Mikrokontrolér ovládá indikaci na pinech GP2, GP4, GP5 v přerušeních od časovače TMR0 s intervalem 2 ms. Vstupy GP0 a GP1 se používají pro měření napětí a proudu. V prvních třech číslicích indikátorů jsou zobrazeny skutečné naměřené hodnoty a na poslední číslici: v horním indikátoru je znak „V“ a ve spodním indikátoru je znak „A“. V případě použití 3-místných indikátorů jsou tyto znaky aplikovány na tělo zařízení. V tomto případě nejsou nutné žádné změny programu.

Měřené napětí je na MK přiváděno přes dělič R1-R3 a proud je přiváděn z výstupu operačního zesilovače LM358 přes rezistor R10, který spolu s vnitřním ochranná dioda chrání vstup MK před možným přetížením (op-amp je napájen napětím +7..+15 Voltů). Zisk operačního zesilovače je nastaven děličem R5-R7, přibližně rovný 50 a regulován trimovacím rezistorem R5. Dolní propust R4C2 vyhlazuje napětí z bočníku. Každé měření je provedeno během pouhých 100 µs. a bez tohoto řetězce budou údaje přístroje „skákat“ při jakékoli nerovnoměrnosti měřeného proudu (a ten je zřídka přísně konstantní). Stejnému účelu slouží také kondenzátor C1 v obvodu měření napětí. Zenerova dioda D1 chrání vstup operačního zesilovače před přepětím v případě rozbitého bočníku.

Zvláštní pozornost je třeba věnovat řetězu R8, R9. Aplikuje další offset přibližně 0,25 milivoltů na vstup operačního zesilovače. Faktem je, že bez něj existuje výrazná nelinearita zesílení operačního zesilovače při nízkých hodnotách měřeného proudu (méně než 0,3 A). Na různých kopiích mikroobvodů se tento efekt projevuje v různé míře, ale chyba na výše uvedených hodnotách měřeného proudu je v každém případě příliš vysoká. Při nastavení R8 a R9 na hodnoty uvedené v diagramu (hodnoty lze proporcionálně měnit při zachování stejného poměru, například 15 Ohmů a 300 kOhmů), nepřekročí aktuální chyba měření způsobená tímto efektem jedna nejméně významná číslice. U všech kopií mikroobvodů, které mám, nebyl vyžadován žádný výběr uvedených odporů. V obecném případě je zvolen minimální odpor R9, při kterém na indikátoru stále svítí nuly v nepřítomnosti měřeného proudu, a zvyšuje jej 1,5-2krát. Je zajímavé, že mezi mnoha podobnými konstrukcemi, kde je použit stejný mikroobvod, ani jeden článek neobsahuje ani náznak tohoto problému. Zřejmě jsem byl jediný, kdo měl „špatné“ operační zesilovače (mimochodem získané v různých časech během 10 let). V žádném případě kategoricky nedoporučuji vylučovat z obvodů prvky C1, C2, R3, R8, R9, které v takových obvodech obvykle chybí, za účelem „zjednodušení návrhu“ - to stále platí metr, ne hračka blikající čísla!

Dobrá přesnost a stabilita odečtů je navíc zajištěna úplným „oddělením“ relativně silnoproudých impulzních řídicích obvodů indikátoru od mikrokontroléru napájením každého obvodu ze samostatného stabilizátoru 78L05. A dokonce i slabé rušení z provozu samotného mikrokontroléru má malý vliv na výsledek, protože každé měření se provádí v režimu „SPÁNKU“ s „utlumeným“ generátorem hodin.

Mikrokontrolér je taktován z interního oscilátoru, aby se šetřily piny. Resetovací vstup přes obvod R11, C3 je připojen na „čistých“ +5V. Při zapínání a vypínání napájecího zdroje, ve kterém je použit design, je možné značné rušení, proto, aby se zabránilo zamrznutí programu, je zapnut časovač WDT.

Zařízení je napájeno z libovolného stabilizovaného napětí 7-15 Voltů (ne více než 15V!), přes stabilizátory DA2, DA3. Kondenzátory C4-C8 jsou standardní blokovací kondenzátory. Aby byla zajištěna nízká chyba při proudech blízkých horní hranici, musí být napájecí napětí operačního zesilovače alespoň o 2 volty vyšší než napětí mikrokontroléru, takže napájení je napájeno před stabilizátory.

Zařízení je sestaveno na desce s plošnými spoji o rozměrech 57 x 62 milimetrů.

Deska s plošnými spoji zařízení.

Pro zmenšení rozměrů desky je většina rezistorů a kondenzátorů použita v pouzdru SMD velikosti 0802. Výjimky jsou: R1 - kvůli ztrátovému výkonu, R12 - pro zjednodušení topologie desky, elektrolytické kondenzátory a trimovací odpory. Kondenzátory C1 a C2 jsou keramické, ale pokud nejsou k dispozici, lze je nahradit elektrolytickým tantalem. Zenerova dioda - libovolná, se stabilizačním napětím 3-4,7 V. Indikátory lze vyměnit za FIT3641 nebo třímístné řady 3631 nebo 4031 bez změny designu desky. V případě potřeby je možné použít i větší indikátory jako 5641 a 5631 beze změny konstrukce (v tomto případě je mikrokontrolér připájen přímo bez bloku, jsou použity ořezávací odpory malých rozměrů, indikátor je připájen na horní straně mikroobvody, obroušením čtyř výstupků zespodu v rozích indikátoru). Šroubové svorky slouží k připojení zařízení k externím obvodům. Často se vyskytující problém při výrobě měřícího bočníku byl vyřešen použitím hotového 10A limitního bočníku z vadného multimetru řady D83x, naprosto bez předělávek. Podle mého názoru je to nejlepší varianta - myslím, že mnoho radioamatérů má vadný čínský multimetr. Jako poslední možnost může být vyroben z nichromového (nebo ještě lépe konstantního) drátu.

Výstup zdroje je připojen k bodu "Ux" a dále ze stejného bodu k zátěži. Společný vodič je přiváděn do bodu „COM“ a je již přiváděn do zátěže z bodu „COM-Out“. S tímto připojením se napětí na indikátoru zvýší o 0,1 V, když maximální proud zatížení. Softwarově je tato chyba redukována o polovinu až polovinu vzorkovací chyby (maximálně 0,05 V). Abyste se vyhnuli zvýšení této chyby, měli byste zvolit odpor bočníku, který nevyžaduje změnu jmenovitých hodnot obvodu během nastavování (přibližně 7-14 mOhm). Na pin "Upp" je přivedeno příslušné napájecí napětí pro zařízení.

Fotografie hotového zařízení

Program mikrokontroléru je napsán v jazyce Assembly v prostředí MPASM. Pro oba typy ukazatelů je program stejný, s výjimkou jedné směrnice. Na začátku zdrojového textu programu (soubor AV-meter.asm) v direktivě “ANODE EQU 0” má parametr hodnotu 0, což odpovídá práci s indikátory se společnou katodou. Chcete-li použít indikátory se společnou anodou, změňte hodnotu tohoto parametru na 1 a poté znovu přeložte program. Součástí je i hotový firmware pro mikrokontrolér pro oba indikátory se společnou anodou a společnou katodou. Při načítání HEX souboru do programů jako , nebo , se konfigurační slovo načte automaticky.

Nastavení okruhu je velmi jednoduché. Po přivedení napětí blízkého maximu na vstup nastavte trimrem R2 požadovanou hodnotu na horním indikátoru. Poté připojte k výstupu zařízení odpor 0,5-2 Ohm jako zátěž a upravte napětí tak, aby byl proud blízko maxima. Pomocí trimru R5 se nastaví hodnoty na spodním indikátoru odpovídající standardnímu ampérmetru.

Přiložený soubor obsahuje firmware, zdrojový kód, model a deska.

Seznam radioprvků

Označení Typ Označení Množství PoznámkaNakupovatMůj poznámkový blok
DD1 MK PIC 8bitový

PIC12F675

1 Do poznámkového bloku
DD2, DD3 Posunový registr

CD74HC595

2 Do poznámkového bloku
DA1 Operační zesilovač

LM358N

1 Do poznámkového bloku
DA2, DA3 Lineární regulátor

L78L05

2 Do poznámkového bloku
D1 Zenerova dioda

1N4734A

1 3,6-4,7 V Do poznámkového bloku
HL1, HL2 IndikátorFYQ36412 FIT3641 Do poznámkového bloku
C1, C2 Kondenzátor4,7 uF2 SMD 0805 Do poznámkového bloku
C3 Kondenzátor10 nF1 SMD 0805 Do poznámkového bloku
C4 100uF x 10V1 Do poznámkového bloku
C5, C7 Kondenzátor100 nF2 SMD 0805 Do poznámkového bloku
C6, C8 Elektrolytický kondenzátor20uF x 16V2 Do poznámkového bloku
R1 Rezistor

39 kOhm

1 0,5 Watt Do poznámkového bloku
R2, R5 Trimrový odpor

1 kOhm

2 Do poznámkového bloku
R3 Rezistor

1,2 kOhm

1 SMD 0805 Do poznámkového bloku
R4 Rezistor

3 kOhm

1 SMD 0805 Do poznámkového bloku
R6 Rezistor

1,5 kOhm

1 SMD 0805 Do poznámkového bloku
R7 Rezistor

100 kOhm

1 SMD 0805 Do poznámkového bloku
R8 Rezistor

150 ohmů

1 SMD 0805 Do poznámkového bloku
R9 Rezistor

Jednoduchý voltmetr střídavé napětí s frekvencí 50 Hz, navržený jako vestavěný modul, který lze použít buď samostatně, nebo zabudovat hotové zařízení.
Voltmetr je sestaven na mikrokontroléru PIC16F676 a 3-místném indikátoru a neobsahuje příliš mnoho dílů.

Hlavní vlastnosti voltmetru:
Tvar měřeného napětí je sinusový
Maximální hodnota měřené napětí - 250 V;
Frekvence měřeného napětí - 40…60 Hz;
Rozlišení zobrazení výsledku měření je 1 V;
Napájecí napětí voltmetru je 7…15 V.
Průměrná spotřeba proudu - 20 mA
Dvě možnosti provedení: s a bez napájení na palubě
Jednostranné PCB
Kompaktní provedení
Zobrazení naměřených hodnot na 3místném LED indikátoru

Schematické schéma voltmetru pro měření střídavého napětí


Realizováno přímé měření střídavého napětí s následným výpočtem jeho hodnoty a výstupem do indikátoru. Měřené napětí je přivedeno na vstupní dělič vyrobený na R3, R4, R5 a přes oddělovací kondenzátor C4 je přivedeno na ADC vstup mikrokontroléru.

Rezistory R6 a R7 vytvářejí na vstupu ADC napětí 2,5 V (poloviční výkon). Kondenzátor C5, relativní malá kapacita, odpojuje vstup ADC a pomáhá snižovat chybu měření. Mikrokontrolér organizuje činnost indikátoru v dynamickém režimu na základě přerušení od časovače.

--
Děkuji za pozornost!
Igor Kotov, šéfredaktor časopisu Datagor


🕗 01/07/14 ⚖️ 19,18 Kb ⇣ 238 Dobrý den, čtenáři! Jmenuji se Igor, je mi 45, jsem Sibiřan a nadšený amatérský elektroinženýr. Vymyslel jsem, vytvořil a udržuji tuto úžasnou stránku od roku 2006.
Již více než 10 let existuje náš časopis pouze na mé náklady.

Dobrý! Dárek je u konce. Pokud chcete soubory a užitečné články, pomozte mi!

Pokud najdete chybu, vyberte část textu a stiskněte Ctrl+Enter.