Nr. 53 – Drucksensor RFP602 den Arduino

In dieser Anleitung beschäftigen wir uns mit dem RFP602 und vergleichbaren Drucksensoren. Kurzer Dislaimer vorab: bei den Drucksensoren handelt es sich nicht um Wägezellen. Vielmehr geben die erfassten Messdaten Aufschluss über die Krafteinwirkung auf den Sensor.  Der Unterschied zu Wägezellen wird auch aus der englischen Bezeichnung des Sensors – „thin film pressure force sensor“ – deutlich. 

rfp602_pressure_sensor_in_use
RFP602 Drucksensor - Anwendungsbeispiel

Spezifikationen des Sensor Moduls

Die Spezifikationen der Druck- bzw. Kraftsensoren können variieren. Die nachfolgenden Informationen beziehen sich auf den bei uns im Onlineshop erhältlichen Membran-Drucksensor.

Technische Daten des RFP602
Betriebsspannung
5V
Messbereich
0~0.5kg
Reaktion
ab ca. 20g
Wiederholgenauigkeit
+/- 5% (bei 50% Gewichtsauslastung)
Messgenauigkeit
+/- 2.5%
Reaktionszeit
<1ms
Temperaturbereich
-20°C - 60°C
Sensortyp
Analog

Funktionsweise des Sensors

Die Funktionsweise von Drucksensoren ist relativ einfach zu verstehen. Im Ruhezustand liefert der Sensor einen analogen Wert von <100 aus. Wirken wir auf den Sensor eine Kraft von bis zu 500g aus, steigt dieser Wert linear bis zu 1023 (5V) an. Daraus können wir die tatsächliche Krafteinwirkung bis zur maximalen Auslastung des Sensors erfassen und ableiten. 


Der Anschlussplan für den RFP602 Drucksensor

Anschlussplan ("Pinout") für den RFP602 Sensor

Pin des Sensors

Pin des Mikrocontrollers

VCC
5V
GND
GND
S
A0

Fritzing Skizze für den RFP602 Drucksensor

rp602_force_pressure_sensor

Da es für den RFP602 Drucksensor leider kein passendes Fritzing-Modul gibt, haben wir uns ein wenig beholfen. Oben dargestellt ist in rot die Spannungsversorgung, in schwarz Ground und in violett die Datenleitung.

Der Quellcode (Sketch) für den RFP602 Drucksensor

Zeit uns den Quellcode anzuschauen. Auch der Sketch für dieses Modul ist relativ unkompliziert.  Wir beginnen mit der Definition unserer Variable „Sensorpin“. Diese legt fest, an welchem Anschlusspin (hier: an welchem analogen Pin) der Sensor mit dem Mikrocontroller verbunden wurde.
Im Anschluss dessen starten wir die Initialisierung (Zeile 3-5) und fahren mit dem Hauptteil des Programms, dem sogenannten „loop“ fort. In diesem legen wir wiederum die Variable „Sensorwert“ fest, in welcher der analoge Wert des Sensors gespeichert wird.
Da der Sensor mit einer Versorgungsspannung von 5V betrieben wird, erhalten wir Messwerte zwischen 0 und 1023. Das Problem: wir möchten bereits aufbereitete Messdaten zwischen 0 und 500 Gramm ausgeben, nicht aber den reinen analogen Messwert. Es bietet sich daher an die Werte mit Hilfe des „map“-Befehls miteinander in Relation zu bringen.
Im Anschluss dessen geben wir die Messdaten im seriellen Monitor aus

int Sensorpin =  A0; // Definition, an welcher Stelle am Mikrocontroller der Sensorwert ausgelesen werden soll

void setup() {
  Serial.begin(9600); // Initialisierung, Festlegung der Baudrate
}

void loop() {
  int Sensorwert = analogRead(Sensorpin); // Auslesen des Sensorwertes (zwischen 0 und 1023)
  //mappen des Wertes vom Sensor (0..1023) auf den Messbereich (0g..500g)
  int Krafteinwirkung = map(Sensorwert,0,1023,0,500); // "mappen", also ins Verhältnis setzten des Sensorwertes (0-1023) zu 0-500g

  Serial.print("Die Krafteinwirkung beträgt: ");
  Serial.print(Krafteinwirkung); // Ausgabe des Wertes im seriellen Monitor
  Serial.println(" Gramm");
  delay(500); // 500ms Pause, bevor der Sketch erneut gelesen wird
}

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.