MODE 8 — FORCE METER
Easy · 45 min · Fast kostenlos
Ziel & Anwendung
touch1 halten simuliert eine Kraftmesszelle: je länger gedrückt, desto mehr Kraft wird angezeigt (0–100 g in 2 Sekunden). Loslassen lässt den Wert langsam abfallen — wie eine Federkraft-Simulation. S1 zeigt die aktuelle Kraft, S2 hält den Spitzenwert. S3 zeigt die Gyro-Y-Neigung als Tara-Korrektur. Über 80 g: DC-Vibration und Buzzer.
- Touch-Haltezeit als analoge Kraftmessung (0–100 g in 2 Sekunden) implementieren.
- Federkraft-Simulation mit exponentieller Abklingfunktion (× 0,95 je Zyklus) aufbauen.
- Gyro-Y-Neigung als Tara-Korrektur-Zeiger zur Kompensation von Geräteausrichtung einsetzen.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Live-Kraft-Zeiger |
| S2 | 180°-Servo | Spitzenwert-Zeiger |
| S3 | 180°-Servo | Tara-Korrektur-Zeiger |
| S4 | 360°-Servo | Kraft-Anzeige-Rotor |
| S5 | 360°-Servo | Rückfeder-Phasen-Anzeige |
| S6 | 180°-Servo | Markiert den höchsten gemessenen Wert |
| STEPPER | Schrittmotor | Feinskala der aufgebauten Kraft |
| DC | DC-Motor | Vibration bei Überlast |
Materialliste
- Kartonstreifen je ca. 10 × 2 cm als Zeiger (3 Stück)
- Halbkreis-Skala Ø 14 cm mit Gramm-Einteilung (0 bis 100 g)
- Kleine Feder (Kugelschreiber-Feder) als haptisches Feedback-Element
- Filzstift für Skaleneinteilung
- Klebeband und Heißkleber
Step-by-Step Tutorial
Kraft-Skala aufbauen
Halbkreis (Ø 14 cm) ausschneiden. 10 Segmente à 10 g aufzeichnen. Rote Zone ab 80 g. Drei Servo-Positionen hintereinander: S1 (live), S2 (Peak), S3 (Tara-Korrektur). Basis der Anzeige mit Gewichten beschweren — das Gerät muss ruhig stehen während touch1 gehalten wird.
Check: Halbkreis-Skala mit Gramm-Einteilung (0–100 g) — rote Zone bei 80–100 g für Überlast-Bereich
Tipp: Skala in 10 gleiche Segmente à 10 g teilen. Rote Zone bei >80 g klar markieren — der DC-Alarm und Buzzer lösen hier aus.
Kraft-Zeiger S1 und S2 montieren
S1 und S2 mit Plastik-Horn und Zeiger (8 × 1,5 cm Papier) bestücken. S1: map(forceVal, 0, 100, 1000, 2000). S2: map(forcePeak7, 0, 100, 1000, 2000). Beide auf Gramm-Skala ausrichten: 0 g links, 100 g rechts.
Check: S1 steigt proportional zur touch1-Haltezeit. S2 bleibt beim bisherigen Maximum.
Tipp: Zeiger S1 muss sehr leichtgängig sein — er muss auch kleinen Kraft-Schritten (5 g) folgen. Dünnes Papier als Zeiger.
Tara-Korrektur S3 und haptisches Feedback einbauen
S3 zeigt Gyro-Y-Neigung als Tara-Indikator. Kleine Kugelschreiber-Feder unter touch1-Taste kleben: gibt beim Drücken echtes Widerstandsgefühl. Überlast-Schwelle 80 g: DC-Motor Vibration (setMotorspeed(70)) und Buzzer SHORT_BLINK.
Check: S3 reagiert auf Kippen von ProtoPeaks und zeigt Neigungskorrektur. Kugelschreiber-Feder als haptisches Element.
Tipp: Tara-Korrektur: constrain(1500 + GyroY × 10, 1000, 2000). Gerät gerade halten → S3 zeigt 1500 (Mitte).
Leichtgängigkeits-Test ohne Strom
S3 in Neutral-Mitte ausrichten: Horn so montieren dass Zeiger bei 1500 µs auf die 0-Linie zeigt. Alle drei Zeiger frei drehen: kein Klemmen? Erst dann einschalten.
Check: Alle drei Zeiger drehen frei. S3 steht bei 1500 µs genau in der Skalen-Mitte.
Tipp: S3 muss in Mittelposition ausgerichtet sein da er eine bipolare Anzeige (−/+) darstellt.
MODE 8 aktivieren — Kraft messen
Messgeräte → MODE 8. touch1 2 Sekunden lang halten: S1 geht auf Maximum. Loslassen: S1 fällt exponentiell. S2 bleibt auf Spitzenwert. touch2: Peak löschen. Über 80 g: DC-Motor und Buzzer. S3 ProtoPeaks kippen: Tara-Korrektur-Zeiger ausschlagen.
Check: touch1 halten: S1 steigt. Loslassen: S1 fällt langsam. S2 hält Maximum. Überlast-Alarm bei 80 g.
Tipp: Langsam drücken und halten: Zeiger steigt gleichmäßig. Loslassen: Zeiger fällt mit Federkraft-Charakteristik (× 0,95). touch2 löscht Peak.
Kalibrierung und Federkraft-Charakteristik testen
touch1 genau 1 Sekunde halten (Stoppuhr): S1 bei ~50 g? touch1 genau 2 Sekunden: S1 bei 100 g? Loslassen: Zeiger nach 3,5 Sekunden bei 50 g? Das ist die korrekte Federkraft-Charakteristik.
Check: 2 Sekunden touch1 halten = 100 g. 1 Sekunde halten = 50 g. Halbierungszeit des Abklingens = ~14 Zyklen.
Tipp: Abkling-Konstante 0,95 per Zyklus: nach 14 Zyklen (14 × 250 ms = 3,5 s) ist der Wert auf 50 % gefallen — gut sichtbar.
Troubleshooting
- S1 steigt sofort auf Maximum ohne Druck zu halten — touch1 ist dauerhaft aktiv (Finger liegt permanent auf dem Touch-Pad). Touch-Pad freigeben und erneut versuchen. CapSensor-Schwelle prüfen: falls zu empfindlich, Schwellwert erhöhen.
- Wert fällt nach Loslassen nicht ab — bleibt auf dem Peak stehen — forceVal *= 0.95f wird nur ausgeführt wenn !touch1. Prüfen ob touch1 wirklich losgelassen wurde. forceStart7 muss auf 0 gesetzt werden wenn !touch1.
Modifikationen & Sicherheit
- Pro-Tipp: Echter Druckknopf mit Feder statt touch1 — echte Haptik verbessert die Messgefühl-Simulation deutlich.
- Erweiterung: Kalibrierungsmodus: Encoder-Drehung skaliert g/Sekunde (Standard: 50 g/s) für verschiedene Messanwendungen.
- Sicherheit: Kein mechanisches Gewicht auf den touch1-Sensor stellen — der Kapazitiv-Sensor ist nicht für Dauerbelastung ausgelegt.
Wichtige Code-Teile
// touch1 halten = Kraft aufbauen
if(touch1) {
if(forceStart7 == 0) forceStart7 = millis();
forceVal = constrain((millis() - forceStart7) / 20.0f, 0, 100); // 0–100g in 2s
} else {
forceStart7 = 0;
forceVal *= 0.95f; // Federkraft-Abklingen
}
if(forceVal > forcePeak7) forcePeak7 = forceVal;
if(touch2) forcePeak7 = 0;
// S1: Live-Kraftzeiger, S2: Peak, S3: Tara-Gyro
servocontroller.setServoPulse(1, map(constrain((int)forceVal, 0, 100), 0, 100, 1000, 2000));
servocontroller.setServoPulse(2, map(constrain((int)forcePeak7, 0, 100), 0, 100, 1000, 2000));
servocontroller.setServoPulse(3, constrain(1500 + (int)(GyroY * 10), 1000, 2000));
// Überlast
setMotorspeed(forceVal > 80 ? 70 : 0);
if(forceVal > 80) Buzzer.setMode(SHORT_BLINK); else Buzzer.setValue(0);Ähnliche Projekte
- MODE 7 — DIFF METER — Zwei Sensor-Kanäle werden verglichen: S1 zeigt die Differenz von Sensor A zu einem gesetzten Referenzpunkt (touch1 = Nullpunkt setzen), S2 zeigt Sensor A live, S3 zeigt Sensor B live. EncoderButton wechselt Sensor A, touch2 wechselt Sensor B. Der DC-Motor warnt wenn die Differenz zwischen A und B einen Schwellwert überschreitet.
- MODE 6 — PEAK HOLD — Ein universeller Peak-Detektor für fünf verschiedene Sensoren: Encoder-Button wechselt den aktiven Sensor (Temperatur, Distanz, Helligkeit, Spannung, Feuchte), S1 zeigt den Live-Wert, S2 hält das bisherige Maximum und S3 das bisherige Minimum — alle gleichzeitig auf derselben Skala. touch2 löscht alle gespeicherten Extremwerte.
- MODE 5 — LUX METER — Drei Servo-Zeiger arbeiten gleichzeitig: S1 zeigt den Live-Lichtwert, S2 hält den Spitzenwert (Schleppzeiger-Prinzip wie ein analoges Maximum-Thermometer) und S3 friert den aktuellen Wert auf Knopfdruck ein. touch2 löscht den Peak-Wert, touch1 aktiviert den Hold-Modus. Der Stepper dreht bei sehr hellem Licht automatisch weg — als Sonnenschutz-Simulation.