Pic mäta kapacitans

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
TheUnreal
Inlägg: 115
Blev medlem: 4 september 2005, 16:04:57
Ort: Sundsvall
Kontakt:

Pic mäta kapacitans

Inlägg av TheUnreal »

Jag har ett litet projekt där jag vill mäta kapacitans, åt det lite lägre hållet pF området.
Jobbar med en pic12f629 då jag har 30-talet av dom över från tidigare projekt.

Använder komparatorn ställd på ca 0,63 VDD med kapacitans mellan VSS och komparatoringång.
Till annan utgång sitter just nu 1Mohm resistor och jag mäter med timer tiden det tar för kapacitansen att laddas upp till 0,63 VDD
Högre resistor ger ostabila värden.

Läste nu databladet att det rekommenderas max 10Kohm i signalen för analoga ingångar i pic.
Ser även att Arduindo verkar jobba mot den digitala omslagsnivån på vanlig ingång för sin kapacitansmätning, och där säger de sig kunna använda resistanser upp till 50Mohm.

Jag tänkte att det kunde vara positivt att justera omslagsnivån.
Vad tror ni, har jag valt fel väg med komparatorn?
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Pic mäta kapacitans

Inlägg av sodjan »

Jag är inte säker, men max resistansen har väl med AD omvandlaren att göra.
Komparatorn borde fixa betydligt högre resistans på ingången utan att ge fel.
Sen så har ju ingången en egen-kapacitans på ca 5 pF vilket kan störa beroende
på vad "det lite lägre pF området" betyder i praktiken.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Pic mäta kapacitans

Inlägg av Klas-Kenny »

Säger som Sodjan, komparativt borde inte vara något problem med hög resistans på ingången.

Med ADC som kör sample and hold kan det bli problem med för hög resistans då kondensatorn inne i sample-and-hold-kretsen inte hinner laddas upp under samplingstiden, vilket ger effekten att man får för låga mätvärden. Många gånger kan det till viss del lösas med längre samplingstid, annars kan det ibland (om man inte har extrema krav på noggrannhet) lösas med lite annan skalning av mätvärdet, så har jag gjort i en applikation, det fungerar bra.

Men som sagt, med en komparatoringång borde man inte ha det problemet.
TheUnreal
Inlägg: 115
Blev medlem: 4 september 2005, 16:04:57
Ort: Sundsvall
Kontakt:

Re: Pic mäta kapacitans

Inlägg av TheUnreal »

Om jag nu inte snubblar i matematiken så ligger jag runt 50pF.
50uS till 63% av VDD med 1 Mohm resistor.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45174
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Pic mäta kapacitans

Inlägg av TomasL »

Utan mätobjektet inkopplat?
Det är vad jag skulle gissa faktiskt med tanke på kapacitanser i kort, anslutningar osv.
TheUnreal
Inlägg: 115
Blev medlem: 4 september 2005, 16:04:57
Ort: Sundsvall
Kontakt:

Re: Pic mäta kapacitans

Inlägg av TheUnreal »

Testriggen består av pic12f629 på intern 4MHz klocka med 100nF avkopplingskondensator och laddresistor på labbkort med lödbanor.
På kortet sitter även 3 pin header för spänningsmatning 3,3 volt från Raspberry, samt seriekommunikation från pic till Raspberry.

50pF med avsett mätobjekt inkopplat via ca 5 mm kopparbana och ca 30 mm ledare från Cat6-kabel.

Med högre laddresistor än 1 Mohm ökar variansen i mätningarna, jag har utan att forska vidare i det avskrivit det som radiostörningar pga hög resistans.
Men blev osäker på detta när jag studerade hur arduino mäter kapacitans, i exempelvideo mäter man med fyra ledare från bandkabel och detekterar då om bandkabeln doppas i vatten eller ej.
Det sägs där att upp till 50 Mohm går att använda, men jag har bara testat upp till 6,8 Mohm med pic och mätning via komparatorn.
Dock erbjuder arduino biblioteket ackumulerat mätvärde från flera mätningar och det har jag inte provat i mina försök än då jag fortfarande utvärderar om det är genomförbart att mäta som jag tänkt.
Men är det brus så reducerar ju fler mätningar brusets påverkan med.
Det nämns dock att jordning är viktigt för att undvika störningar i arduino-dokumentationen, jag har inte undersökt om detta är en faktor som påverkat mina resultat.

