Intelligenter automatischer Desinfektionsspender – Berührungslose Hygiene mit Arduino
Komponenten und Zubehör
| Arduino Nano R3 | × | 1 |
| DRV8825 Schrittmotortreiber (für Theremino-System) | × | 1 |
| Steckdrähte (Jumper Wires) | × | 1 |
| Steckbrett (Breadboard) | × | 1 |
| 9V-Blockbatterie | × | 1 |
| 9V-Batterieclip | × | 1 |
| Widerstand 1 kΩ | × | 1 |
| Kondensator 100 µF | × | 1 |
| 28BYJ-48 4-Phasen-Schrittmotor 5V | × | 1 |
| M3 Schrauben (8–20 mm) | × | 19 |
| Infrarot-Hindernissensor-Modul | × | 1 |
| Endschalter KW12-3 (Mikroschalter mit Rollenhebel) | × | 1 |
| Aluminium-Spannhülse 5 mm auf 8 mm | × | 1 |
| Trapezgewindespindel T8-300 mm mit Messingmutter, Steigung 2 mm | × | 1 |
| Ein-/Ausschalter | × | 1 |
| Handsdesinfektionsmittel (Flasche) | × | 1 |
| 688zz Kugellager 8x16x5 mm | × | 1 |
| LM8UU 8x15x24 mm Linearlager (Kunststoff) | × | 1 |
| Klettbänder (Velcro) | × | 1 |
Benötigte Werkzeuge und Maschinen
- 3D-Drucker (z. B. Creality Ender 3 V2)
- Lötkolben (optional)
- Metallsäge
Apps und Online-Dienste
- Arduino IDE
- 3D-Design-Programm (optional, z. B. Onshape)
- Ultimaker Cura (Slicer für 3D-Druck)
Über dieses Projekt
Die COVID-19-Pandemie hat weltweit Chaos angerichtet. Eine der wichtigsten WHO-Empfehlungen: ständiges Händewaschen mit Seife oder Desinfektionsmittel. Doch das Berühren des Spenders macht den Zweck zunichte und schafft Infektionsrisiko. Als 14-jähriger Junge entschied ich mich, mit einem Arduino Nano eine Lösung zu bauen – günstig, einfach an viele Spender anpassbar. Das Ergebnis: Ein Aufsatz, der fast jeden Desinfektions-/Seifenspender berührungslos und vollautomatisch macht.
Schritt 1: Mechanismus verstehen
Ein Schrittmotor ist über eine Kupplung mit einer Gewindespindel verbunden. Der 3D-gedruckte Druckarm ist einerseits mit der Spindel (über Mutter) verbunden, andererseits wird er über einen 3D-gedruckten Führungsstab linear geführt. Der Stab verhindert, dass die Drehkraft der Spindel den Arm dreht – er bewegt sich linear. So kann der Schrittmotor den Arm in jede Richtung, mit beliebiger Geschwindigkeit und Schrittanzahl verfahren.
Schritt 2: Funktionsweise des Geräts
Der IR-Hindernissensor (am 3D-gedruckten Halter) wird aktiviert, wenn man die Hand wenige Zentimeter darunter hält. Der Druckarm fährt eine festgelegte Strecke nach unten (drückt den Spender), wartet 2 Sekunden und fährt dann zurück zur Startposition, bis der Endschalter auslöst. Beim Einschalten fährt der Arm zunächst hoch bis zum Endschalter – eine Art Selbstkalibrierung.
Mit den Klettbändern wird der gewünschte Spender fest umwickelt. Fertig ist der automatische Desinfektionsspender!
Schritt 3: Komponenten beschaffen
Alle Links zu den Bauteilen finden sich im „Things“-Bereich.
Schritt 4: Individuelle Teile designen
Alle 3D-gedruckten Teile wurden in Onshape entworfen. Die STL-Dateien sind im „Attachments“-Bereich vorhanden – kein eigenes 3D-Design nötig.
Schritt 5: 3D-Druck der Kunststoffteile
Gedruckt auf Creality Ender 3 V2 in Grau und Weiß PLA, 0,2 mm Schichthöhe, 20 % Infill. Alternativ können Teile aus Pappe oder Holz gefertigt werden.
Schritt 6: Schrittmotor modifizieren (Drehmoment erhöhen)
Der 28BYJ-48 ist ein günstiger Unipolar-Schrittmotor mit ca. 300 g/cm Drehmoment. Durch Umwandlung in einen bipolaren Motor lässt sich das Drehmoment auf 800+ g/cm steigern!
- Blaue Abdeckung mit Schraubenzieher entfernen.
- Mittlere Leiterbahn (zum roten Draht) vollständig durchtrennen.
- Roten Draht beidseitig abschneiden.
- Abdeckung wieder aufsetzen (evtl. Stützen kürzen).
Nun ist der Motor bipolar und hat ca. 2,5-faches Drehmoment. Benötigt wird nun ein bipolares Treibermodul wie der DRV8825. Die Mindestspannung des Treibers beträgt 8,4V, der Motor ist für 5V ausgelegt – die bipolare Version verträgt die höhere Spannung problemlos.
Schritt 7: Klettbänder selbst herstellen (2 Stück)
Falls keine fertigen Klettbänder vorhanden: Ein Teil 30–40 cm, der andere 4–7 cm zuschneiden. Beide Teile so zusammenheften, dass entweder beide rauen oder beide weichen Seiten aufeinanderliegen. Zwei Stück anfertigen.
Schritt 8: Schaltung aufbauen
- 9V-Batterie: Minus → Arduino GND mit 100µF Elko dazwischen (weißer Strich = Minus). Plus → Ein-/Ausschalter → Vin (an Elko-Anode). Zwei Mini-Steckbretter passen gut ins Gehäuse.
- IR-Sensor: VCC → 5V, GND → GND, OUT → Digital Pin 9.
- Endschalter: Gemeinsamer Anschluss → 5V, Normalerweise offen → Digital Pin 8 und über 1kΩ Widerstand → GND.
- DRV8825 auf Steckbrett: Vmot → Vin (Arduino), beide GND → GND. Dir → Pin 2, Step → Pin 3, Enable → Pin 4. Reset und Sleep verbinden.
- Schrittmotor an DRV8825: Blau → A2, Gelb → A1, Orange → B1, Rosa → B2.
Schritt 9: Programmierung
const int dirPin = 2;
const int stepPin = 3;
const int enablePin = 4;
const int stepsPerRevolution = 6000; // 360° = 2048 Steps
int endStop = 8;
int irSensor = 9;
void setup() {
pinMode(endStop, INPUT);
pinMode(irSensor, INPUT);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW); // Treiber aktivieren
// Selbstkalibrierung: hochfahren bis Endschalter
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH); // gegen Uhrzeigersinn
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
digitalWrite(enablePin, HIGH); // Treiber deaktivieren (Stromsparen)
}
void loop() {
if (digitalRead(irSensor) == 0) { // Hindernis erkannt (Hand)
digitalWrite(enablePin, LOW);
digitalWrite(dirPin, LOW); // im Uhrzeigersinn
for (int x = 0; x < stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(2000); // 2 Sekunden warten
// Zurück zur Startposition
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH);
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
digitalWrite(enablePin, HIGH);
}
}
Schritt 10: Montage
Abdeckungs-Montage
Klettband in den Schlitz legen, Halter darauf, verschrauben (2×). Klettgriff an Abdeckung schrauben (2×).
Druckarm-Montage
Linearlager in rechtes Loch drücken bis mittig. T8-Mutter in linkes Loch mit 4 Schrauben befestigen.
Elektronik-Gehäuse
Schaltung ins Gehäuse legen. Kabel von Schrittmotor, Schalter und IR-Sensor durch Loch führen.
IR-Sensor-Halter
IR-Sensor in Loch schrauben, mit Mutter fixieren und Position justieren.
Endmontage
- Kugellager einsetzen.
- T8-Spindel (70–82 mm lang, ggf. mit Metallsäge kürzen) und Druckarm-Montage einsetzen.
- Kupplung auf Motorwelle und T8-Spindel festziehen. Motor mit 2 Schrauben am Sockel befestigen.
- Endschalter einbauen.
- Abdeckung mit 5 Schrauben am Sockel befestigen.
- IR-Sensor-Halter vorne am Sockel mit 2 Schrauben befestigen.
- Elektronik-Gehäuse mit 3 Schrauben an der Abdeckung befestigen. Fertig!
Fazit
Das Projekt – ein Aufsatz, der fast jeden Desinfektions-/Seifenspender vollautomatisch und berührungslos macht – ist abgeschlossen. Vielen Dank für Ihre Aufmerksamkeit!
Code: Automatic_Hand_Sanitizer_Transformer (Arduino)
// Pin-Definitionen & Schritte pro Umdrehung
const int dirPin = 2;
const int stepPin = 3;
const int enablePin = 4;
const int stepsPerRevolution = 6000;
int endStop = 8;
int irSensor = 9;
void setup() {
pinMode(endStop, INPUT);
pinMode(irSensor, INPUT);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW);
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH);
for (int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH);
}
void loop() {
if (digitalRead(irSensor) == 0) {
digitalWrite(enablePin, LOW);
digitalWrite(dirPin, LOW);
for (int x = 0; x < stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(2000);
while (digitalRead(endStop) == LOW) {
digitalWrite(dirPin, HIGH);
for (int x = 0; x < 1; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}
digitalWrite(enablePin, HIGH);
}
}
3D-Druck-Teile (Übersicht)
- Hauptbasis (Sockel)
- Druckarm (betätigt den Spender)
- Abdeckung (Elektronik-Gehäuse)
- Klettband-Mechanismus (2×)
- Stützstange für Druckarm
- IR-Sensor-Halter
- Klettband-Halter für Abdeckung (2×)
Schaltplan
Als Bild verfügbar.
Herstellungsprozess
- UFO Attack: Eigenes Arduino-Spiel mit MAX7219 Matrix & Joystick
- DIY Automatische Modellbahn-Steuerung mit Arduino – Einfach & Flexibel
- 3D RGB Arduclock – Bluetooth-LED-Uhr mit Echtzeituhr
- River Health Monitor: Arduino-basiertes Wasserqualitäts-Messsystem
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Interaktives Joystick-Spiel mit Arduino & LED-Feedback
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
- Arduino-Roboter „Little Rover“: Autonomen Hindernisvermeider bauen
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau