Druckempfindlicher Sensor (FSR) – Anschluss, Code & Kalibrierung

Kurzfassung für Eilige: Ein FSR (Force Sensitive Resistor) ist ein flacher, flexibler druckempfindlicher Widerstand. Mit einem einfachen Spannungsteiler misst du am Analog-Pin deines Arduino/ESP die Druckstärke. Für exakte Werte brauchst du eine Kalibrierung.

Key Takeaways

  • FSR = Widerstand sinkt bei Druck → ideal für Touch/Belegung/Force-Input
  • Anschluss als Spannungsteiler mit 10–47 kΩ Referenzwiderstand
  • Nichtlinear → relative Stufen ok, absolute Kräfte nur mit Kalibrierung
  • Beispielsketch für Arduino inklusive Glättung & Druckstufen

Was ist ein FSR?

Ein Force Sensitive Resistor (FSR) ist ein Sensor, dessen Widerstand mit zunehmendem Druck stark abnimmt. Er ist flach, leicht, robust und damit perfekt für User-Interfaces, Musikinstrumente, Robotik-Greifer oder Sitz-/Belegungssensoren. Für Bastelprojekte ist z. B. der Interlink FSR-402 verbreitet.

Typische Einsatzfälle


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


  • Druckabhängige Tasten/Trigger (sanft ↔ stark)
  • Velocity-Pads für Musikcontroller
  • Griffkraft-Erkennung in Robotik/Wearables
  • Belegungssensor in Stuhl/Sitzauflage

So funktioniert der FSR

Der FSR ist piezoresistiv: Durch Druck vergrößert sich die leitende Kontaktfläche im Sensoraufbau. Ergebnis: R↓ bei F↑ (stark nichtlinear). Ohne Druck ist der Widerstand sehr groß (quasi „offen“), bei leichter Berührung im 100-kΩ‑Bereich, bei starkem Druck bis in den kΩ/100‑Ω‑Bereich. Genauigkeitswunder ist er nicht – qualitative Messungen sind seine Stärke.


Bauteile & Daten

  • Formen: rund (Ø ≈ 18 mm), rechteckig/streifenförmig, Matten/Arrays
  • Dicke: ~0,45 mm, leicht flexibel
  • Arbeitsbereich: reagiert ab sehr kleinen Kräften; sinnvoll bis ca. 10 N (modellabhängig)
  • Lebensdauer: viele 100k–Mio. Betätigungen (je nach Hersteller/Typ)
  • Charakteristik: logarithmisch, temperatur- und mechanikabhängig → Kalibrieren!

Schaltung: Spannungsteiler

Ziel: Die Knotenspannung steigt mit Druck und wird am Analog-Pin gemessen.

Vcc ── FSR ──●── Rfix ── GND

A0 (Analog)

Empfehlungen

  • Rfix: 10–47 kΩ (für leichte Berührungen eher 47–100 kΩ, für harte Drücke 10–22 kΩ)
  • Vcc: 5 V (Arduino Uno) oder 3,3 V (ESP32/ESP8266)
  • Noise: 100 nF vom Messpunkt nach GND kann helfen
  • Leitungen kurz halten, saubere Masseführung

Arduino-Beispielcode

Der Sketch liest den FSR, glättet den Wert mit einem gleitenden Mittel und teilt die Messung in Druckstufen ein.

// FSR am A0, Spannungsteiler mit 10k–47k nach GND
const int fsrPin = A0;
const float vcc = 5.0; // 5V beim UNO
const int adcMax = 1023; // 10 Bit


// Gleitender Mittelwert
const int N = 10; // Puffergröße
int buf[N]; int idx=0; long sum=0;


void setup() {
Serial.begin(115200);
for (int i=0;i<N;i++) buf[i]=0;
}


int smoothRead() {
int val = analogRead(fsrPin);
sum -= buf[idx];
buf[idx] = val;
sum += val;
idx = (idx+1)%N;
return sum / N;
}


