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

DIY-Süßigkeiten-Spender mit Arduino: Intelligenter Snack-Automat bauen

Komponenten und Zubehör

Arduino UNO 1
Servo (180° Drehwinkel) 1
LCD 16×2 mit I2C-Backpack (weiß auf blau) 1
Taster 12 mm (zwei Stück: „Wenig“ / „Viel“) 2
PHPoC Shield für Arduino (Netzwerk/Erweiterung) 1
IR-Hindernissensor (z. B. KY-032) 1
Netzschalter (Power Button) 1
Steckplatine 1

Benötigte Werkzeuge

Apps und Online-Dienste

Über dieses Projekt

Das Projekt

Ein einfacher Süßigkeiten-Spender, der per Tastendruck („Wenig“ oder „Viel“) eine Portion ausgibt. Ein IR-Sensor prüft, ob ein Becher unter dem Auswurf steht. Der Aufbau gliedert sich in fünf Schritte:

  1. Arduino Uno R3 vorbereiten
  2. Code schreiben und hochladen
  3. Gehäuse und Mechanik bauen
  4. Elektronik einbauen
  5. Testen und nutzen

Die Programmierung war der zeitaufwendigste Teil – als Einsteiger halfen Google und Freunde bei der Fehlersuche. Das Projekt ist eine vereinfachte Version von gatoninja236's Candy Dispenser mit Google Assistant.

Gehäuse und Mechanik bauen

Der Bau dauerte ca. einen Tag (inkl. Fehlversuchen). Material: Pappe und Acrylglas.

Schritt 1: Komponenten layouten

Alle Bauteile auf Pappe anordnen, farbige Kabel nutzen für Übersicht. Jedes Teil einzeln testen.

Schritt 2: Box zeichnen und zuschneiden

Schritt 3: Zusammenbau & Ausschnitte

Erst mit Klebeband fixieren, dann Ausschnitte sägen:

Der Auswurf ist gestuft, damit Süßigkeiten nicht unkontrolliert herausfallen.

Schritt 4: Elektronik platzsparend verbauen

Steckplatine und Arduino hintereinander auf Acryl montieren.

Schritt 5: Komponenten einbauen

LCD und Taster zuerst verkabeln und in die Frontplatte einsetzen. Servo an der Auswurfklappe befestigen. Rückseitig Netzschalter für Batteriebetrieb anbringen.

Schritt 6: Fertiges Gerät

Alle Kabel ordnen, Gehäuse schließen – fertig!

Arduino-Code (Candy Dispenser.ino)

//------ BIBLIOTHEKEN -----
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

//------ KONFIGURATION -----
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C-Adresse 0x27
Servo myservo;

int pos = 90;               // Servo-Startposition (Mitte)
const int buttonCLK = 7;    // Taster „Wenig“ (im Uhrzeigersinn)
const int buttonAntiCLK = 6;// Taster „Viel“ (gegen Uhrzeigersinn)
const int avoidPin = 5;     // IR-Sensor (LOW = Becher erkannt)
int set = 0;                // 1 = wenig, 2 = viel

void setup() {
  lcd.begin();
  lcd.clear();
  myservo.attach(9);        // Servo an Pin 9
  pinMode(buttonCLK, INPUT);
  pinMode(buttonAntiCLK, INPUT);
  pinMode(avoidPin, INPUT);
  Serial.begin(9600);
  lcd.backlight();

  // Begrüßung
  lcd.setCursor(3,0); lcd.print("Welcome to");
  lcd.setCursor(3,1); lcd.print("Candy Land");
  delay(2000);
  lcd.clear();
  lcd.setCursor(0,0); lcd.print("How much candy?");
  lcd.setCursor(0,1); lcd.print("A Little A Lot");
  delay(5000);
}

void loop() {
  // Taster „Wenig“
  if (digitalRead(buttonCLK) == HIGH) {
    lcd.clear(); lcd.print("Please Place Cup");
    delay(2000); lcd.clear();
    set = 1;
  }
  // Taster „Viel“
  if (digitalRead(buttonAntiCLK) == HIGH) {
    lcd.clear(); lcd.print("Please Place Cup");
    delay(2000); lcd.clear();
    set = 2;
  }

  // Ausführung nach Bechererkennung
  if (set == 1) IRCLK();
  if (set == 2) IRAntiCLK();
}

// --- Servo-Funktionen ---
void TurnClockwise() {
  Serial.println("Candy 1 Being Dispensed");
  CandyText1();
  for (pos = 90; pos < 180; pos += 1) {
    myservo.write(pos);
    delay(15);
  }
  if (pos == 180) {
    delay(2000);
    ThankYouText();
  }
}

void TurnAntiClockwise() {
  Serial.println("Candy 2 Being Dispensed");
  CandyText2();
  for (pos = 90; pos < 180; pos += 1) {
    myservo.write(pos);
    delay(20);
  }
  if (pos == 180) {
    delay(3000);
    ThankYouText();
  }
}

// --- IR-Sensor Prüfung ---
void IRCLK() {
  delay(1000);
  bool avoidVal = digitalRead(avoidPin);
  lcd.setCursor(0,0); lcd.print("Detecting Cup");
  lcd.setCursor(0,14); lcd.print("...");
  if (avoidVal == LOW) {
    lcd.clear(); lcd.print("Cup Placed");
    delay(2000);
    TurnClockwise();
  }
}

void IRAntiCLK() {
  delay(1000);
  bool avoidVal = digitalRead(avoidPin);
  lcd.setCursor(0,0); lcd.print("Detecting Cup");
  lcd.setCursor(0,14); lcd.print("...");
  if (avoidVal == LOW) {
    lcd.clear(); lcd.print("Cup Placed");
    delay(2000);
    TurnAntiClockwise();
  }
}

// --- LCD-Texte ---
void CandyText1() {
  lcd.clear();
  lcd.setCursor(4,0); lcd.print("Pouring");
  lcd.setCursor(1,1); lcd.print("Little Candy");
}
void CandyText2() {
  lcd.clear();
  lcd.setCursor(4,0); lcd.print("Pouring");
  lcd.setCursor(3,1); lcd.print("Lot Candy");
}
void ThankYouText() {
  lcd.clear();
  lcd.setCursor(5,0); lcd.print("Thank");
  lcd.setCursor(6,1); lcd.print("You");
  delay(15);
  software_Reset();
}

// Software-Reset (Neustart ohne Hardware-Reset)
void software_Reset() {
  asm volatile ("jmp 0");
}

Schaltplan

Der Verdrahtungsplan zeigt die farblich codierten Verbindungen. Folgen Sie den Kabeln von Ende zu Ende.

DIY-Süßigkeiten-Spender mit Arduino: Intelligenter Snack-Automat bauen

Herstellungsprozess

  1. Zuckerstangen: Geschichte, Herstellung und die süße Wissenschaft hinter dem klassischen Weihnachtsgebäck
  2. Candy Corn: Von der Tradition zur modernen Produktion
  3. Jawbreaker: Geschichte, Zutaten und Handwerk eines klassischen Hartbonbons
  4. Zuckerwatte: Vom Klassiker zur modernen Produktionstechnologie
  5. Die süße Wissenschaft von Gummibonbons: Von der Geschichte zur modernen Produktion
  6. M&M's®: Von der Erfindung zur modernen Produktion
  7. Arduino-basiertes Schalter- & LED-Panel für Microsoft Flight Simulator 2020
  8. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  9. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  10. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung