Inhaltsverzeichnis:
- Schritt 1: Kriterien
- Schritt 2: Gehäuse
- Schritt 3: Elektronik
- Schritt 4: Rechnungsprüfer
- Schritt 5: Testen
- Schritt 6: Elektronik zum Gehäuse
- Schritt 7: Abschlussprüfung
- Schritt 8: Arduino-Code + Links
Video: $1 Arduino-basierter Verkaufsautomat - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Unsere Idee bekamen wir von unserem Ingenieurslehrer - wir dachten alle, es wäre eine gute Idee, einen Automaten für unsere Klasse zu haben und er sagte - "cool, mach einen". Es stellte sich heraus, dass ein Verkaufsautomat ein großartiges Seniorenprojekt wäre und nach Fertigstellung als Spendenaktion für unser Engineering-Programm fungieren würde.
Es wird nicht als 1-Dollar-Verkaufsautomat bezeichnet, weil die Herstellung 1 US-Dollar kostet, sondern einfach, weil der Geldscheinprüfer ein älteres Modell ist, das nur 1-Dollar-Scheine akzeptiert:)
Schritt 1: Kriterien
Wir wollten einen Automaten, der auf einen Schreibtisch passt und nicht zu groß ist. Wir haben die Maße der Breite des Tisches genommen, um sicherzustellen, dass der Automat nicht vom Tisch hängt.
Schritt 2: Gehäuse
Wir machten unsere Box 19 Zoll breit und 17 Zoll lang und 25 Zoll hoch. Wir benutzten eine CNC-Maschine, um unser Holz zu schneiden. Wir haben Solidworks verwendet, um die Flächen zu entwerfen und sie dann in Zeichnungsdateitypen für unsere CNC-Software umgewandelt. Wir haben die Kanten geschliffen und dann mit 1 ¼” verschraubt. Die Frontplatte haben wir mit einem Scharnier befestigt und ¼“Schrauben verwendet, damit die Schrauben nicht auf die andere Seite durchgehen. Wir haben auch Acrylglas verwendet, das wir für die Regale und die Frontplatte geschnitten haben.
Schritt 3: Elektronik
Arduino
Wir haben ein Arduino Mega 2560 Board verwendet. Wir haben auch Adafruit Motor Boards verwendet, damit sie die Schrittmotoren betreiben können. Wir haben den Adafruits Pins hinzugefügt, damit sie sich miteinander verbinden können. Sie wurden übereinander gesteckt. Jeder kann 2 Motoren betreiben. Beachten Sie auch, dass der Jumper angeschlossen werden muss.
Desktop-Netzteil
Bestek ATX-Netzteil mit einem Adapter, um das Netzteil eingeschaltet zu halten. Der Adapter ist von sparkfun.com und liefert verschiedene Spannungen.
Spulen in Motoren
Wir haben Solidworks-Modelle hergestellt, um den Motor zu halten, die Spule zu greifen und die Spule entlang des Regals zu führen. Wir hatten unsere Coils von ebay bezogen und auf Maß geschnitten. Wir mussten auch 3 davon biegen, da wir keine 6 mit den geraden Enden zum Anschluss an die Spulenhalterung bekamen. Wir haben sie dann in 3D gedruckt und an der Spule und am Motor befestigt. Die Schrittmotoren, die wir hatten, steckten wir in eine Halterung. Es würde den Motor halten und die Spule entlang eines geraden Weges führen.
LCD und Tastatur
Wir haben eine Arduino-Tastatur und einen LCD-Bildschirm verwendet, die an ein 5-V-Kabel am Netzteiladapter für die Stromversorgung angeschlossen sind, und dann an das gleiche Arduino-Board
Verdrahtung
Wir empfehlen die Verwendung von 18 Gauge Drähten. In unserem Fall mussten wir Kompromisse eingehen, indem wir verschiedene Spurweiten verwenden, da uns 18 Spurweiten ausgegangen sind
LED-Leiste
Wir haben einen LED-Streifen verwendet, um die Maschine zu beleuchten. Wir haben es an ein 12-V-Kabel des Netzteils angeschlossen. Der von uns verwendete LED-Streifen hatte glücklicherweise ein + und -, was das Anschließen erleichterte.
Schritt 4: Rechnungsprüfer
Als Geldscheinprüfer haben wir einen Coinco BA30B verwendet. Es musste als Stromquelle direkt an die Wand angeschlossen werden. Wir haben es mit einem 24-Pin-Adapter von einem ATX-Netzteil kombiniert, um es anzuschließen und eine einfachere Verkabelung zu ermöglichen. Die Pinbelegungen, denen wir gefolgt sind, finden Sie unter folgendem Link:
techvalleyprojects.blogspot.com/2011/07/ard…
In unserem Fall mussten wir eine Halterung erstellen, um den Geldscheinprüfer anzuheben, da er sonst für unser Gehäuse zu niedrig wäre.
Schritt 5: Testen
Testen Sie zuerst die Elektronik außerhalb des Gehäuses, um sicherzustellen, dass die Komponenten funktionieren. Alle auftretenden Probleme sollten behoben werden, bevor sie in das Gehäuse eingesetzt werden.
Schritt 6: Elektronik zum Gehäuse
Sobald Sie die Elektronik getestet haben und mit den Ergebnissen zufrieden sind, beginnen Sie, sie in Ihr Gehäuse zu legen. Passen Sie die Drahtlängen so an, dass sie bequem hineinpassen.
Schritt 7: Abschlussprüfung
Nach dem Einsetzen in das Gehäuse testen Sie alles erneut. Wenn alles wie erwartet funktioniert, herzlichen Glückwunsch! Du hast einen Automaten gebaut.
Schritt 8: Arduino-Code + Links
Downloads:
Arduino-Code
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks Ordner mit Bauteildateien und Baugruppen
drive.google.com/drive/folders/1amZoypiWcZ…
Nur für den Fall, dass dem Link etwas passiert ist, wird hier der Arduino-Code vollständig angezeigt. Arduino-Code <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int SchrittePerRevolution = 200; konstantes Byte ROWS = 4; // vier Zeilen const Byte COLS = 3; //dreispaltige Zeichentasten[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Byte rowPins[ROWS] = {5, 6, 7, 8}; // mit den Zeilenbelegungen des Tastaturbytes verbinden colPins [COLS] = {2, 3, 4}; // mit den Spaltenpinbelegungen der Tastatur verbinden Tastatur Tastatur = Tastatur (makeKeymap(keys), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield(); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper(-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper(-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *myMotor3 = AFMS2.getStepper(-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper(-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield (0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper(-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper(-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper(-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper(-200, 2); Flüssigkristallanzeige (1, 11, 9, 10, 12, 13); // Digitale Pins, mit denen das LCD verbunden ist // Konstanten // // Pin für die Credit (-) Leitung des Geldscheinprüfers const int billValidator = 22;
// Variablen /
/ Aufzeichnung der Impulsdauer (Millisekunden) ohne Vorzeichen lange Dauer;
// Halten der gesamten aufgezeichneten Dollars int dollarCounter = 0; Void setup () {lcd.begin (16, 1); // lcd-Textkoordinaten einstellen lcd.print ("Nur $1 einfügen"); // Text setzen Serial.begin (9600); // Serielle Ports für die Kommunikation initialisieren. Serial.println ("Stepper-Test!"); // Geben Sie den Stepper Test in den seriellen Monitor ein, damit wir wissen, welcher Schrittmotor gedrückt wird. AFMS1.begin(); AFMS2.begin(); AFMS3.begin(); AFMS4.begin(); meinMotor1->setSpeed(100); // Stellen Sie die Motorgeschwindigkeit ein, mit der sie ausgeführt werden myMotor2-> setSpeed (100); meinMotor3->setSpeed(100); meinMotor4->setSpeed(100); meinMotor5->setSpeed(100); meinMotor6->setSpeed(100); meinMotor7->setSpeed(100); meinMotor8->setSpeed(100); // Pin-Setups für Geldscheinprüfer und Button pinMode (billValidator, INPUT); // Setzt den Banknotenakzeptor
// Serielle Ports für die Kommunikation initialisieren. Serial.begin (9600); Serial.println("Warten auf Dollar…"); aufrechtzuerhalten. Void Schleife () { { Dauer = pulseIn (billValidator, HIGH); //Startet die Suche nach der vom Banknotenprüfer empfangenen Impulslänge if (Dauer > 12000) //Wert, den er überschreiten muss, um als verarbeiteter und echter Dollar zu validieren { // Dollar zählen dollarCounter++; // Überprüfung auf Verständnis von Serial.print ("Dollar erkannt. / n Gesamt: "); // Neue Dollarzählung anzeigen Serial.println (dollarCounter); // Schleife, um zu warten, bis eine Taste gedrückt wird, während (Dauer > 12000) { char key = keyboard.getKey (); // Verbindet den Keyload und beginnt zu sehen, welcher gedrückt wird if (key != NO_KEY) {// sucht nach gedrücktem Key Serial.println (key); // Lässt uns wissen, welcher im seriellen Monitor gedrückt wurde} { if (key == '1') { // Wenn Taste 1 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '1'; myMotor8->step (580, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor8->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes }
if (key == '2') { //Wenn Taste 2 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '2'; myMotor7->step(400, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor7->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '3') { //Wenn Taste 3 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '3'; myMotor6->step(400, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor6->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '4') { //Wenn Taste 4 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '4'; myMotor5->step(180, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor5->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '5') { //Wenn Taste 5 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '5'; myMotor4->step(6900, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor4->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '6') { //Wenn Taste 6 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '6'; myMotor3->step (400, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor3->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '7') { //Wenn Taste 7 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '7'; myMotor7->step(400, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor7->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } if (key == '8') { //Wenn Taste 8 gedrückt wird, wird Folgendes ausgeführt: int keyPressed = key - '8'; myMotor8->step(400, VORWÄRTS, DOPPEL); // Startet den Motor und dreht sich um 350 Grad in Vorwärtsrichtung. meinMotor8->release(); // Befreit den Motor aus dem Zustand, in dem er sich selbst festhält. Rückkehr; // Geht zurück zum Anfang des Schleifencodes } } } } } } >>
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i