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

Süßigkeitenspender

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Servo (180-Grad-Drehung)
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
SparkFun Drucktastenschalter 12 mm
× 1
PHPoC-Shield für Arduino
× 1
IR-Entfernungssensor
× 1
Netzschalter wechseln
× 1
Breadboard (generisch)
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Das Projekt

Dies ist eine einfache Möglichkeit, einen Bonbonspender zu erstellen, indem nur:IR-Sensor, Servo und Druckknopf verwendet werden. Es kann in folgende Schritte unterteilt werden:

  • Erstellen und Verwenden von Arduino Uno R3
  • Kodierung und Einrichtung des Arduino
  • Erstellen des Gehäuses und der mechanischen Teile
  • Elektronik einbauen
  • Testen und Verwenden

Hier ist ein kurzes Demonstrationsvideo:

Das Schreiben der Codierung war der schwierigste Teil für mich, da ich noch neu im Schreiben von Programmiersprachen bin, es aber nach mehreren Fehlern und der Hilfe von Herrn Google und Freunden schaffe. Das Schreiben von Codes ist die längste Zeit in diesem Teil des Projekts.

Vielen Dank an den Mann, der mich zu diesem Bonbonspender INSPIRIERT hat! Dies ist die vereinfachte Version von: https://www.hackster.io/gatoninja236/candy-dispenser-with-google-assistant-564724

Erstellen der Box und der mechanischen Teile

Dies ist der unterhaltsame Teil des Projekts. Ich habe mindestens einen ganzen Tag gebraucht, um es nach mehreren Fehlern und Teilen, die nicht passen, vollständig abzuschließen.

Schritt 1

Layout-Komponenten

Dies mag sehr chaotisch aussehen, aber dies ist der einfachste Weg, um jede Komponente auszusortieren und jedes Teil zu testen, um zu sehen, ob ein Fehler vorliegt. Ich habe verschiedene Farben von Drähten ausgelegt, damit es einfacher zu sehen ist. Ich habe alle Komponenten auf einem Stück Pappe ausgelegt und aussortiert, welches zuerst kommt.

Schritt 2

Die Box erstellen

Ich habe eine technische Zeichnung gezeichnet, wie die Box aussehen sollte. Die meisten Teile sind aus Karton und einige aus Acryl. Dann messe ich jedes Teil.

  • Vorder- und Rückseite =20cm x 16cm (Rückseite ist Acryl)
  • Seite - Seite =12cm x 16cm
  • Oben &Unten =20cm x 12cm

Schritt 3

So sieht es aus, nachdem Sie alle zusammengeklebt haben (zuerst mit Klebeband).

Dann schneide ich Stellen für die Komponenten aus:

  • LCD =7,2 cm x 2,5 cm
  • Knöpfe =1,2 cm x 1,2 cm

Für die Tasse:

  • Länge x Höhe =9cm x 12cm
  • Breite x Tiefe =9cm x 9cm

Vergessen Sie nicht, auch die Sensoren auszuschneiden:

Ich habe den Spender zu Stufen gemacht, damit die Bonbons nicht gleich herunterfallen:

Schritt 4

Ich legte das Steckbrett und Arduino hintereinander. Ich benutze Acryl, um sie zusammen zu kleben. Auf diese Weise wird viel Platz gespart.

Schritt 5

Beginnen Sie mit dem Anbringen der Komponenten auf der Platine. Ich beginne mit LCD und Tasten.

Als nächstes, nachdem ich alle Kabel an den Komponenten verkabelt hatte, befestigte ich sie in der Mitte der Box.

Anbringen des Servos:

So sieht es von hinten aus. Ich habe auch einen Netzschalter hinzugefügt, um den Dispenser mit dem Akku einzuschalten.

Schritt 6

Der fertige Look.

Code

  • Süßigkeitenspender
