Je elektronický měřicí přístroj umožňující měřit elektrické veličiny napětí, proud, el. odpor, kapacitu, frekvenci. Jedná se o středoškolský projekt, ne laboratorní přístroj 🙂
Úvod:
Celé to začalo učením programování 8051 [1]. V jedné kapitole byl uveden zajímavý převodník PCF8591P a tak se zrodila myšlenka zkonstruovat měřicí přístroj. Nejprve jsem chtěl plně využít převodník, tak jsem se rozhodl dva vstupy využít pro dvojité měření napětí, další pro měření proudu a poslední pro odpor. Ale co s nevyužitým mikro procesorem? Tak jsem jeden čítač využil jako čítač impulzů (měření frekvence) a druhý pro měření času nabíjení kondenzátorů (měření kapacity).
Parametry:
- Napětí – 2×0,1-100V DC
- Proud – 0,01-2,55A DC
- Odpor – 0Ω-10MΩ
- Frekvence – do 10MHz
- Kapacita – 100p – 100uF
- Generátor – max. 50Hz
Technické údaje hlavních součástek:
Mikroprocesor je od firmy ATMEL z rodiny 8051, AT89S8253, 12KB Flash, 256B RAM, 3x16bit čítač/časovač, UART, SPI, 24MHz
Převodník PCF8591P, 4x8bit A/D s postupnou aproximací, 8bit D/A, I2C sběrnice
Vývoj:
Vývoj zařízení (hardwaru), byl velmi rychlý, protože nám byl ve škole zadán úkol, ve kterém jsme měli vymyslet nějaké zařízení, napsat k němu program, nakreslit schéma a nakonec to celé odprezentovat. Abych to stihl, byla konstrukce navržena pouze teoreticky. Navrhl jsem DPS, nechal ho vyrobit a nakoupil součástky. Po té jsem začal postupně zapojovat konkrétní okruhy obvodu a psát k nim program. Bohužel stalo se to, co bylo od začátku jasné, teorie se neshodovala s realitou, takže jsem musel schéma a DPS dodatečně upravovat. Vývoj softwaru nešel tak rychle jak bylo plánováno, do prezentace jsem dokončil jen měření odporu, napětí a proudu. Poté trval ještě rok, než bylo zařízení plně funkční.
Jako zobrazovací prvek jsem zvolil displej 2×16 řádků, je dostatečně veliký a cenově dostupný [2]. Pro ovládání v menu slouží dvě tlačítka (vpravo-vlevo), tlačítko OK pro výběr a jedno pro návrat do menu.
Napětí: Pro měření napětí jsem chtěl, aby rozmezí hodnot bylo od 0 do 100V. Při tomto rozmezí by hodnoty byly nepřesné. Přepínání odporových děličů by tento problém odstranil. Nejjednodušší bylo použití relé, vybrané je malé a cenově přijatelné. Kvůli bezpečnosti je ve výchozím stavu relé přepnuto na dělič určený pro měření vyšších napětí.
Odpor: Pro tento případ jsem chtěl využít AD převodník, proto obvod funguje na principu připojování nominálního odporu k neznámému a hledání vhodné hodnoty. Tento způsob měření není příliš přesný – šlo spíše o hledání přibližné hodnoty. V praxi to vypadá tak, že přístroj neukáže hodnotu 27,64kΩ, ale převede napětí ze srovnávacího rezistoru o hodnotě např. 100k, z tabulky vybere příslušnou hodnotu (0-100) a podle aktuálního umístění v nominální řadě hodnot připíše na displej kΩ (v jiných případech třeba MΩ nebo připíše 0) (zobrazované hodnoty např.: 2500Ω, 021kΩ, 060Ω).
Proud: Tento princip byl na vývoj nejjednodušší. AD převodník má referenční napětí 2,5V z toho vyplývá, že pro proud 2,5A (což mi stačilo) stačí použít 1Ω rezistor a měřit na něm úbytek napětí. Díky tomu se hodnoty z převodníku nemusí nějak převádět, mikroprocesor je hned zobrazuje na displeji.
Frekvence: Aby bylo možné měřit i jiné než TTL signály byl využit operační zesilovač, kde rezistory R36-R37 vytváří rozhodovací úroveň pro log 1 a log 0 na 2,5V. Signál se přivádí na invertující vstup, takže s každou náběžnou hranou větší než 2,5V pošle OZ do uP log 0 a tím se inkrementuje (zvýší) obsah čítače.
Kapacita: Ta mi trvala ze všeho nejdéle. Zde bylo těžké nalezení optimálních hodnot rezistorů tak aby byly přijatelné rozsahy a snadný program. Po dlouhém zkoušení jsem nalezl takové hodnoty rezistoru (R49,R50,R51), se kterými bylo měření přijatelné.
Generátor: Zde jsem využil DA převodníku, takže uP posílá hodnoty, ze kterých se vytvoří požadovaný signál. Z toho vyplývá, že lze generovat v podstatě cokoliv. Opět využívá referenčního napětí, z toho plyne, že výstupní napětí se pohybuje do 0 do 2,5V jelikož je také 8bitový je kvantovací krok 0,01V. Bohužel při uvedení do provozu jsem zjistil, že generátor nenajde uplatnění. I když jsem tvar signálu omezil na 32 hodnot maximální frekvence je zhruba 50Hz. Je to dáno tím, že sběrnice I2C je udělaná softwarově a komunikace s převodníkem je trvá příliš dlouho. Aby se převodník nezatěžoval přímo, je na výstup připojen OZ jako sledovač.
Komunikace s PC a program pro PC: Chtěl jsem, aby bylo možné sledovat průběh měřených napětí v grafu a pro snazší ovládání generátoru (v té době jsem ještě nevěděl, že je k ničemu) vznikl program pro PC. Zde mi velmi pomohla [3]. Po mnoha úpravách komunikačního protokolu se nakonec využívá 4 bajtů, dva nesoucí informaci o typu měření a dva obsahující hodnoty. PC vyšle první bajt oznamující informaci o započetí přenosu, uP odešle danou informaci, poté PC pošle další bajt a uP mu zas odpoví. Po čtvrtém bajtu program vyhodnotí, co přijal za data a zobrazí hodnoty. Při ovládání generátoru se odesílají data o typu signálu a zpoždění. Poté co jsem zjistil, že je generátor nepoužitelný tak už jsem neřešil přesné generování kmitočtu, ale pouze se prodlužuje-zkracuje zpoždění mezi jednotlivými odeslanými hodnotami převodníku.
Principy měření:
Napětí:
Napětí přivedené na svorku J2 vytvoří úbytek napětí na odporovém děliči R28-R30. Toto napětí je přes omezovací rezistor R5 zavedeno do A/D převodníku IC3. Převodník toto napětí porovná s referenčním napětím 2,5V, které vytváří IC4. Mikroprocesor si po sběrnici I2C vyžádá 8bitovou hodnotu z měření. Potom vyhodnotí velikost napětí a v případě, že napětí je vyšší než 22V, vypne relé K1 a tím přepne na odporový dělič R29-R30 a opět vyhodnotí hodnotu z převodníku. V případě, že napětí kleslo pod 21V, sepne relé. Rozsah při sepnutém relé je 0,1 až 22V a pro vypnuté 21 až 100V. Dioda D1 zajišťuje, že proud poteče pouze jedním směrem. Zenerova dioda D4 s rezistorem R42 představuje bezpečnostní prvek – kdyby se na děliči objevilo napětí vyšší než dovolené. Potenciometry P11 a P12 umožňují doladit nepřesnost odporového děliče.
Proud:
Proud protékající jedno-ohmovým rezistorem R41 vytváří úbytek napětí 0,01V na 0,01A protékajícího proudu. Toto napětí převádí A/D převodník IC3. Dioda D6 zajistí, že proud teče správným směrem a pojistka F2 zabraňuje proudovému přetížení.
Odpor:
Mikroprocesor sepne tranzistor T1. Měřený rezistor na svorce J1 spolu s rezistorem R8 vytvoří úbytek napětí, které A/D převodník převede, mikroprocesor toto napětí vyhodnotí a pokud napětí bude příliš veliké, znamená to, že měřený rezistor má příliš vysokou hodnotu odporu. Mikroprocesor tedy vypne tranzistor T1, sepne T2 a měření se opakuje, dokud se nenajde vhodný rozsah. Po nalezení vhodného rozsahu mikroprocesor určí podle velikosti napětí velikost odporu.
Frekvence:
Vstupní obvod tvoří operační zesilovač IC7A zapojený jako komparátor. Rezistory R36 a R37 vytvářejí referenční napětí. S každou sestupnou hranou signálu vytvoří OZ kladnou nástupnou hranu. Tyto impulzy počítá vnitřní čítač mikroprocesoru po dobu jedné sekundy. To odpovídá frekvenci v Hz.
Generátor:
Zde se využívá D/A převodník IC3, který vytváří napětí podle hodnot, které mu mikroprocesor odesílá. Bohužel toto odesílání trvá příliš dlouho. Proto maximální frekvence, která se dá generovat při 32 vzorkách za sekundu, je zhruba 50Hz. Generovat se dá jakýkoliv průběh, který se nahraje do paměti mikroprocesoru. Aby se převodník nezatěžoval přímo, je na výstupu připojen OZ IC7B jako sledovač.
Kapacita:
Při měření kapacity se využívá rychlosti nabíjení kondenzátoru. Neznámý kondenzátor se připojí na svorku J4, mikroprocesor vypne tranzistory T8, T7 a dá povel IC6 k nabíjení kondenzátoru. Mikroprocesor pomocí vnitřního časovače měří, jak dlouho trvá nabíjení na 0,63Ucc. V případě, že by nabíjení trvalo příliš dlouho, tak a sepne T7, čímž zmenší odpor, přes který se kondenzátor nabíjí. Mikroprocesor podle doby nabíjení určí velikost kapacity kondenzátoru. Potenciometrem P10 se nastavuje referenční napětí na 0,63Ucc = 3,2V.
Popis schématu:
Zařízení je napájeno ze sítě a přes transformátor je vytvořeno dvou shodných zdrojů 5V pomocí IC2 a IC5 osazené chladiči. Jedna větev +5V napájí integrované obvody a +5V2 napájí zbytek obvodu. Srdcem je mikroprocesor AT89S8253, jeho takt udává krystal X1 24MHz s zatěžovacími kondenzátory C18 a C19, správný reset zajišťuje RC článek C20 a R52. Port P2 zajišťuje obsluhu LCD displeje MC1602 2×16 znaků. Na port P0 je připojena odporová sít RN1 (mikroprocesor nemá vnitřní PULL-UP rezistory). Na svorky SV1-9 až SV1-12 jsou připojena tlačítka z ovládacího panelu. Na pinech P1.0 a P1.1 je sběrnice I2C se zatěžovacími rezistory R1 a R2. IC4 vytváří pro převodník referenční napětí 2,5V. Pro příjem dat od RS232 se stará tranzistor T11, dioda D5 ho chrání před záporným napětím (LOG1=-15V, LOG0=+15V), odesílání zajišťuje IC8, pomocí kondenzátorů C16 a C16 a diod D7 a D8 vytváří potřebné napájecí napětí z nevyužitých linek RS232.
Konstrukce:
Zařízení se vejde do přístrojové krabičky U-KM85. Pro připojení napětí a proudu jsem zvolil panelovou svorku K201 kvůli „univerzálnímu“ připojení vodičů a pro ostatní konektory BNC. Ovládací panel je přidělán distančními slupky přímo na panel krabičky s takovým odstupem, aby tlačítka byla dobře stisknutelná. Panel je s hlavní deskou propojen plochým kabelem o 16 žílách. Na zadní panel krabičky jsem umístil pojistkové držáky, hlavní vypínač, napájecí konektor a konektor.
Programy:
Program pro PC (obr. 3) je napsán v jazyce C++ a umožňuje sledovat měřené hodnoty a slouží k ovládání generátoru.
Program pro mikroprocesor je psán v jazyce Assembler a je dlouhý zhruba 3500 řádků.
Literatura:
[1] Práce s mikrokontroléry AT89S8252 – David Matoušek
[2] Práce s inteligentními displeji LCD – David Matoušek
[3] Učebnice programování v C++ Builder – Václav Kadlec
Seznam součástek:
Označení | Hodnota | Pouzdro |
Hlavní | ||
B1, B2 | B250C1500 | RB1A |
C1 – C9 | 100n | C025-030X050 |
C10, C12 | 1000u | E5-10,5 |
C11, C13 | 220u | E3,5-8 |
C14 | 10p | C025-030X050 |
C15, C16 | 47u | E1,8-4 |
C17 | 22u | E1,8-4 |
C18, C19 | 33p | C025-030X050 |
C20 | 10u | E1,8-4 |
D1, D2 | BAT46 | DO35-10 |
D3, D4 | 1N5337B | P1Z12 |
D5, D7 – D10 | 1N4148 | DO35-10 |
D6 | P1000K | DO201-15 |
F1 | 200mA | KS10H |
F2 | 3A | KS10H |
I1 | ARK500/2EX | W237-102 |
IC1 | AT89C8253 | DIL40 |
IC2, IC5 | 7805 | 78XXS |
IC3 | PCF8591P | DIL16 |
IC4 | TL431 | TO92-CLP |
IC6 | LM555N | DIL08 |
IC7 | LM538N | DIL08 |
IC8 | TL061P | DIL08 |
J1, J3 – J6 | PSH02-02PG | 6410-02 |
J2 | PSH02-04PG | 6410-04 |
K1, K2 | RSM954 | M3XXH |
P1, P8 | 500 | CA9V, CA6V |
P2, P10 | 2k5 | CA9V, CA6V |
P3, P7 | 50k | CA9V |
P4, P5 | 250k | CA9V |
P6 | 100 | CA9V |
P9 | 250 | CA6V |
P11, P13 | 1k | CA9V |
P12, P14 | 10k | CA9V |
R1, R2 | 22k | 0207 |
R3, R4, R6, R30, R52 | 10k | 0207 |
R5, R42, R43 | 10 | 0207 |
R7 | 100 | 0207 |
R8 | 680 | 0207 |
R9, R28, R31 | 8k2 | 0207 |
R10 | 82k | 0207 |
R11 | 820k | 0207 |
R12 | 10M | 0207 |
R13 | 56 | 0207 |
R14 – R19 | 470 | 0207 |
R20 – R25 | 1k2 | 0207 |
R26, R27 | 330 | 0207 |
R29, R32 | 39k | 0207 |
R33, R35, R46, R47 | 1k | 0207 |
R36 – R40 | 3k3 | 0207 |
R41 | 1 (20W) | P0817V |
R44 | 1 | 0207 |
R45 | 1k5 | 0207 |
R48 | 2k7 | 0204 |
R49 | 4M7 | 0207 |
R50 | 470 | 0207 |
R51 | 47 | 0207 |
RN1 | 10k | SIL9 |
S2 | TL32PO | TL3XPO |
SV1 | MLW16G | ML16 |
SV2 | PSH02-05PG | FE05-1 |
T1 – T10 | BC327 | TO92-EBC |
T11 | BC548 | TO92-EBC |
TR2 | 230V/2x9V | EI48-2 |
X1 | 24MHz | HC49/S |
Panel | ||
R1 | 10k | 0207/12 |
R2 | 10 | 0207/7 |
R3 | 1k | 0207/7 |
S1 -S6 | P-DT6 | DT6 |
SV1 | MLW16A | ML16 |
T1 | BC558A | TO92-EBC |
X1 | S1G20 | 70543-16 |
DPS:
Závěrem:
Toto zařízení nebylo projektováno jako přesný měřicí přístroj, ale jako ukázka co vše se dá měřit pomocí pár součástek v rámci školního projektu „Program pro 8051“.
Publikováno v časopise Praktická elektronika 2011/12 😉
Ke stažení: MERIC_dokumentace
Přílohy:
MERIC_hlavni_schema.pdf | Schéma přístroje |
MERIC_hlavni_DPS.pdf | DPS, rozměry: 158x120mm |
MERIC_hlavni_osazeni.pdf | Osazovací plán |
MERIC_panel_schema.pdf | Schéma panelu |
MERIC_panel_DPS.pdf | DPS, rozměry: 88x68mm |
MERIC_panel_osazeni.pdf | Osazovací plán |
MERIC_soucastky.xls | Seznam součástek |
MERIC_foto | Fotky přístroje |
MERIC_panel_nakres.pdf | Nákres předního panelu |
MERIC_prog | Program pro PC a pro mikroprocesor |