Spritzen-Schieberegler
Medium · 20 min · Kostenlos
Ziel & Lerninhalt
Verwandle eine Einwegspritze in einen linearen Schieberegler – zwei einfache Varianten: mit Salzwasser-Füllung oder mit antistatischem Leitschaum.
- Linearen Widerstand über Eintauchtiefe ableiten.
- Stick-Slip-Effekt durch Schmierung minimieren.
- ADC-Wert mit map() in eine ergonomische Größe (0–100 %, 0–180°) umrechnen.
Erklärung & Wissen
Basic
Eine Plastikspritze hat schon alles, was ein linearer Schieber braucht: einen geraden Zylinder, einen gleitenden Kolben und einen praktischen Griff. Wir machen daraus einen Regler, dessen Stellung das Mainboard direkt auslesen kann. Variante 1: Wir füllen die Spritze mit Salzwasser und stecken zwei Drähte hinein. Drückt der Kolben Wasser zwischen den Drähten weg, wird der elektrische Weg kürzer, der Widerstand sinkt. Variante 2: Wir stecken ein Stück antistatischen Schaumstoff in die Spritze – der Schaum wird beim Drücken zusammengepresst, sein Widerstand sinkt.
Medium
Beide Varianten ergeben einen variablen Widerstand, der zusammen mit einem 10 kΩ-Festwiderstand einen Spannungsteiler an A0 bildet. Der ADC liest 0–1023, im Code rechnest du das per map() in 0–100 % Stellung oder direkt in 0–180° Servo-Winkel um. Die Salzwasser-Variante ist sauberer linear, aber langsam dichtend (Wasser darf nicht auslaufen – Heißkleber an den Drahtdurchführungen). Die Schaum-Variante ist trocken und stabil, aber leicht nichtlinear: Druckverläufe von Schaum sind progressiv (anfangs weich, später hart). Mit kalibrierten Endpunkten links/rechts in map() funktioniert beides verlässlich.
Expert
Der größte Feind feinfühliger Spritzen-Slider ist die Haftreibung der Gummilippe (Stick-Slip-Effekt): Bei langsamen Bewegungen ruckt der Kolben, weil die Haftreibung größer ist als die Gleitreibung. Lösung: Die Spritze vorab innen ganz dünn mit Silikonöl oder Speiseöl ausreiben – die Bewegung wird seidenweich. Bei der Wasser-Variante außerdem wichtig: Wechselbetrieb der Spannung gegen Elektrolyse und Polarisation. Bei der Schaum-Variante achtest du auf Schaum mit gleichmäßiger Zellgröße – Verpackungsschaum ist oft zu inhomogen und gibt sprunghafte Werte.
Fun Fact
Genau dieses Prinzip steckt in vielen DIY-MIDI-Controllern und Spielcontrollern für Menschen mit Bewegungseinschränkung: Spritzen mit Leitschaum sind extrem robust, intuitiv 'analog' und kosten fast nichts.
- Stick-Slip-Effekt
- Ruckartige Bewegung durch Wechsel von Haft- zu Gleitreibung. Haftreibung $F_H = \mu_0 F_N$ ist meist größer als Gleitreibung $F_G = \mu_D F_N$. Sobald die Haftung 'reißt', beschleunigt der Kolben kurz, wird wieder langsamer, haftet erneut – das wiederholt sich rhythmisch. Schmierung egalisiert den Sprung.
- Druckabhängiger Widerstand
- Eigenschaft mancher Schaumstoffe, ihren Widerstand unter Druck stark zu verändern. Antistatik-Schaum (ESD-Foam) enthält leitfähigen Ruß. Beim Komprimieren rücken die Rußpartikel näher zusammen, neue Kontaktpfade entstehen, der Widerstand sinkt z.B. von 1 MΩ unbelastet auf wenige kΩ unter Druck.
- map()
- Arduino-Funktion zur linearen Skalierung eines Wertebereichs. `map(x, in_min, in_max, out_min, out_max)`. Sehr praktisch zur Umrechnung von ADC-Werten (0–1023) in physikalische Größen wie Prozent (0–100) oder Servo-Winkel (0–180). Achtung: map() klippt nicht – Werte außerhalb des Eingangsbereichs werden extrapoliert; ggf. mit `constrain()` begrenzen.
- Lineares Potentiometer
- Eingabeelement, das eine mechanische Position direkt in eine proportionale Spannung übersetzt. Das Ziel der Spritze ist ein 'lineares Poti': Kolbenstellung → Widerstand → Spannung am ADC. Ein echter Schiebe-Poti hat drei Anschlüsse: +5V, GND und Schleifer (= ADC). Zwischen Schleifer und Enden liegt der Widerstand linear verteilt. Die Spritze ahmt das nach: Eintauchtiefe der Elektrode ins Salzwasser oder Kompressionsgrad des Schaums verändert den Widerstand proportional zur Position — aber mit mehr Reibung und Hysterese als ein echtes Poti.
Praktischer Versuch: Spritzen-Slider mit Leitschaum
Antistatikschaum in der Spritze, Kontakte oben und unten, Auswertung am Analogeingang.
- 1 Einwegspritze 5–10 ml (ohne Nadel)
- 1 Stück antistatischer Verpackungsschaum (schwarz, leitfähig)
- 2 Drähte, 1 dünner Metallstift als Stempelkontakt am Kolben
- 1 Widerstand 10 kΩ (Referenz)
- Heißkleber, dünnes Speiseöl als Schmierung
Schaum zuschneiden
Schneide ein Schaumstück so zu, dass es exakt den Innendurchmesser der Spritze hat. Schiebe es ganz an die Unterseite (Düsenseite).
Check: Stück passt eng aber gleitend in die Spritze.
Tipp: Lieber etwas zu groß und seitlich beschneiden als zu klein – kein Spiel im Zylinder.
Kontakte einbauen
Boden: einen Draht so durch die Düsenöffnung führen, dass er flächig am Schaum anliegt, mit Heißkleber abdichten. Stempel: einen Metallstift mittig in die Vorderseite des Kolbens drücken/kleben – er kontaktiert den Schaum von oben.
Check: Multimeter zeigt: zwischen Bodenkontakt und Stempel sinkt der Widerstand, wenn du den Kolben drückst.
Tipp: Der Bodenkontakt sollte flächig anliegen (Drahtschlaufe oder kleiner Alukreis).
Bewegung manuell prüfen
Drücke den Kolben vorsichtig – er muss weich gleiten. Beobachte am Multimeter, ob der Wert kontinuierlich sinkt/steigt.
Check: Sanfte Bewegung des Kolbens – keine ruckenden Sprünge.
Tipp: Bei Stick-Slip einen Tropfen Speiseöl an die Gummilippe geben, einige Male durchziehen.
Spannungsteiler bauen
Spritzen-Drähte + 10 kΩ-Referenzwiderstand in Reihe zwischen 5V und GND. Mittelabgriff → A0.
Check: ADC liefert klar unterschiedliche Werte in 'offen' und 'gedrückt'.
Tipp: Wenn der Wert immer gleich bleibt, sitzt der Stempelkontakt nicht auf dem Schaum oder ist von der Plastikwand isoliert.
map() und Kalibrierung
ADC-Werte für 'voll gezogen' und 'voll gedrückt' notieren, in map() als Eingabe-Grenzen eintragen, Ausgabe als 0–100 %.
Check: Im Monitor zeigt 'Position' verlässlich 0 % bis 100 %.
Tipp: Endpunkte selbst eingeben! 'ADC unten/oben' nie mit den theoretischen 0/1023 verwechseln.
5V → Bodenkontakt → Schaum → Stempel → 10 kΩ → GND. Mittelabgriff (Stempel + 10 kΩ) → A0.
// ProtoPeaks - Spritzen-Schieberegler
const int sensorPin = A0;
const int adcMin = 120; // selbst ermitteln (voll gedrueckt)
const int adcMax = 880; // selbst ermitteln (voll gezogen)
void setup() { Serial.begin(9600); }
void loop() {
long sum = 0;
for (int i = 0; i < 16; i++) sum += analogRead(sensorPin);
int adc = sum / 16;
int prozent = map(constrain(adc, adcMin, adcMax), adcMin, adcMax, 0, 100);
Serial.print("ADC: "); Serial.print(adc);
Serial.print(" Position: "); Serial.print(prozent); Serial.println(" %");
delay(50);
}- Wert ruckelt sprunghaft. — Stick-Slip am Kolben oder ungleichmäßiger Schaum. Speiseöl an die Gummilippe, gleichmäßigeren Schaum nehmen.
- Werte ändern sich kaum. — Stempel berührt den Schaum nicht. Stempelstift weiter vorstehen lassen oder dickeren Schaum verwenden.
- Position springt rückwärts beim Loslassen. — Schaum drückt sich nicht voll zurück. Weicheren Schaum nehmen oder eine kleine Druckfeder hinter den Kolben setzen.
Kurzzusammenfassung
Aus einer Einwegspritze, etwas Leitschaum und zwei Drähten entsteht ein robuster linearer Schieberegler. Die Auswertung läuft über einen klassischen Spannungsteiler und map() – ideal als günstiger, ergonomischer Eingabe-Hebel.