Nr. 53 – Drucksensor RFP602 für Arduino

Inhaltsverzeichnis

Für dieses Projekt benötigst du

Kräfte messen mit dem RFP602 Drucksensor

In dieser Anleitung beschäftigen wir uns mit dem RFP602 und vergleichbaren Drucksensoren. Kurzer Disclaimer 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

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 500 g 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.

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 mithilfe 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
}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 3.500 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE

Schreibe einen Kommentar

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