Arduino Nano ESP32 - Kraftsensor

Der Kraftsensor wird als Force Sensitive Resistor, Force Sensing Resistor oder FSR bezeichnet. Dieses Tutorial liefert Anweisungen dazu, wie man den Arduino Nano ESP32 mit dem Kraftsensor verwendet. Im Detail werden wir lernen:

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Kraftsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Kraftsensor

Ein Kraftsensor ist ein Widerstand, dessen Widerstand in einem umgekehrt proportionalen Verhältnis zu der auf ihn wirkenden Kraft steht. Je mehr Kraft auf den Sensor wirkt, desto geringer ist der Widerstand des Sensors. Der Kraftsensor eignet sich gut für Anwendungen, die Druck bzw. Quetschung erkennen. Allerdings eignet er sich nicht gut für Anwendungen, die das Gewicht in Pfund messen.

Kraftsensor-Pinbelegung

Ein Kraftsensor hat zwei Anschlüsse. Genau wie bei einem Widerstand müssen wir diese Anschlüsse nicht unterscheiden.

Kraftsensor-Pinbelegung

Schaltplan zwischen Kraftsensor und Arduino Nano ESP32

Arduino Nano ESP32 Force Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie man einen Kraftsensor programmiert

Der Widerstand ist proportional zur Spannung. Wir können den analogen Eingang des ESP32 verwenden, um die Spannung zu messen.

Indem man einen Pin des Kraftsensors mit einem analogen Eingangspin verbindet, kann man den analogen Wert vom Pin auslesen → Spannung → Widerstand → Kraft (alles in relativen Werten).

Arduino Nano ESP32 Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano-esp32/arduino-nano-esp32-force-sensor */ #define FORCE_SENSOR_PIN A0 // The Arduino Nano ESP32 pin connected to the force reistor void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int analogReading = analogRead(FORCE_SENSOR_PIN); Serial.print("The force sensor value = "); Serial.print(analogReading); // print the raw analog reading if (analogReading < 10) // from 0 to 9 Serial.println(" -> no pressure"); else if (analogReading < 200) // from 10 to 199 Serial.println(" -> light touch"); else if (analogReading < 500) // from 200 to 499 Serial.println(" -> light squeeze"); else if (analogReading < 800) // from 500 to 799 Serial.println(" -> medium squeeze"); else // from 800 to 1023 Serial.println(" -> big squeeze"); delay(1000); }

Schnelle Schritte

  • Falls Sie Arduino Nano ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet an.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und den Code auf das Arduino Nano ESP32-Board hochladen, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
  • Drücken Sie den Kraftsensor.
  • Prüfen Sie das Ergebnis im Serial Monitor. Es sieht wie folgt aus:
COM6
Send
The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure The force sensor value = 132 -> light touch The force sensor value = 147 -> light touch The force sensor value = 394 -> light squeeze The force sensor value = 421 -> light squeeze The force sensor value = 607 -> medium squeeze The force sensor value = 791 -> medium squeeze The force sensor value = 921 -> big squeeze The force sensor value = 987 -> big squeeze The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

In diesem Tutorial wird die Funktion analogRead() verwendet, um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der mit einem Sensor oder Bauteil verbunden ist. Der ADC des Arduino Nano ESP32 eignet sich für Projekte, die nicht höchste Genauigkeit erfordern. Allerdings sollten bei Projekten, die präzise Messungen benötigen, Folgendes beachtet werden:

  • Der ADC des Arduino Nano ESP32 ist nicht völlig genau und erfordert möglicherweise Kalibrierung, um korrekte Ergebnisse zu erhalten. Jedes Arduino Nano ESP32-Board kann sich leicht unterscheiden, daher ist eine Kalibrierung für jedes einzelne Board notwendig.
  • Die Kalibrierung kann anspruchsvoll sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die gewünschten exakten Ergebnisse.

Für Projekte, die eine hohe Präzision erfordern, ziehen Sie in Betracht, einen externen ADC (z. B. ADS1115) mit dem Arduino Nano ESP32 zu verwenden oder einen anderen Arduino zu verwenden, wie z. B. den Arduino Uno R4 WiFi, der einen zuverlässigeren ADC besitzt. Wenn Sie den ADC des Arduino Nano ESP32 weiterhin kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!