Så jag är tänker mig nu att ta detta vidare genom att:
*Ta fram kod för mätning även mot digitala omslagsnivåer för att får jämförelsedata mot komparatorbaserad mätning
*Kontrollera om jordning av krets påverkar resultat, för båda kodversionerna.
*Kopiera den givare som används i för att mäta vatten med arduino och se om den fungerar med min pic-baserade kod.

En annan lösning som ger bättre mätdata är att öka klockfrekvens, men då måste jag kleta dit en kristall...

https://playground.arduino.cc/Main/CapacitiveSensor/
https://www.instructables.com/The-Simpl ... re-Sensor/
(kan ju iofs vara en sån där free energy film det där...)
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Pic mäta kapacitans

Inlägg av Icecap »

Du bör jämna ut mätningar för att det 50Hz som induceras inte ska störa.

Detta bör göras i programmet, ett antal mätningar över 20ms tidsrymd eller multipla därav.
Användarvisningsbild
ecenier
Inlägg: 1104
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: Pic mäta kapacitans

Inlägg av ecenier »

Förstår att du vill använda de chip du har, men det skulle vara väldigt mycket enklare att bara använda en pic med stöd för touch button.
Användarvisningsbild
swesysmgr
Inlägg: 14127
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Pic mäta kapacitans

Inlägg av swesysmgr »

Prova att konstantströmsladda kondensatorn istället som med dual slope mätning av spänning fast du räknar ut kondensatorn värde istället? Du vet strömmen i och får dv/dt genom att mäta tiden och den linjära sågtandens toppvärde med komparatorn?

Edit: ladda skulle det stå
TheUnreal
Inlägg: 115
Blev medlem: 4 september 2005, 16:04:57
Ort: Sundsvall
Kontakt:

Re: Pic mäta kapacitans

Inlägg av TheUnreal »

Tackar för engagemanget.

Konstantströmsmetoden är riktigt intressant, jag lägger den på minnet :)

Nu har man ju inte oceaner av tid sedan barnen kom, men jag har klämt in några tester.
Ordentlig jordning ger stabila mätvärden med 6M8 resistor, så jag behåller komparatorn (och glömmer batteridrift, inte för att det var aktuellt till att börja med...)

Mätvärdena är så stabila att jag tänker mig att det skulle räcka med fem mätningar och ta medianen.
Men jag orkar inte sortera så jag summerar nog åtta mätningar och skiftar in några nollor i MSB :)
Går vidare med projektet helt enkelt :)


Men jag kan ju passa på att hijacka min egen tråd :)
Tog fram ett gammalt mätprojekt jag byggt kring pic16f870 på det glada 00-talet, på den tiden drevs den av 5 volt och levererade data via UART.
Tänkte mig att koppla den direkt till en RPI och då driva den på 3.3 volt, men kristallen började inte oscillera på 3.3 volt dock gick den som den skulle på 5 volt.

Ärligt talat har jag bara använt kristall i 5 volt system, och sedan dess mest använt internoscillator.
4 MHz kristall och 30pF kondingar har nog varit min standardlösning sedan jag började med 16f84...
Jag tycker inte jag hittar någon bra förklaring i databladet på varför den går i 5 volt men ej i 3.3.
Vad säger er erfarenhet, är det kondingarna som bör vara åt 15-20pF hållet för att gå i 3.3 volt???

Edit: förtydligade att den gick på 5 volt.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: Pic mäta kapacitans

Inlägg av 4kTRB »

AN611 från Microchip har en del läsvärt om kapacitansmätning.
Skriv svar