Buigsensor 22 - 29 kOhm omzetten naar 0 - 5 Volt voor Arduino

Hallo,

Ik wil de buiging van een sensor omzetten naar waarden 0 - 5 Volt zodat deze ingelezen kunnen worden met een analoge input van arduino. De buigsensor heeft waarden van 22 kOhm (sensor recht) tot 29 kOhm (sensor maximaal gebogen). Dus bijvoorbeeld 0 Volt komt overeen met 22 kOhm en 5 Volt met 30 kOhm.

Hoe kan ik dit op een eenvoudige manier realiseren?

Groet Kees

Voor de context;

  • De sensor zweeft elektrisch?
  • Welke voedingsspanning (-en) zijn er beschikbaar?
  • Om welke Arduino gaat het?
  • Zou een andere referentie dan (vermoedelijk) de 5V voeding denkbaar zijn?
  • Is werkelijk de volle (10 bit? ) resolutie nodig, of zou minder mogelijk ook volstaan?

Het is gemakkelijk iets te suggereren met een mooie rail-to-rail opamp, maar allicht kan het veel simpeler.

Hoi Aart bedankt voor je antwoord, zou je deze nog willen kopieren naar Forum Digitaal, daar staat dezelfde tekst vanmij omdat mijninziens dat de beste plek is. Daar zal ik de amtwoorden dan ook neerzetten

benleentje

Golden Member

MAkkelijkste is om een 22k ohm 1% in serie te zetten. Dus 5V > 22k 1% > buigsensor > gnd.
Met de Arduino meet je dan direct de spanning over de buigsensor.

Dan in software zoiets als

c code:


float Vsensor = 0.0;
float Vresistor = 0.0;
float resitance = 0.0;
float Vcc = 5.06;   // Geeft het beste resultaat als je eerst de 5V na meet, hier dus gemten als 5,06V 
float R = 22004.5 ;// hier ook de gemeten nauwkeurige waarde


Vsensor = analogRead(sensorInputPin);    /Acquisition analog value of sensor voltage
Vsensor = (VCC / 1023.00) * Vntc;        //Conversion to voltage
Vresistor = VCC - Vsensor;
resitance = Vsensor / (Vresistor / R);               //Resistance of buigsensor

.

De simpele methode heeft wel een nadeel je gebruik maar een heel klein deel van de analoge ingang bereik hier zal de spanning maximaal variëren tussen 2,5V en 2,8V. Met een stroombron of een opamp schakeling kan je een veel groter bereik van je analoge ingang gebruiken.

Ikzou eerst dit eens proberen vallen de resultaten tegen de het te kleine bereik dan hier weer verder vragen.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Hij stond correct. Als er iets verplaatst moet worden doen Moderators dat vanzelf, ik gebruik de forumsecties zelf in het geheel niet en laat mij niet in met discussie daarover.

benleentje, bedankt en ok ik denk dat ik begrijp (ben geen electronicus). Ik ga in ieder geval hiermee aan de slag.

PS.
Enkele vragen beantwoorden
Betreft Ardino uno, heeft 5 en 3.3 Volt
Volgens mij is de volle 10 bit niet nodig, maar dat moet nog blijken bij het testen.

Groet Kees

Dit soort sensoren zijn vaak brug sensors en niet zomaar een weerstand.
Zo'n brug sensor meet je op een andere manier.
(Via een differentiele opamp etc. naar een net analoog signaal).

Wat voor "ding" heb je precies, type / merk / datasheet?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Data

Een eenvoudige flexibele sensor van 2,2 inch lang. Naarmate de sensor wordt gebogen, neemt de weerstand over de sensor toe. Gepatenteerde technologie van Spectra Symbol - ze beweren dat deze sensoren werden gebruikt in de originele Nintendo Power Glove.

De weerstand van de flexsensor verandert als de metalen kussentjes zich aan de buitenkant van de bocht bevinden (tekst aan de binnenkant van de bocht).

Connector heeft een tussenafstand van 0,1 "en is geschikt voor broodplankjes. Raadpleeg het datasheet voor de volledige specificaties.

Zie bijlage

benleentje

Golden Member

Op 24 december 2022 18:38:28 schreef KEESNED:

Betreft Ardino uno, heeft 5 en 3.3 Volt
Volgens mij is de volle 10 bit niet nodig, maar dat moet nog blijken bij het testen.

Groet Kees

Senxor op 5V. Op 3,3V hou je nog minder van je ADC bereik over.