SüßigkeitenspenderArduino
//------LIBRARIES-----#include  #include #include //------BIBLIOTHEK--- --// Setzen Sie die LCD-Adresse auf 0x27 für eine Anzeige mit 16 Zeichen und 2 ZeilenLiquidCrystal_I2C lcd(0x27, 16, 2);Servo myservo;int pos =90; // Servostartpositionint buttonCLK =7; // buttonIm Uhrzeigersinn pinint buttonAntiCLK =6; // buttonAntiClockwise pin //int sensorPin =2; // IR-Sensor zum Anschließen an den digitalen Pin Nr. 2 / / Int sensorState =0; // Variable sensorState zum Speichern von Statistiken über den Status des Sensorint set =0;const int AvoidPin =5; // Der ir-Hindernissensor wird an Pin 5void setup () angeschlossen {lcd.begin (); // das LCD initialisieren lcd.clear (); myservo.attach(9); // Servo Digital 9 PinMode (buttonCLK, INPUT); pinMode (buttonAntiCLK, INPUT); pinMode (vermeiden Sie Pin, INPUT); // setze den AvoidPin als INPUT Serial.begin (9600); LCD-Rücklicht(); // Schalte das Schwarzlicht ein lcd.setCursor(3,0); lcd.print("Willkommen bei"); lcd.setCursor(3,1); lcd.print ("Candy-Land"); Verzögerung (2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Wie viel Süßigkeiten?"); lcd.setCursor(0,1); lcd.print ("Ein bisschen viel"); delay(5000);}void loop(){ //----------DIES IST DIE IF-FUNKTIONEN FÜR TASTEN---------- if(digitalRead(buttonCLK) ==HIGH ) // buttonClockwise wird gedrückt { //TurnClockwise(); //Sensorerkennung (); lcd.clear(); lcd.print ("Bitte Tasse platzieren"); Verzögerung (2000); lcd.clear(); set =set + 1; } if(digitalRead(buttonAntiCLK) ==HIGH) // buttonAntiClockwise wird gedrückt {//TurnAntiClockwise(); //Sensorerkennung (); lcd.clear(); lcd.print ("Bitte Tasse platzieren"); Verzögerung (2000); lcd.clear(); set =set + 2; } if(set ==1) {IRCLK(); } if(set ==2) {IRAntiCLK(); } //---------- DIES IST DIE WENN-FUNKTIONEN FÜR TASTEN----------} Void TurnClockwise () { Serial.println ( "Candy 1 wird ausgegeben"); CandyText1(); // Candy Type Text anzeigen for(pos =90; pos <180; pos +=1) // geht von 0 Grad auf 180 Grad { myservo.write(pos); // dem Servo sagen, dass es in der Variablen 'pos' delay (15) zur Position gehen soll; // wartet 15 ms, bis das Servo die Position erreicht hat} if (pos ==180) { delay (2000); DankeText(); // Dankestext anzeigen}} TurnAntiClockwise () {Serial.println ( "Candy 2 wird ausgegeben"); CandyText2(); // Candy Type Text anzeigen for(pos =90; pos <180; pos +=1) // geht von 0 Grad auf 180 Grad { myservo.write(pos); // dem Servo sagen, dass es in der Variablen 'pos' delay (20) zur Position gehen soll; // wartet 15 ms, bis das Servo die Position erreicht hat} if (pos ==180) { delay (3000); DankeText(); // Dankestext anzeigen}} IRCLK () { delay (1000); // eine Verzögerung von 1s erstellen Boolean AvoidVal =digitalRead (avoidPin); // den Wert von Pin4 lesen lcd.setCursor (0,0); lcd.print("Erkennungsbecher"); lcd.setCursor(0,14); lcd.print("..."); if (avoidVal ==LOW) // wenn der Wert LOW ist { lcd.clear (); lcd.print("Pokal platziert"); Verzögerung (2000); Im Uhrzeigersinn drehen(); }} IRAntiCLK () ungültig machen (Verzögerung (1000); // eine Verzögerung von 1s erstellen Boolean AvoidVal =digitalRead (avoidPin); // den Wert von Pin4 lesen lcd.setCursor (0,0); lcd.print("Erkennungsbecher"); lcd.setCursor(0,14); lcd.print("..."); if (avoidVal ==LOW) // wenn der Wert LOW ist { lcd.clear (); lcd.print("Pokal platziert"); Verzögerung (2000); Gegen den Uhrzeigersinn drehen(); aufrechtzuerhalten. aufrechtzuerhalten. CandyText1() {lcd.clear(); lcd.setCursor(4,0); lcd.print("Gießen"); lcd.setCursor(1,1); lcd.print("Kleine Süßigkeit");}void CandyText2(){lcd.clear(); lcd.setCursor(4,0); lcd.print("Gießen"); lcd.setCursor(3,1); lcd.print("Lot Candy");}void ThankYouText(){lcd.clear(); lcd.setCursor(5,0); lcd.print("Danke"); lcd.setCursor(6,1); lcd.print("Sie"); Verzögerung (15); software_Reset();}void software_Reset() // Startet das Programm neu, setzt aber die Peripheriegeräte und Register nicht zurück{ asm volatile ("jmp 0"); } 

Schaltpläne

Es sieht etwas kompliziert aus, aber folgen Sie der Farbverkabelung.

Herstellungsprozess

  1. Zuckerstange
  2. Süßigkeitsmais
  3. Kieferbrecher
  4. Zuckerwatte
  5. Gummy Candy
  6. M &M® Candy
  7. Schalter/LED-Panel mit Arduino für FS2020
  8. Arduino Spybot
  9. FlickMote
  10. Selbstgemachter Fernseher B-Gone