Das dünn Film, Kraftsensor Modul von Keyestudio kann Kräfte von 0 bis 500 g 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).
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
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 0 g bis 500 g
- Auflösung des Messbereiches < 20 g
- 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. }