De ADC is inderdaad 10 bit echter is dat over zijn volle bereik van 0 - 5V
10 bit is 1023 verschillende waardes (stapjes) en voor 5V geeft dat
5V / 1023 = 4,9mV per stap

Nu ga je maar 2,5 - 2,8V gebruiken.
2,8 - 2.5 = 0,3V = 300mV
300mV / 4,9mV = 61,2

Dus van je totale ADC bereik van 1023 stapjes ga je er nu meet deze simpele meet methode 62 stapjes gebruiken.
1023 / >> 62 = je gebruikt maar 6% van je totale bereik

Of anders gezegd van je 29 - 22k ohm >> 7k ohm / 62 stapjes = ca113 ohm per stap kan je aan verschil meten.

Dus met andere woorden zijn die 62 verschillende meet stapjes genoeg?

Ja? dan prima houden zo.

Nee? Dan zijn er veel opties mogelijk

Vervang mijn 22k ohm 1% weerstand voor een stroombron. Dan ga je 25% van je ADC gebruiken
Ga via een opamp schakeling het aanpassen. Je gaat dan naar bijna 100% van je bereik
Gebruik een externe ADC zoals een ADS1115. Dat is een 16 bit ADC maar in werkelijkheid een 15 bit ADC. Door van deze ADC 2 kanalen te combineren(differential) kan je zo ook bijna 100% van je ADC bereik gebruiken. Je hebt dan maar 1 extra weerstand nodig.

De laatste zou mijn voorkeur hebben minder soldeer werk en een hele hoge 15 bit precisie.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Brug van Wheatstone, rekstrookjes, veel gebruikt in weegbruggen...

Google weet meer dan ik.

benleentje

Golden Member

Metde brug van wheastone alleen kom je er ook niet. Je hebt dan nog steeds dat je ADC van de Arduino maar een heel erg klein bereik ziet. JE hebt dan ook nog steeds een externe ADC nodig met differentiele ingangen zoals een ADC1115 of een HX711

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Geen brug dus.

Het datasheet zegt dat het ding 10k in rechte toestand is. Dat klopt niet met wat je aan het begin zegt. Ander datasheet?

Verder is de toleratie +/- 30% dat is nogal wat. Kortom je zelt het eea moeten gaan calibreren voor gebruik. Kan met allerlei 10 slagen potmetertjes etc.

Dan nog de vraag, hoe temperatuur gevoelig is dat ding? Staat niks over in het datasheet. Dat zou ook wel eens tegen kunnen vallen.

Kortom wat is je uiteindelijke doel precies en welke nauwkeurigheid wil je bereiken?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Benleentej,

Voorlopig ga ik er vanuit dat 62 stapjes voldoende moet zijn, maar mocht dat niet zo zijn hoe sluit ik de sensor en andere componenten (weerstanden) dan aan op een opamp?

Het betreft in ieder geval niet een nauwkeurige meting dat is niet nodig. De buigingsensor wil ik gebruiken om de ademhaling bij te monitoren, het gaat dus meer om het verloop(grafisch), dan om de werkelijke waarde.

10K zegt de datasheet, ik meet 22 kOhm, wellicht moet ik mijn andere multimeter NIEAF gebruiken ipv de goedkope chinees. Maar meten is weten.

Lambiek

Special Member

Je ontkomt eigenlijk niet aan een opamp. Stel dat je de sensor via een weerstanddeler aansluit op 5V, dan krijg je 2.5V op de uitgang van je sensor. Als je dat signaal 2 X versterkt kom je op 5V uit.

Je kunt ook een kleiner signaal op de opamp zetten en meer versterken. Dus een andere weerstanddeler gebruiken bij je sensor.

Voor de opamp moet je een rail to rail type nemen.

Je zal een proefopstelling moeten maken om de juiste waarde uit te zoeken. En in de software kun je ook nog het één en ander doen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ik kon het niet laten;

De opamp vooral gekozen omdat -ie rail to rail en in DIL beschikbaar is. De R van 25,5 kΩ stelt het midden van het bereik in, die van 154 kΩ een gain van 14.

vergeten

Golden Member

Op 24 december 2022 17:43:55 schreef KEESNED:
Hoi Aart bedankt voor je antwoord, zou je deze nog willen kopieren naar Forum Digitaal, daar staat dezelfde tekst vanmij omdat mijninziens dat de beste plek is. Daar zal ik de amtwoorden dan ook neerzetten

