Innehållsförteckning:

Använd kondensatorer för att mäta temperatur: 9 steg
Använd kondensatorer för att mäta temperatur: 9 steg

Video: Använd kondensatorer för att mäta temperatur: 9 steg

Video: Använd kondensatorer för att mäta temperatur: 9 steg
Video: How to use W3230 Thermostat Heat and Cold Relay Controller AC DC 12V/24V/120/220V P1 to P8 2024, November
Anonim
Använd kondensatorer för att mäta temperaturen
Använd kondensatorer för att mäta temperaturen

Detta projekt kom till eftersom jag köpte ett kondensatorkit med huvudsakligen X7R (god kvalitet) kondensatorer, men några av de högre värdena 100nF och högre var det billigare och mindre stabila Y5V -dielektrikumet, som uppvisar en massiv förändring över temperatur och driftsspänning. Jag skulle normalt inte använda Y5V i en produkt jag designar, så jag försökte hitta alternativa användningsområden för dem istället för att låta dem sitta på hyllan för alltid.

Jag ville se om temperaturförändringen kunde utnyttjas för att göra en användbar och mycket billig sensor, och som du kommer att se på de närmaste sidorna var det ganska enkelt, med bara en annan komponent krävs.

Steg 1: Teori

Teori
Teori
Teori
Teori
Teori
Teori

Först hjälper det att veta lite om hur kondensatorer är konstruerade och vilka typer som finns. Keramiska kondensatorer består av ett antal metallplåtar, eller "plattor" separerade av en isolator, känd som ett dielektrikum. Egenskaperna hos detta material (tjocklek, keramiktyp, antal lager) ger kondensatorn dess egenskaper som driftspänning, kapacitans, temperaturkoefficient (kapacitansförändring med temperatur) och driftstemperaturområde. Det finns ganska många dielektrikar tillgängliga, men de mest populära visas i diagrammet.

NP0 (även kallad C0G) - dessa är de bästa, med praktiskt taget ingen förändring över temperaturen, men de tenderar att endast vara tillgängliga för låga kapacitansvärden i picoFarad och lågt nanoFarad -område.

X7R - dessa är rimliga, med bara en liten procentuell förändring över driftsområdet.

Y5V - som du kan se är dessa den brantaste kurvan på grafen, med en topp runt 10C. Detta begränsar användbarheten av effekten något, för om sensorn har möjlighet att någonsin gå under 10 grader är det omöjligt att avgöra vilken sida av toppen det är.

De andra dielektrikema som visas på grafen är mellansteg mellan de tre mest populära beskrivna ovan.

Så hur kan vi mäta detta? En mikrokontroller har en logisk nivå vid vilken dess ingångar anses vara höga. Om vi laddar kondensatorn via ett motstånd (för att styra laddningstiden) kommer tiden att nå den höga nivån vara proportionell mot kapacitansvärdet.

Steg 2: Samla dina material

Samla dina material
Samla dina material
Samla dina material
Samla dina material

Du kommer behöva:

  • Y5V -kondensatorer, jag använde 100nF 0805 -storlek.
  • Små bitar av prototyper för att montera kondensatorerna.
  • Värmekrymp för att isolera sensorerna. Alternativt kan du doppa dem i epoxi eller använda isoleringstejp.
  • Nätverkskabel som kan tas bort för att ge 4 tvinnade par. Inte obligatoriskt att använda tvinnade par, men vridningen hjälper till att minska elektriskt buller.
  • Mikrokontroller - Jag använde en Arduino men alla kommer att göra
  • Motstånd - Jag använde 68k men det beror på storleken på din kondensator och hur exakt du vill att mätningen ska vara.

Verktyg:

  • Lödkolv.
  • Prototypkort för montering av mikrokontroller/Arduino.
  • Värmepistol för värmekrymp. En cigarettändare kan också användas med något sämre resultat.
  • Infraröd termometer eller termoelement, för att kalibrera sensorerna.
  • Pincett.

Steg 3: Löd dina kondensatorer

Löd dina kondensatorer
Löd dina kondensatorer
Löd dina kondensatorer
Löd dina kondensatorer
Löd dina kondensatorer
Löd dina kondensatorer

