Das dünn Film, Kraftsensor Modul von Keyestudio kann kräfte von 0 bis 500g messen. In diesem Tutorial möchte ich nun dieses Modul vorstellen.
Die originale Bezeichnung des Sensors lautet „Thin-film Pressure Force Sensor Modul“ für den Titel habe ich diese Bezeichnung einmal ins Deutsche übersetzt.
Bezug
Dieses Modul habe ich über ebay.de für knapp 2,40 € inkl. Versandkosten erworben (hier ein Link zu einer Auswahl).
Es gibt diese dünn Film Sensoren auch ohne zusätzliche Platine und in diversen Stärken.
Technische Daten
- Betriebsspannung 3,3V bis 5V
- Betriebstemperatur -20 °C bis 60 °C
- Messbereich 0g bis 500g
- Auflösung des Messbereiches < 20g
- Messtoleranz ±2.5 %
- Stärke der Folie: < 0,25 mm
- Messgeschwindigkeit < 1ms
Anschluss & Schaltung
Der Sensor verfügt über drei Pins welche mit „-„, „+“ und „S“ beschriftet sind.
Modul | Arduino UNO |
---|---|
– | GND |
+ | 5V |
S | analoger Pin A0 |
Als Mikrocontroller verwende ich in diesem Tutorial den Arduino UNO von der Firma Keyestudio.
Der Vorteil an diesem Mikrocontroller ist, dass dieser neben den „normalen“ Anschlüssen auch an jedem digitalen und analogen Pin jeweils GND & VCC über eine Stiftleiste anbietet. Die Spannung für diese Kontakte wird über einen separaten Schalter geregelt. (Dieses ist nicht bei jedem Mikrocontroller vorhanden.)
Quellcode
Da der Sensor einfach über den analogen Pin ausgelesen wird und wir wiederum einen Wert von 0 bis 1023 erhalten, müssen wir diesen Wert nur auf den Messbereich mappen.
//dünn Film Kraftsensor am analogen Pin A0 #define FORCE_SENSOR A0 void setup() { //initialisieren der seriellen Kommunikation //mit 9600baud Serial.begin(9600); } void loop() { //lesen des aktuellen Wertes vom Sensor int value = analogRead(FORCE_SENSOR); //mappen des Wertes vom Sensor (0..1023) auf den Messbereich (0g..500g) int force = map(value,0,1023,0,500); //Ausgeben des Wertes auf dem seriellen Ausgang Serial.print(force); Serial.println("g"); delay(125); //eine kleine Pause von 125ms. }
Kraft ist nicht gleich Masse! D.h. wenn wir eine Kraft von 500g haben, ist dieses nicht einer Masse von 500g gleich zusetzen. Die Kraft wird auch in Newton (N) dargestellt. Dabei sind 1kg Kraft gleich 9,80665 N.
Erweitern wir also nun das Sketch um die Kraft in Newton anzuzeigen. Dazu rechnen wir zunächst den Wert von 1 kg in ein Gramm um (0,00980665 N) dieses speichern wir uns, als Konstante um später mit dieser zu rechnen.
Des Weiteren lassen wir uns die Werte in einer kleinen Tabelle, übersichtlich anzeigen.
//dünn Film Kraftsensor am analogen Pin A0 #define FORCE_SENSOR A0 //1g sind 0,00980665 Newton const double grammToNewton = 0.00980665; void setup() { //initialisieren der seriellen Kommunikation //mit 9600baud Serial.begin(9600); Serial.println("analoger Wert\t|Kraft in Gramm\t|Kraft in Newton"); } void loop() { //lesen des aktuellen Wertes vom Sensor int value = analogRead(FORCE_SENSOR); //mappen des Wertes vom Sensor (0..1023) auf den Messbereich (0g..500g) int forceGramm = map(value,0,1023,0,500); //Ausgeben des Wertes auf dem seriellen Ausgang Serial.print(value); Serial.print("\t\t|"); Serial.print(forceGramm); Serial.print("g"); Serial.print("\t\t|"); Serial.print(grammToNewton*forceGramm); Serial.println("N"); delay(500); //eine kleine Pause von 125ms. }