In 2 verschillende forums hetzelfde topic openen is een dubbeltopic en dat is zowie zo "not done" op Circuits online.
Lees svp de FAQ (dubbeltopic)
Je zou een moderator kunnen vragen er 1 topic van te maken en die te plaatsen in het best passende forum.

Doorgaans schrijf ik duidelijk wat ik bedoel, toch wordt het wel anders begrepen.
Lambiek

Special Member

Op 25 december 2022 11:30:48 schreef Aart:
stelt het midden van het bereik in, die van 154 kΩ een gain van 14.

De versterking is hier toch 8 X en geen 14 X?

Als je haar maar goed zit, GROETEN LAMBIEK.

Neu, 15x eigenlijk, zie ik nu. Mijn fouten worden als oefening aan de lezer gelaten. ;)

Leuk ding die sensor. Zelf ooit zoiets geprobeerd te maken met een soort elektrisch geleidende sponsmateriaal. Als je dat samendrukt wordt de weerstand lager. Op die manier wilde ik laten voelen hoeveel druk er op een pootje kwam te staan. Helaas lukte dat niet helemaal.

Met deze sensor zou je zoiets wel kunnen maken. Maar dit was er dertig jaar geleden nog niet. Toen had je eigenlijk alleen het rekstrookjes idee. En die waren veel te groot om in een pootje te kunnen integreren.

In de datasheet staat overigens keurig netjes beschreven hoe je de sensor moet interfacen.

Aart heeft zo te zien al een leuke oplossing bedacht door de sensor in een brug te plaatsen. Het is handiger om de volledige resolutie van de ad converter te gebruiken en later in de software pas bits weg te laten. Software kun je altijd aanpassen. Hardware is altijd lastiger.

Getest met 22kOhm dat werkt, maar zoals bekend niet nauwkeurig. Ik heb voor het gemak, d.i. minimaal solderen, een ADS1115 besteld. Dat lijkt me voor mij als geen electronicus het makkelijkst.

Bedankt alvast voor het meedenken.

Groet Kees

Begrijpelijk, zo gaat dat anno 2022.

Ik voel daar dingen bij, maar aan de andere kant werk ik zelf ook in Arduino met zo veel mogelijk libraries, en schrijf dus niet "zoals het hoort" alles vanaf nul zelf in assembly.
Dat is niet zo veel anders als de keuze voor een superdeluxe adc waar een opamp mogelijk zou volstaan.

Maak de constructie wel zo dat de referentiespanning (5V voedingsspanning? ) zo veel mogelijk onderdrukt wordt, anders wordt de stabiliteit daarvan mogelijk snel de volgende beperking.
Dus meet (halve-) brug voeding en het signaal kort na elkaar.

[edit]
Want bij de eerdere constructie waren deze vanzelf gekoppeld, de luxe adc heeft als ik snel kijk een aparte ref.

Getest met 22kOhm dat werkt, maar zoals bekend niet nauwkeurig. Ik heb voor het gemak, d.i. minimaal solderen, een ADS1115 besteld. Dat lijkt me voor mij als geen electronicus het makkelijkst.

Weet je dat zeker? Wat heb je dan precies besteld?

Dit is de ADS1115 in smd uitvoering:

En dit is de ADS1115 in flatpack uitvoering:

Beide ic's passen tussen je vingernagel en zijn erg lastig te solderen.

Ik hoop dat je zo'n compleet printje van ome ali besteld hebt.

Maar dan nog is het niet heel handig. De arduino heeft ook standaard een AD converter die prima bruikbaar is. En bij beide AD converters zul je een meetvertsterkertje zoals dat van Aart moeten gaan maken. Wat dat betreft maakt het dus eigenlijk niet uit.

Hopelijk heb je zo'n dingetje bij ali besteld en is dat al uitgevoerd met een meetvertsterkertje. Dan is het wel een goed idee.

Zie bijlage. Ik probeer zo weinig als mogelijk libraries te gebruiken, alleen is mijn doel niet ADC, maar het vervolg.

Is niet van Ali duurt te lang deze is van de bolle 8 euro incl verzenden.

Op 25 december 2022 14:57:20 schreef Aart:

Maak de constructie wel zo dat de referentiespanning (5V voedingsspanning? ) zo veel mogelijk onderdrukt wordt, anders wordt de stabiliteit daarvan mogelijk snel de volgende beperking.
Dus meet (halve-) brug voeding en het signaal kort na elkaar.

Als de referentiespanning van de adc hetzelfde is als de voedingsspanning van de brug,
hoef je dat niet te doen. De afwijkingen heffen elkaar op.