Ik wil een onbekende weerstand meten in een biologische setting.

Plan is om drie pins van m'n CPU daarvoor te gebruiken. Laat ik die A-B-C noemen.

Ik monteer een condensator tussen A en B. De onbekende weerstand tussen B en C. Nu doorga ik de volgende fases:

1: A hoog, B Laag, C input.
2: A hoog, B input laag, C hoog.
3: A hoog, B input hoog, C hoog.
4: A laag, B hoog, C input.
5: A laag, B input hoog, C laag.
6: A laag, B input laag, C laag.

In fase 2 en 5 tel ik hoe lang het duurt voordat de input de andere waarde krijgt. In fase 3 en 6 ga ik denk ik B zo snel mogelijk output maken om zo min mogelijk lading door de biologische B-C weerstand te laten lopen.

Als ik ongeveer 100k verwacht kan ik een 10nF condensator nemen, zodat de RC tijd en daarmee de meetperiode ongeveer 1ms wordt. Als m'n teller op 48MHz draait, meet ik dan ongeveer 48000 cycles, een resolutie van rond de 15-16 bits, het zou mogelijk moeten zijn om een verandering van een paar ohm te meten.

(Omdat als de te meten weerstand > 160k wordt je over de 16 bits counter-waarde heengaat, zal het makkelijk zijn om een 32-bits timer te nemen).

Hmm. Ik meet zo steeds de ontlading van de condensator die ik de ene keer met een positieve en de andere keer met een negatieve lading heb opgeladen. Ik kan natuurlijk ontlading, oplading meten, door pin A gewoon de hele tijd laag te laten. En dan heb ik pin A helemaal niet meer nodig: Gewoon aan de GND hangen.

Commentaar? Dom plan? Slim?

Als ik deze meting ongeveer 100x per seconde herhaal denk ik dat ik redelijk ga kunnen meten wat ik wil meten. Zou dat schadelijk zijn: 16nC door een electrode door het lichaam? Hmm, 100x per seconde, dan is het 1.6 microampere (AC!) gemiddeld. Moet je tegen kunnen, toch?

De microcontroller heeft ook "touch" hardware. Dan is de truuk om een kleine condensator steeds op te laden en de lading in een grotere (vaste) condensator te dumpen. Dan wordt gekeken hoe vaak je dat moet doen om de grotere condensator boven de 0-1 threshold te krijgen. Hiermee meet je effectief de verhouding tussen de onbekende en de bekende condensator. Zou dit nog anders geconfigureerd kunnen worden om hier een weerstand te meten?

Mijn target-processor is de STM32F072. Datasheet: https://www.st.com/resource/en/datasheet/stm32f072c8.pdf (hoeveel peripherals, pin bezetting enz.)
Reference manual: https://www.st.com/content/ccc/resource/technical/document/reference_m… (handleiding van de timers in hoofdstukken 17-21, TIM2 de 32bit counter in H18. Touch in H16. )

Hmm. Ik gebruik chibios en die gebruikt intern TIM2 al, dus ik heb helaas voorlopig geen 32-bit timer. :-(

Feitelijk gebruik je Vcc als referentie. En daar zit altijd wat rimpel op dus dat heeft invloed op de nauwkeurigheid. Maar misschien middelt dat wel uit op 100 metingen.

En je bent ook afhankelijk van de 0/1 overgang. Die varieert per chip en met temperatuur. En die ligt ook niet exact op 50% Vcc waarschijnlijk. Dus de beide metingen geven niet dezelfde counterwaarde.

Dus die 16 bit resolutie ga je volgens mij niet halen al zul je toch wel een indikatie krijgen. Een 10 bit resultaat s volgens mij al heel wat met deze methode.

Op 26 juli 2018 01:21:09 schreef deKees:
En je bent ook afhankelijk van de 0/1 overgang. Die varieert per chip en met temperatuur. En die ligt ook niet exact op 50% Vcc waarschijnlijk. Dus de beide metingen geven niet dezelfde counterwaarde.

Ja, je telt de even en oneven metingen bij mekaar op om 50 metingen per seconde te krijgen. (*)

Net als met een touch capaciteits-meting, kan het je geen zak schelen of je een 20% andere meting hebt een dag of een half uur later. OOk maakt het geen zak uit als een andere chip een andere waarde zou geven. Als een verschil-van-een-paar maar corelleert met de te meten grootheid.

(*) En dan kan je de even bij de volgende oneven optellen of andersom om toch weer 100 metingen te krijgen als je wilt....

Waarom moet dat zo ingewikkeld? Je kunt tussen A en B toch een bekende weerstand zetten en met de AD de boel uitlezen?

je wilt eigenlijk geen DC stromen door mensen sturen. Dat kan natuurlijk nog steeds door ipv de weerstandsdeler aan VCC/GND aan te sluiten twee pinnen te nemen en die periodiek van polariteit te laten wisselen.

Ipv met een timer heb ik nu gewoon snel even een loopje die de pin uitleest. Ik heb laden/ontladen los gemeten en zie inderdaad een forse asymmetrie.

De hoge waarde is een test-weerstand van 150k, de lagere waardes is als ik hem met m'n vingers aanraak.

Ik schat dat m'n cpu zo'n 6 cylces over een lusje doet (aannemende dat beide branches 1 cycle zijn, maar als het er twee zijn worden het er 8).

Ik heb duidelijk meer ruis dan ik had gehoopt.

Ga je op de medische toer rew :)

