- Požadované komponenty:
- Vysvětlení obvodu:
- Generátor čtvercových vln 555 s časovačem IC:
- Spouštěcí brána Schmitt:
- Arduino měří kapacitu:
- Shrnutí a testování:
Když narazíme na desky plošných spojů, které jsou dříve navrženy, nebo vyjmeme jednu ze staré televize nebo počítače, pokusíme se to opravit. Někdy potřebujeme znát kapacitu konkrétního kondenzátoru na desce, abychom poruchu odstranili. Pak čelíme problému při získávání přesné hodnoty kondenzátoru z desky, zejména pokud se jedná o zařízení pro povrchovou montáž. Můžeme si koupit zařízení pro měření kapacity, ale všechna tato zařízení jsou nákladná a ne pro každého. S ohledem na to navrhneme jednoduchý měřič kapacity Arduino pro měření kapacity neznámých kondenzátorů.
Tento měřič lze snadno vyrobit a také nákladově efektivní. Budeme vyrábět měřič kapacity pomocí Arduino Uno, spouštěcí brány Schmitt a časovače 555 IC.
Požadované komponenty:
- 555 časovač IC
- IC 74HC14 Schmittova spouštěcí brána nebo NOT brána.
- 1K Ω rezistor (2 kusy), 10KΩ rezistor
- 100nF kondenzátor, 1000µF kondenzátor
- 16 * 2 LCD,
- Nepájivé pole a některé konektory.
Vysvětlení obvodu:
Schéma zapojení kapacitního měřiče využívající Arduino je zobrazeno na následujícím obrázku. Obvod je jednoduchý, LCD je propojen s Arduino pro zobrazení měřené kapacity kondenzátoru. Obvod generátoru čtvercových vln (555 v Astabilním režimu) je připojen k Arduinu, kde jsme připojili kondenzátor, jehož kapacitu je třeba měřit. Schmittova spouštěcí brána (IC 74LS14) se používá k zajištění toho, že do Arduina je přiváděna pouze obdélníková vlna. Pro filtrování šumu jsme přidali několik kondenzátorů napříč výkonem.
Tento obvod může přesně měřit kapacity v rozsahu 10 nF až 10 uF.
Generátor čtvercových vln 555 s časovačem IC:
Nejprve si povíme o 555 generátoru čtvercových vln založených na časovači IC, nebo bych měl říci 555 Astable Multivibrator. Víme, že kapacitu kondenzátoru nelze měřit přímo v digitálním obvodu, jinými slovy UNO se zabývá digitálními signály a nemůže měřit kapacitu přímo. K propojení kondenzátoru s digitálním světem tedy používáme obvod generátoru 555 čtvercových vln.
Jednoduše řečeno, časovač poskytuje výstup čtvercových vln, jehož frekvence přímo implikuje na kapacitu s ním spojenou. Nejprve tedy získáme signál obdélníkové vlny, jehož frekvence je představitelem kapacity neznámého kondenzátoru, a tento signál zavedeme do UNO pro získání příslušné hodnoty.
Obecná konfigurace 555 v Astabilním režimu, jak je znázorněno na následujícím obrázku:
Frekvence výstupního signálu závisí na RA, RB rezistorech a kondenzátoru C. Rovnice je uvedena jako, Frekvence (F) = 1 / (Časové období) = 1,44 / ((RA + RB * 2) * C).
Zde RA a RB jsou hodnoty odporu a C je hodnota kapacity. Vložením hodnot odporu a kapacity do výše uvedené rovnice získáme frekvenci výstupní obdélníkové vlny.
Budeme připojovat 1KΩ jako RA a 10KΩ jako RB. Takže vzorec se stane, Frekvence (F) = 1 / (Časové období) = 1,44 / (21000 * C).
Přeskupením podmínek, které máme, Kapacita C = 1,44 / (21000 * F)
V našem programovém kódu (viz níže) jsme pro přesné získání hodnoty kapacity vypočítali výsledek v nF vynásobením získaných výsledků (ve faradech) hodnotou „1000000000“. Také jsme použili '20800' místo 21000, protože přesné odpory RA a RB jsou 0,98K a 9,88K.
Pokud tedy známe frekvenci obdélníkové vlny, můžeme získat hodnotu kapacity.
Spouštěcí brána Schmitt:
Signály generované obvodem časovače nejsou zcela bezpečné pro přímé předávání Arduino Uno. S ohledem na citlivost UNO používáme Schmittovu spouštěcí bránu. Schmittova spouštěcí brána je digitální logická brána.
Tato brána poskytuje VÝSTUP na základě úrovně vstupního napětí. Schmittův spouštěč má úroveň napětí THERSHOLD, když má signál INPUT aplikovaný na bránu úroveň napětí vyšší než THRESHOLD logické brány, OUTPUT jde HIGH. Pokud je úroveň vstupního napěťového signálu nižší než THRESHOLD, bude VÝSTUP brány nízký. S tím, že Schmittovu spoušť obvykle nedostáváme zvlášť, máme vždy po Schmittově spoušti bránu NOT. Schmitt Trigger working je vysvětlen zde: Schmitt Trigger Gate
Budeme používat čip 74HC14, tento čip má v sobě 6 bran Schmitt Trigger. Tyto brány SIX jsou interně připojeny, jak je znázorněno na následujícím obrázku.
Truth Table of Inverted Schmitt Trigger bráně je výstava v následujícím pořadí, s tím musíme naprogramovat UNO pro převrácením kladné a záporné časové úseky na svých terminálech.
Připojíme signál generovaný časovacím obvodem k bráně ST, na výstupu budeme mít obdélníkovou vlnu invertovaných časových období, kterou lze bezpečně předat UNO.
Arduino měří kapacitu:
Uno má speciální funkci pulseIn , která nám umožňuje určit trvání pozitivního stavu nebo trvání negativního stavu konkrétní obdélníkové vlny:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
Funkce pulseIn měří dobu, po kterou je na PIN8 Uno přítomna vysoká nebo nízká úroveň. Funkce pulseIn měří tento nejvyšší čas (Htime) a nízký čas (Ltime) v mikrosekundách. Když přidáme Htime a Ltime dohromady, získáme trvání cyklu a jeho převrácením získáme frekvenci.
Jakmile máme frekvenci, můžeme získat kapacitu pomocí vzorce, o kterém jsme hovořili dříve.
Shrnutí a testování:
Stručně řečeno, připojíme neznámý kondenzátor k obvodu časovače 555, který generuje výstup čtvercové vlny, jehož frekvence přímo souvisí s kapacitou kondenzátoru. Tento signál je předán UNO přes bránu ST. UNO měří frekvenci. Se známou frekvencí programujeme UNO pro výpočet kapacity pomocí vzorce diskutovaného výše.
Podívejme se na některé výsledky, které mám
Když jsem připojil 1uF elektrolytický kondenzátor, výsledek je 1091,84 nF ~ 1uF. A výsledek s 0,1uF polyesterovým kondenzátorem je 107,70 nF ~ 0,1uF
Pak jsem připojil 0,1uF keramický kondenzátor a výsledek je 100,25 nF ~ 0,1uF. Výsledek s elektrolytickým kondenzátorem 4,7uF je 4842,83 nF ~ 4,8uF
Takto můžeme jednoduše měřit kapacitu jakéhokoli kondenzátoru.