Ingen förklaring behövs här - bara att passa dem på dina brädor med din föredragna lödmetod och fäst de två trådarna.

Steg 4: Isolera sensorerna

Isolera sensorerna
Isolera sensorerna
Isolera sensorerna
Isolera sensorerna

Montera krymprör av lämplig storlek över sensorerna så att inga ändar utsätts och krympa det med varm luft.

Steg 5: Montera din motstånd och anslut sensorn

Montera ditt motstånd och anslut sensorn
Montera ditt motstånd och anslut sensorn
Montera ditt motstånd och anslut sensorn
Montera ditt motstånd och anslut sensorn
Montera ditt motstånd och anslut sensorn
Montera ditt motstånd och anslut sensorn

Jag valde följande pinout.

PIN3: Utmatning

PIN2: Inmatning

Steg 6: Skrivprogramvara

Skrivprogramvara
Skrivprogramvara

Den grundläggande mättekniken visas ovan. För att förklara hur det fungerar genom att använda kommandot millis () returnerar antalet millisekunder sedan Arduino startades. Om du tar en mätning i början och slutet av mätningen och subtraherar startvärdet från slutet får du tiden i millisekunder för kondensatorn att ladda.

Efter mätning är det mycket viktigt att du ställer in utgångsstiften för att tömma kondensatorn och väntar en lämplig tid innan du upprepar mätningen så att kondensatorn laddas ur helt. I mitt fall var en sekund tillräcklig.

Jag spydde sedan ut resultaten från serieporten så att jag kunde observera dem. Inledningsvis upptäckte jag att millisekunder inte var tillräckligt noggranna (ger bara ett enda siffervärde), så jag ändrade det för att använda kommandot micros () för att få resultatet i mikrosekunder, som du förväntade dig var cirka 1000 gånger det tidigare värdet. Omgivningsvärdet på cirka 5000 varierade betydligt, så för att göra det lättare att läsa delade jag med 10.

Steg 7: Utför kalibrering

Utför kalibrering
Utför kalibrering
Utför kalibrering
Utför kalibrering
Utför kalibrering
Utför kalibrering

Jag tog avläsningar vid 27,5 C (rumstemperatur - varmt här i Storbritannien!), Placerade sedan sensorbunten i kylen och lät dem svalna till cirka 10 C, kontrollerade med den infraröda termometern. Jag tog en andra uppsättning avläsningar, satte sedan in dem i ugnen på avfrostningsinställningen, övervakade kontinuerligt med termometer tills de var redo att spela in vid 50C.

Som du kan se från tomterna ovan var resultaten ganska linjära och konsekventa över alla fyra sensorerna.

Steg 8: Programvarorunda 2

Programvaruomgång 2
Programvaruomgång 2

Jag modifierade nu min programvara med hjälp av Arduino -kartfunktionen för att göra om de övre och nedre genomsnittliga avläsningarna från tomterna till 10C respektive 50C.

Allt fungerar som planerat, jag utförde några kontroller över temperaturintervallet.

Steg 9: Projektöversikt - Fördelar och nackdelar

Så där har du det, en temperatursensor för mindre än £ 0,01 i komponenter.

Så varför skulle du inte vilja göra detta i ditt projekt?

  • Kapacitansen varierar med matningsspänningen, så måste använda en reglerad matning (kan inte strömförsörja direkt från ett batteri) och om du bestämmer dig för att byta matning måste du kalibrera sensorerna igen.
  • Kapacitansen är inte det enda som ändras med temperaturen - tänk på att din höga ingångströskel på din mikrokontroller kan förändras med temperaturen, och det definieras vanligtvis inte i databladet med någon precision.
  • Även om mina 4 kondensatorer alla var ganska konsekventa, var de från samma sats och samma komponentrulle och jag har ärligt talat ingen aning om hur dålig batch-till-batch-variationen skulle vara.
  • Om du bara vill mäta låga temperaturer (under 10C) eller höga temperaturer (över 10C) är detta bara OK, men relativt värdelöst om du behöver mäta båda.
  • Mätningen går långsamt! Du måste ladda ur kondensatorn helt innan du kan mäta igen.

Jag hoppas att det här projektet har gett dig några idéer och kanske inspirerat dig att använda andra komponenter för andra ändamål än de var avsedda.

Rekommenderad: