rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik wil een touch sensor maken, door te kijken hoe lang het duurt voordat ik het omslagpunt bereik van het te testen signaal als ik die hoog of laagtrek via een 1M weerstand.
Ik doe het nu met de PIO module van de RP2040. Ik kijk in een loopje van 16ns of ie al om is en ZOja, verander ik de "trek" richting en gaan we kijken of ie de andere kant op gaat.
Eerst deed ik het in software en toen zorgde ik er voor dat de pin eerst echt 0 was voordat ik hem "naar 1" ging trekken. Nu maak ik gebruik van de hysterese van de pin en daarmee zou de boel minder afhankelijk van de voedingsspanning moeten zijn geworden.
Het werkt best aardig, maar er zijn nog een paar dingen die ik niet snap. Iemand anders een idee?
Hier is er niets aan de hand. Gewoon kaal "lege pin" (met de scoop aangesloten verandert de meting al behoorlijk, maar goed maakt niet uit). redelijk stabiele metingen. Helaas is de foto iets mislukt, mogelijk lukt het om straks een betere te uploaden. Iets betere ge-upload. Maar wat je op de foto niet direct ziet is dat er een mooi zaagtandje is halverwege de voedingsspanning als er gemeten wordt. Na de meting stopt ie met wiebelen en blijft de pull naar boven staan en na 2ms mogelijke meting maakt ie dit signaal OUTPUT en gaat ie door naar het volgende kanaal. Die zie je rechts in beeld.
Dan nu MET mijzelf contact met het signaal. Dan zou ik verwachten dat ie gewoon minder snel kan wiebelen, dat het X keer gemeten
Dan als ik hem aanraak, dan verwacht ik dat het e-macht ding verder naar rechts komt... Maar ik zie ook dat ie soms verder naar links gaat. En met m'n neus op de scoop kan ik dan zien dat ie inderdaad gewoon "sneller wiebelt", alsof er juist een LAGERE capaciteit aan die pin hangt. Het staat allemaal nogal te wiebelen, ik heb een stuk of vijf fotos gemaakt, dit is de beste:
Hier zitten de "rare" nog steeds verder naar rechts dan bij het NIET-aangeraakt geval, maar ze komen ook eerder: In de meting zie ik echt lagere waardes dan "in rust". (de foto waarbij je dat ziet is op andere punten "mislukt").
Weet iemand een verklaring hiervoor?
En dan nog 1.... Soms, doet ie dit:
Het lijkt er op alsof de hysterese ineens is "uigeschakeld". Ik verwacht geen bugs in m'n code die dit "af en toe" uitzetten. Verder heeft het met mechanische dingen te maken. Stoten tegen de tafel kan het veroorzaken of weer weg laten gaan.
Het gekke is: Als je dit op de scope ziet, is er niet een heel veel lagere waarde die gemeten wordt... Iemand een gok wat dat kan zijn?
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Raak je het vlakje met dat signaal echt aan, of een geïsoleerd vlakje (met tape of zo)?
Weet je zeker dat de capaciteit van de scope niet dominant is over de verandering van de capaciteit bij aanraken?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
De capaciteit van de scope is (in 1:10 stand) van dezelfde orde-van-grootte als "aanraken".
Ik doe in princiepe een calibratie en trek de nul-capaciteit er op die manier van af. Met op de print drie mogelijke touch-aansluitingen en dus drie "spoortjes" naar die aansluitingen lijkt het er op dat ik heel aardig de spoor-capaciteit kan meten. Er is een lengte verschil van 4 en 8 mm, en ik meet een 1:1.7 verschil in de meetresultaten tussen die kanalen. Ik denk dat ik echt een verschil van orde van grootte een halve pf aan het meten ben.
De tests nu doe ik met elektrisch aanraken van het signaal. Zonder dus een stuk isolatie er tussen. Op de hardware waar ik nu aan het ontwikkelen/meten ben, gaat er tzt WEL isolatie tussen komen.... 8mm perspex of zo. Maar dan zijn we op zoek naar "een hele voet" en niet naar "een vinger".
Op andere hardware gaat er echt aangeraakt worden. Ik ben (as we speak) de config aan het maken om die hardware ook geschikt te maken.
Bij "niet aanraken" zie ik ook al voldoende verschuiving om van een meting te spreken. Raak ik bijvoorbeend het groundplane aan waarbij het spoortje 1.6 mm verderop aan de andere kant van de print loopt, dan zie je iets verschuiving.
Bij de software-implementatie waren er kennelijk interrupts die er voor zorgden dat ie een paar microseconden niet doorhad dat de threshold al bereikt was. Die "bron van ruis" is nu weggenomen door het in "bijna hardware" te doen.
@lambiek, Effectief heb ik een oscillator gemaakt waarvan de frequentie verandert onder invloed van de touch. Zoiets doe jij ook (toch?). Ik meet (nu) niet de frequentie, maar de tijd van een aantal complete oscillaties. De "natuurlijke" manier om de frequentie te gaan meten betekent dat ik in software iedere 2ms de boel afbreek. Maar dan zit ik weer met variaties door interrupts en zo. Ik ben nog voorzichtig aan het nadenken of ik dat niet toch kan regelen. Mogelijk met een tweede PIO die "times-up" doet, maar dan moet ik leren hoe ik PIO modules met mekaar kan laten praten. Zou moeten kunnen.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Is een TTP223 niet handiger/betrouwbaarder?
Je hebt er al 200 voor 5 euro...
https://nl.aliexpress.com/item/1005006609259659.html
Op woensdag 3 april 2024 17:27:55 schreef rew:
@lambiek, Effectief heb ik een oscillator gemaakt waarvan de frequentie verandert onder invloed van de touch. Zoiets doe jij ook (toch?).
Ja ik doe precies het zelfde, bij mij werkt dat goed.
Heeft je scoop er geen invloed op? Probeer het eens zonder meting, wat gebeurt er dan.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Ik denk dat het echt aanraken van het contact niet handig is, je krijgt dan veel meer effecten dan alleen een andere capaciteit, je krijgt ook een lekstroom, en een groter risico op flinke ESD pulsen. Ik zou daar lekker een laagje karton overheen doen of zo, of een stuk FR4 gebruiken met de elektrode op een achterkant.
Heb je echt 8mm perspex nodig? Dat is best wel veel, als dat wat dunner kan is de capaciteitsverandering veel groter. Als je het nodig hebt voor de sterkte (ik begrijp dat dat je daar op moet kunnen staan), kun je ook een dunner stuk gebruiken, dan een metaalfolie of PCB, en dan weer iets om het mechanisch te ondersteunen.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
OK. Nog een suggestie. Ga ik ook proberen.
Maar dat neemt niet weg dat ik het niet SNAP. Hoe kan het dat als ik mijn lichaam elektrisch met het contactje verbind er ineens MINDER capaciteit op die pin zit. De oscillatie gaat echt veel sneller.
Als "mijn potentiaal" zeg 0V is (we zitten in "die periode" van de 50Hz dat mijn lichaam naar beneden getrokken wordt), en de contactweerstand is zeg 100k.... Dan krijgt die 1M weerstand de meetpin gewoon nooit meer boven de helft. Dit heb ik getest door te vergeten de pulldown van de RP2040 uit te zetten.
Hopelijk gaan de experimenten wat nieuwe datapunten opleveren.
Ik doorzie het ook niet helemaal, ik zou op opzet moeten gaan schetsen aan de hand van de beschrijving.
Maar allicht geeft een "line" trigger van de scope meer informatie over wat er synchroon aan de 50 Hz van het lichtnet gebeurd? Dat lijkt het meest relevant.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Zonder scope:
> touch show 4
touchshow: [0] (-195 6 41 125)x
> touch show 4
touchshow: [0] (-197 6 43 125)x
> touch show 4
touchshow: [0] (-197 8 42 124)x
> touch show 4
touchshow: [0] (-189 6 45 124)x
> touch show 4
touchshow: [0] (-175 9 45 125)x
De waardes zijn: Minimale observatie, gemiddelde, maximum en count.
Dan "hand in de buurt":
touchshow: [0] (-177 44 234 124)x
> touch show 4
touchshow: [0] (-179 100 332 124)x
> touch show 4
touchshow: [0] (-193 76 184 124)x
Meetbaar verschil zou ik zeggen...
en dan aanraken:
touchshow: [4] (-4979 16002 84543 100F)x
> touch show 4
touchshow: [4] (-7147 17983 86384 96F)x
> touch show 4
touchshow: [4] (-11170 16364 71643 99F)x
> touch show 4
touchshow: [4] (-12105 11726 84981 101F)x
> touch show 4
touchshow: [4] (-12414 17210 83218 95F)x
> touch show 4
touchshow: [4] (-13061 15508 77996 98F)x
De "F" op het eind geeft aan dat ie een timeout heeft gezien. Maar dus nog steeds gaan de meetwaardes bij aanraken dus duidelijk BEIDE kanten op: Zowel lager als hoger, met een gemiddelde wat hoger ligt. De "F" metingen worden in het geheel niet meegenomen in de berekening. Dus als er 98F staat dan zijn er 26 of 27 timeouts geweest en 98 metingen die succesvol zijn afgesloten.
Ik denk dat ik de timer op 1ms ga zetten en dat als ie nog niet klaar is, ik toesta dat dit 4x achter mekaar gebeurt voordat ik "timeout" ga roepen.
"Wat doet de probe?"
Ik heb een calibratie waarde van 87000, de probe voegt ongeveer 65000 toe. Als de probe ongeveer 1pF zou zijn,
AhhHhh! Als ik hem aanraak dan introduceer ik een 100kHz stoorsignaal, wat zo nu en dan meer dan de helft van de hysterese beslaat..... Dat verklaart dat ik ook zo nu en dan "minder dan de normale waarde" kan meten met een hogere capaciteit aan de pin.
[Bericht gewijzigd door rew op (12%)]
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Wat is de ground van je schakeling? Zit die aan de randaarde (via je scope bijvoorbeeld), of zweeft dat? Je hebt niet veel capacitieve koppeling nodig is en schakelende voeding (waardoor je zowel 50Hz als de schakelfrequentie van de voeding als common mode krijgt) om een dergelijke meting verstoren, denk ik.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Was ik ook al naar aan het kijken...
De schakelende voeding op de print loopt op het ogenblik (vrijwel onbelast) op 25us per pulsje: 40kHz.
Dat gaat omhoog naar 83kHz als ik de USB voeding uitzet. Hij hoort verder omhoog te gaan naar bijna 600kHz bij hogere belasting.
(Vin = 12, Iin = 38mA, Vout=5V. TPS563201, L=4.7uH. Ik meet op de BST pin, omdat ik daar het makkelijkste bij kan zonder kortsluiting te maken. )
En hier dan bij Iin=.83A, Iout richting de 2A:
Dan draait ie dus op ruim 500kHz. (en zo te zien in CC mode).
[Bericht gewijzigd door rew op (12%)]
Heb jij het ongeveer op deze manier gedaan?
Je moet zorgen dat je sensor-plaat nergens anders tegen aan komt. Bij mij ligt de sensor-plaat helemaal vrij zoals op het voorbeeld.
EDIT:
Ik heb nog even gekeken met de scoop, ik heb een 5Hz blokgolf op min uitgang, zodra ik de sensor aanraak is de blokgolf weg voor +/- 1 sec en dan schakel het relais in. Bij de volgende aanraking gebeurt het zelfde en schakelt het relais uit.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Je kunt ook vlakjes naast elkaar maken, of concentrische ringen, waarbij je de helft aan de ground maakt, dan ben je niet afhankelijk van ongedefinieerde paden door de buitenwereld voor de retourstroom.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik heb met zelfbouw tiptoetsen (MCU met touch) nooit echt een bevredigend resultaat gehad, nooit meer als ruim 2mm betrouwbaar door kunststof behuizing heen...
(de periodieke recalibratie ging ook vaak niet optimaal)
Daarom was ik overgestapt naar de TTPxxx chips, doen het tot ruim 5mm prima onder meeste omstandigheden.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
@lambiek: Voor dit project zit ik nog niet met definitieve "hardware". ALs het goed is wel de print, maar de sensor moet ik nog bouwen. En aangezien iemand anders dat zelf wil doen... heb ik geen haast om dat hier te gaan doen.
Ik heb een PCB van 20x20 cm gemaakt. Het idee was om met ijzerdraden een vierkant te gaan spannen. We weten nog niet of zet 50cm vierkant, 10cm of 15cm het beste werkt. Ik heb op ieder van die punten een touch-sensor-circuit aangesloten.
In de loop der tijd, ook met andere printen met deze software, ben ik er achter gekomen dat als ik de nu-niet-actieve meetpunten laat zweven, je een sterke capaciteit op 1 kanaal terugziet op het naburige kanaal. Vandaar dat ik ondertussen de niet-actieve-meting kanalen op output-zet.
Omdat de PIO module van de RP2040 wel een "JMP if pin=1" kan, maar niet "JMP if pin=0", moet de rustwaarde "1" zijn en niet "0". Maar dat maakt voor het hoogfrequent niet zo veel uit.
Effectief maakt dat dus in mijn huidige print die 5 en 15cm ring dan tot GND terwijl we de 10cm ring aan het meten zijn. (mijn eerste reactie was: verrek, dat zou beter zijn, maar kan ik niet makkelijk maken... totdat ik me realiseerde: Eigenlijk DOE ik het gewoon al wel
)
De elektrische setup is:
De inverter doe ik dus in "software". Tot voor kort gewoon in C, maar sindskort dus in een PIO programmatje. Die draait op 125Mhz, maar heeft 2 clocks nodig om een teller te verhogen en de pin te checken. Beide pins zijn dus GPIO pins, en de inverter "output" is shared tussen de verschillende touch kanalen.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Met ringen van ijzerdraad heb je relatief weinig oppervlak, vergeleken met folie, en de tussenafstand is zo groot dat je waarschijnlijk alsnog vooral capaciteit ten opzichte van de wijde omgeving aan het meten bent.
Volgens mij is het idee vaak dat je een condensator maakt met 2 platen naast elkaar, en dat je vinger in het veld komt boven die 2 platen, en daar de dielectrische constante verandert.
Er zijn verschillende methodes om te meten, en ik zou niet durven zeggen welke methode in welke situatie beter is.
Had je deze al gevonden? https://onlinedocs.microchip.com/pr/GUID-A8A0085D-58D1-4E41-A07D-B93BF…
[Bericht gewijzigd door SparkyGSX op (24%)]
Op donderdag 4 april 2024 18:26:00 schreef SparkyGSX:
Volgens mij is het idee vaak dat je een condensator maakt met 2 platen naast elkaar, en dat je vinger in het veld komt boven die 2 platen, en daar de dielectrische constante verandert.
Ik gebruik gewoon één plaat, (kan zelfs met een RVS slotbout) en dat in combinatie met een paar weerstanden en een condensator.
Zie plaatje een paar posten terug.