Op 26 juli 2018 03:22:47 schreef rew:
je wilt eigenlijk geen DC stromen door mensen sturen.

Dat ligt er helemaal aan hoe groot die stromen zijn.

Dat kan natuurlijk nog steeds door ipv de weerstandsdeler aan VCC/GND aan te sluiten twee pinnen te nemen en die periodiek van polariteit te laten wisselen.

Dat zou je inderdaad kunnen proberen.

Hi rew,

Leuk!
Kan de onzekerheid misschien komen door brom en/of jitter op het stuur signaal?

Groet,
Bram

Toch geen Scientology meter hoop ik :-)

3 of 5V en een paar uA DC lijkt me niet echt gevaarlijk. Ik denk niet dat er ooit iemand is overleden nadat hij de probe punten van zijn DMM vastpakte (bij weerstand meten voor de lolbroeken ;-) )

Je kunt ook een AC meting doen, (zoals een LCR meter doet). Die kunnen dat vectoriaal om alleen het ohmse deel te meten maar ik vermoed dat impedantie voor jou doel ook werkt. Zoals al de "ESR" meters die impedantie op 100 kHz meten ipv de echte ESR soort ESR meter. Je hoeft alleen het meetbereik maar te vergroten. Qua meting zelf meet je dan de stroom.

maar je kunt ook een ratio meting doen ipv al dat gewissel. Je stuurt de stroom door beide weerstanden tegelijk mbv een spanning bron. Je meet de spanning over de referentie weerstand, Als je bv 1V over een 100k referentie weerstand meet en je totale meetspanning is 4V is dan valt er 3V over de bioweerstand. Dus 3x zo hoog. De bioweerstand is dus ook 3x zo hoog. Ik zou er wel een opamp tussen hangen om een hoge Ri te krijgen want volgens mij zijn adc's in processors niet echt hoogohmig

Met zoiets hoogohmigs is het natuurlijk niet alleen ruis wat je ziet...
Je lichaam functioneert ook als ontvangstantenne voor alle aanwezige signalen. (50Hz brom, allerlei draadloze signalen,...)

Een 260 heeft een 9V batterij en een 1,5V D-cell. 9V doet 75uA max, de 1,5V doet 1,25mA of 125mA. Ze hebben het in jou link over de 9V batterij. Moderne DMM's doen volgens mij hooguit 1 mA en iets van 3 V

De reactie daaronder maakt het nog bonter met 100 mA en 9V batterij. Broodje aap

[Bericht gewijzigd door fred101 op (17%)]

Ha fred101,

Daarom moet je altijd een TVSje bij je hebben ;)

Groet Henk.

Ik ben van mening: Een negenvolt batterij heeft niet genoeg power om een mens zomaar omzeep te helpen. Om dat met een meting te ondersteunen heb ik met m'n multimeter in "ampere" stand de kortsluitstroom gemeten. (Ik heb goedkope tien-voor-een-tientje 9V batterijen van Farnell). De eerste die binnen een factor tien gokt krijgt een pluim.

8 tot 10mA? :) :)

Ik denk 4.5A.

Ha rew,

Voorop gesteld ik kan die batterijen niet qua kwaliteit en rekening houdend met de snelheid van de meter denk ik een Ampère of 4 :o .

Groet Henk.

@rew: ik meen te herinneren dat ze iets van 3A is voor korte tijd, maar zink-kool batterijen kunnen minder stroom leveren dan alkaline, dacht ik.

Lage spanning is wel degelijk dodelijk, hoor... :)
Gisteren werd er bij CSI nog iemand doodgemarteld met een autoaccu en starterkabels...
Onderzoeker beweerde ook nog dat er zeker 10A stroom door het slachtoffer was gelopen... (zeker Tony Stark geweest... :) )

I guess he was a good conductor
https://media2.fdncms.com/arktimes/imager/u/mobilestory/13944929/ae_feature1-1-c8882eef460b920e.jpg

Maar goed, er zijn meer factoren die meespelen dan of de stroom direct schadelijk is; met DC kunnen er ook electrolyse effecten optreden, op de overgang van de elektrode naar de huid, of wellicht binnen het lichaam, die je liever wilt vermijden.

Ik zou niet alleen met AC meten (of met DC pulsen met wisselende polariteit; AC impliceert voor sommige mensen een sinus), ik zou ook zo kort mogelijk meten, met tussenpozen, en tegelijk de stroom zo klein mogelijk houden.