void loop() {
int raw = smoothRead();
float voltage = (raw * vcc) / adcMax;


// Grobe Druckstufen – Schwellen ggf. anpassen
const float soft = 0.5; // leichte Berührung
const float medium = 1.5; // mittlerer Druck
const float hard = 3.0; // starker Druck


const char* level = "kein Druck";
if (voltage > soft) level = "soft";
if (voltage > medium) level = "medium";
if (voltage > hard) level = "hard";


Serial.print("ADC="); Serial.print(raw);
Serial.print(" U="); Serial.print(voltage,2); Serial.print("V ");
Serial.println(level);
delay(10);
}

ESP32-Hinweis: ADC ist 12‑Bit (0…4095) und typ. 3,3 V Referenz → Konstanten anpassen.


Kalibrierung (Kraft abschätzen)

Willst du aus der Spannung N (Newton) ableiten, brauchst du eigene Referenzmessungen.

So geht’s in 5 Schritten

  1. Sensor mechanisch sauber lagern (flache Auflage, ggf. Gummipad)
  2. Bekannte Gewichte/Kräfte nacheinander auflegen (z. B. 0, 0,5, 1, 2, 5, 10 N)
  3. Je Punkt 20–50 Messwerte mitteln → Tabelle (Kraft ↔ Spannung)
  4. In Excel/Python Kurve fitten (oft Potenzfunktion) oder Lookup-Tabelle anlegen
  5. Im Sketch Werte in Kraftbereiche umrechnen (z. B. if/else oder Interpolation)

Pro‑Tipp: Lieber Bereiche (z. B. „leicht/mittel/stark“) als exakte N‑Werte anzeigen – stabiler und praxistauglich.


Tipps & häufige Fehler

  • Nichtlinearität & Drift: Temperatur/Alterung beachten → gelegentlich neu kalibrieren
  • Kraft verteilen: Weiche Deckschicht (Schaum/Gummi) verhindert Hot‑Spots
  • Vorspannung: Für „belegt/unbelegt“ eine kleine Grundlast einplanen
  • Rfix passend wählen: Ziel‑Spannungsbereich an den ADC anpassen
  • Präzision nötig?Wägezelle/Dehnungsmessstreifen statt FSR

Praxisbeispiele

  • Druck‑DJ‑Pad: Lautstärke/Filter je nach Druck
  • Roboter-Greifer: Schließt bis Druck > Schwellwert
  • Sitzsensor: Belegung + „Zappelfaktor“
  • Game-Controller: Analoge Trigger statt On/Off

Einkaufsliste

  • FSR, z. B. Interlink FSR‑402 (rund)
  • Widerstand 10–47 kΩ (ein paar Werte zum Testen)
  • Kabel, Breadboard, 100 nF Kondensator (optional)
  • Arduino Uno/Nano oder ESP32/ESP8266

Downloads

  • Schaltplan (PNG): /wp-content/uploads/fsr_wiring_diagram.png
  • Schaltplan (SVG): /wp-content/uploads/fsr_wiring_diagram.svg
  • Hero-Bild (PNG): /wp-content/uploads/fsr_hero_banner.png

ALT‑Texte (Empfehlung)

  • fsr_hero_banner.png → „Druckempfindlicher Sensor (FSR) – Funktionsprinzip und Anschluss“
  • fsr_wiring_diagram.png → „FSR an Arduino als Spannungsteiler mit Rfix und A0“
  • fsr_wiring_diagram.svg → „Schaltplan: Force Sensitive Resistor mit Arduino“

FAQ

Wie schließe ich einen FSR an Arduino an?
Als Spannungsteiler: FSR an Vcc, Knoten an A0, Rfix (10–47 kΩ) nach GND.

Ist ein FSR ein präziser Kraftsensor?
Nein, er ist nichtlinear und driftet. Für relative Messungen top; für präzise Kräfte lieber Wägezellen.

Welche Versorgung nutze ich?
5 V beim Arduino Uno, 3,3 V bei ESP32/ESP8266. Passe die ADC‑Konstanten im Sketch an.

Wie kalibriere ich einen FSR?
Mehrere Referenzgewichte messen, Kurve/Lookup erstellen und im Code hinterlegen.


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
1 Kommentar
Newest
Oldest Most Voted
Smithy
12 Jahre zuvor

Wann wird die Seite vervollständigt?
Finde die kurze Erklärungsweise super.
Einzige was fehlt ist ev. Dimensionierungsformeln wie beim Peltier-Element ^^