Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

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

Apps und Online-Dienste

Ü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!

  1. Blaue Abdeckung mit Schraubenzieher entfernen.
  2. Mittlere Leiterbahn (zum roten Draht) vollständig durchtrennen.
  3. Roten Draht beidseitig abschneiden.
  4. 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

  1. 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.
  2. IR-Sensor: VCC → 5V, GND → GND, OUT → Digital Pin 9.
  3. Endschalter: Gemeinsamer Anschluss → 5V, Normalerweise offen → Digital Pin 8 und über 1kΩ Widerstand → GND.
  4. DRV8825 auf Steckbrett: Vmot → Vin (Arduino), beide GND → GND. Dir → Pin 2, Step → Pin 3, Enable → Pin 4. Reset und Sleep verbinden.
  5. 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

  1. Kugellager einsetzen.
  2. T8-Spindel (70–82 mm lang, ggf. mit Metallsäge kürzen) und Druckarm-Montage einsetzen.
  3. Kupplung auf Motorwelle und T8-Spindel festziehen. Motor mit 2 Schrauben am Sockel befestigen.
  4. Endschalter einbauen.
  5. Abdeckung mit 5 Schrauben am Sockel befestigen.
  6. IR-Sensor-Halter vorne am Sockel mit 2 Schrauben befestigen.
  7. 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)

Schaltplan

Als Bild verfügbar.

Herstellungsprozess

  1. UFO Attack: Eigenes Arduino-Spiel mit MAX7219 Matrix & Joystick
  2. DIY Automatische Modellbahn-Steuerung mit Arduino – Einfach & Flexibel
  3. 3D RGB Arduclock – Bluetooth-LED-Uhr mit Echtzeituhr
  4. River Health Monitor: Arduino-basiertes Wasserqualitäts-Messsystem
  5. Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
  6. Interaktives Joystick-Spiel mit Arduino & LED-Feedback
  7. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  8. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  9. Arduino-Roboter „Little Rover“: Autonomen Hindernisvermeider bauen
  10. DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau