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.
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
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 bis zu 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.