Arduino en FSR druksensor

Datum:  Januari 2014

Inleiding:

De gedachte achter dit experiment was om te kijken of we m.b.v. een druksensor een balans kunnen bouwen.

Principe:

Een druksensor gebruiken om een gewicht te bepalen.

Materiaal:

  • Arduino Uno
  • PC met Arduino software geïnstalleerd en benodigde USB kabel
  • Druksensor type FSR
  • Weerstand 10 KOhm (2x)
  • Rode LED
  • Druksensor
  • Breadboard
  • Jumper draden
  • Set gewichten

Uitvoering:

  • Bouw de schakeling op zoals in onderstaande schema is weergegeven.
  • Verbind de Arduino met de computer via de USB kabel.
  • Open de Arduino software, en laad de sketch in de Arduino
  • Open een seriële poort window zodat men de gemeten waardes kan zien.
  • Plaats gewichten van verschillende massa op de druksensor en evalueer
Sketch code
//* FSR test sketch.
Een contact van de FSR is verbonden met 5V. Het andere contact
is verbonden met de analoge pin 0 en via een 10 Kohm weerstand
met de min (Gnd).Led verbonden met pin 11
Voor meer informatie www.ladyada.net/learn/sensors/fsr.html
*/
int fsrAnalogePin = 0; // FSR is verbonden met analoog 0
int LEDpin = 11; // De LED is verbonden met pin 11 (pmw pin)
int fsrWaarde; // De analoge waarde van de fsr spanningdeler
int LEDhelderheid; // De helderheid van de led tussen 0 en 255

void setup()
{
Serial.begin(9600); // start de serial monitor
pinMode(LEDpin, OUTPUT);
}
void loop()
{
fsrWaarde = analogRead(fsrAnalogePin);
Serial.print("Analoge waarde = "); // print 'Analoge waarde'
Serial.println(fsrWaarde); // print de fsrwaarde op de monitor

// maak van getallen tussen 0 en 1023 getallen tussen 0 en 255
LEDhelderheid = map(fsrWaarde, 0, 1023, 0, 255);
analogWrite(LEDpin, LEDhelderheid);
delay(100);
}

Resultaten:

De opstelling werkt precies zoals in de instructies die ik op het web gevonden heb (Interactief Ontwerpen) vermeld staat zoals in onderstaande screenshot te zien is. Het probleem is echter dat men alleen waardes kan meten als men met zijn duim op de druksensor drukt. Als men een gewicht op de druksensor zet blijft deze een 0-waarde aangeven.

Discussie:

Wederom een experimentje dat niet het resultaat gaf waar ik op hoopte. Ik ben nog steeds een beetje gecharmeerd over het oorspronkelijke idee, zet wat bekende gewichten op de druksensor en noteer de gemeten waardes. Bereken een regressielijn, en programmeer deze in het sketch programma. Geeft het gewicht dat men met de druksensor meet dan weer op een LCD scherm.
De reden dat ik dacht dat dit zou werken was omdat deze druksensoren een resolutie van ca. 10 g hebben, en dat ik een gewichtenset had die met deze range overweg kon. Zoals vermeld was het probleem echter dat er alleen maar een waarde gemeten werd als ik met mijn duim op de druksensor drukte, niet als ik er een gewicht op zette.  
De druksensor die we in dit experiment gebruikt hebben is een Force Sensitive Resistor (FSR), waarbij ij de weerstand afhankelijk is van de kracht de op het materiaal wordt uitgeoefend. De verandering van de weerstand als gevolg van een kracht is echter niet lineair.
De FSR is opgebouwd uit een geleidende polymeer. De detectiefilm bevat sub-micro deeltjes die of geleidend of niet geleiden zijn. Door druk uit te oefenen op het oppervlak van de sensorfilm worden deeltjes in de geleidende elektrode gedrukt waardoor de weerstand van de film veranderd.
Men zou dus verwachten dat het systeem gevoeliger zou zijn als er weinig kracht wordt uitgeoefend. Dat hebben we echter niet waargenomen.. De enige conclusie die ik dan kan trekken is dat de gewichten die we op de sensor gezet hebben te weinig druk uitoefenen om de deeltjes in de film te drukken. Misschien dat de kracht door de platte onderzijde net iets teveel gespreid wordt.

Conclusie:

  • Een FSR druksensor is niet geschikt om er een balans van te maken

Opmerkingen:

  • Om van de Arduino gebruik te kunnen maken moet men de gratis open-source software "sketches" installeren die het mogelijk maakt om de Arduino te programmeren. Deze kan men vinden op de Arduino site: arduino.cc/en/main/software
  • De druksensoren heb ik bij Conrad gekocht.
  • De software om de tekeningen te maken is gratis te downloaden bij Fritzing
  • FSR = Force Sensor Resistor

Literatuur:

  • Emily Gertz and Patrick Di Justo; "Environmental Monitoring With Arduino"; O'Reilly Media Inc;  2012; ISBN 9781449310561
  • Massimo Banzo; "Getting Started with Arduino"; O'Reilly; 2009; ISBN 9780596155513
  • Simon Monk; "Programming Arduino Getting Started with Sketches"; McGraw-Hill; 2012; ISBN 978007178422

Relevante websites:

Minder relevante websites:

Achtergrondinformatie:

Arduino is een opensource-computerplatform (printplaat, computer) bedoeld voor iedereen die geïnteresseerd is in het maken en ontwerpen van objecten die kunnen reageren op hun omgeving, door het aansluiten van allerlei sensoren en actuatoren op de Arduino.

Via de sensoren kan digitale en analoge inputsignalen genereren die door de Arduino verwerkt worden en dan weer een actie kunnen initiëren door het afgeven van digitale en analoge outputsignalen. Input kan bijvoorbeeld worden gegenereerd door schakelaars, lichtsensoren, bewegingsmeters, afstandsmeters, temperatuursensoren, of op basis van commando's afkomstig van internet, een radiomodule of een ander apparaat met een seriële interface. Outputsignalen kunnen bijvoorbeeld motoren, lampjes, pompjes en beeldschermen aansturen, maar ook input genereren voor een andere Arduinomodule.

Op de Arduino kan men zogenaamde "shields" zetten door dezen op de input-/outputpinnen van de Arduino te plaatsen. Deze shields kunnen bv extra functie toevoegen of  verschillende sensoren en modules in één printplaat combineren.  Het meest bekende shield is het ProtoShield dat dienst doet als breadboard, om op te experimenteren.


19/01/2014