@REW: wat gebeurd er als je steeds het gemiddelde neemt over 20ms? Het zou natuurlijk ideaal zijn als je zou kunnen synchroniseren met het net, maar een koppeling (ook via een transformator of optocoupler) is wellicht ongewenst; je kunt proberen het via een antenne zelf op te pikken, en de nuldoorgangen te detecteren zodat je gesynchroniseerd kunt meten.

Lage spanning is wel degelijk dodelijk, hoor... :)
Gisteren werd er bij CSI nog iemand doodgemarteld met een autoaccu

Ik geloof best dat een autoaccu naar je hoofd slingeren dodelijk kan zijn. :).
Of een 1,5V AAA in een geweer afvuren zal ook wel dodelijk zijn.

Op 27 juli 2018 17:24:28 schreef electron920:
denk ik een Ampère of 4 :o .

Jij gaat door voor de koelkast! Mijn moderne auto-scale ding gaf 5A aan. Later nog even: zou ie misschien 5mA bedoeld hebben? Dus de ouderwetse meter gepakt. Die gaf 4A aan, hoogstwaarschijnlijk voornamelijk doordat ik daar wat mindere kwaliteit snoeren aan heb zitten.

Het is een alkaline batterij, inderdaad. Maar dus ECHT een factor 100 meer dan (ik had) verwacht....

Op 27 juli 2018 19:17:26 schreef SparkyGSX:
@REW: wat gebeurd er als je steeds het gemiddelde neemt over 20ms? Het zou natuurlijk ideaal zijn als je zou kunnen synchroniseren met het net, maar een koppeling (ook via een transformator of optocoupler) is wellicht ongewenst;

Ja... maar dat synchroniseren is niet nodig. Neem je een meting van 20ms, dan is dat voldoende nauwkeurig 1 hele periode dat de interferentie met de werkelijke netfrequentie ver buiten de meet-waarde-bandbreedte komt te liggen. Onder de 0.05 Hz ben ik niet geinteresseerd.

Maar mijn meet-truuk, daar kan je de tijd niet van instellen.

Je kunt natuurlijk de totale tijd van je meting vastzetten door ook na het detecteren van de overgang door te tellen tot de maximale waarde (2^16 of minder als je wilt), zodat de hele cyclus een vaste lengte heeft. Als je die lengte dan zo kiest dat hij precies een heel aantal leren in die 20ms past ben je er toch?

Als je niet synchroniseert met het net kun je alsnog een beat frequentie zien in je metingen, door een kleine afwijking in de frequenties, maar omdat je beide helften van de sinus pakt valt het grootste deel daarvan waarschijnlijk wel weg.

Even voor de duidelijkheid, met 100 mA en 9V bedoelde ik dat een Simpson 260 geen 100 mA kan leveren in het weerstand bereik waar de 9V weerstand wordt gebruikt. Hij levert daar max 75 uA.

Mbt AC ivm electrolyse etc, alleen wisselen tussen 0V en 5V hoe kort dan ook is nog steeds DC. Voor AC moet je de polariteit omdraaien dus beide aansluitingen steeds omwisselen (zoals SparyGSX al schrijft) Je zou dat kunnen doen op de zelfde manier als een lcd driver dat doet.

Natuurlijk kan dat wel, zoals rew het beschrijft is geen van de elektrodes verbonden met de ground van de schakeling, beide electrodes zitten aan een I/O pin van de microcontroller, en dan kun je natuurlijk wel de polariteit wisselen; je hebt immers een volledige H-brug beschikbaar.

Als je echt geen DC wilt, moet je er natuurlijk wel voor zorgen dat de pulsen in beide richten even lang zijn, en de spanningen gelijk.

En is dus schijnbaar wel echt iemand overleden aan de meetstroom van een multimeter, al vind ik het ook nog steeds onwaarschijnlijk klinken. Als je de meetpennen van een megger door je vingers steekt lukt het misschien, maar ook daarbij zou de stroom beperkt moeten zijn.

[Bericht gewijzigd door SparkyGSX op (25%)]

Je zou eens een paar druppels bloed moeten meten en kijken wat daar de weerstand van is, het lichaamsvocht bevat wel zouten natuurlijk. Maar of dat veel met de geleiding doet als je door je huid prikt van beide handen, ik weet het niet. Ik vind het ook twijfelachtig, maar onder bepaalde omstandigheden is het misschien mogelijk.

Op 27 juli 2018 16:10:37 schreef rew:
Om dat met een meting te ondersteunen heb ik met m'n multimeter in "ampere" stand de kortsluitstroom gemeten.

Ik heb de meting ook eens gedaan. Bij het starten van de meting was de stroom 3.89A en bij het stoppen van de meting was de stroom 2.546A. De tijd waar binnen de stroom gemeten is, is 203.4-ms. De batterij levert voor +/- 5-ms 3.89A en zakt daarna in.

De batterij is van het type Industrial duracel 6LP3146 - 9V.

TEST - TYPE BATTERIJ INDUSTRIAL DURACEL 6LP3146 - 9V.docx