Innehållsförteckning:
- Steg 1: Kriterier
- Steg 2: Hölje
- Steg 3: Elektronik
- Steg 4: Bill Acceptor
- Steg 5: Testning
- Steg 6: Elektronik till hölje
- Steg 7: Slutprovning
- Steg 8: Arduino -kod + länkar
Video: $ 1 Arduino-baserad varuautomat: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Vi fick vår idé från vår ingenjörslärare - vi trodde alla att det skulle vara en bra idé att ha en varuautomat till vår klass och han sa - "cool, make one". Det visade sig att en varuautomat skulle vara ett bra seniorprojekt och när den var klar skulle fungera som en insamling för vårt ingenjörsprogram.
Det kallas en varuautomat på $ 1, inte för att det kostar $ 1 att göra, utan helt enkelt för att räkningsacceptören är en äldre modell som bara tar $ 1 räkningar:)
Steg 1: Kriterier
Vi ville ha en varuautomat som skulle passa ovanpå ett skrivbord och inte vara för hög. Vi tog måtten på bordets bredd för att se till att vi inte hade automaten hängande från bordet.
Steg 2: Hölje
Vi gjorde vår låda 19 tum bred och 17 tum lång och 25 tum lång. Vi använde en CNC -maskin för att skära vårt trä. Vi använde solidworks för att designa ansikten och konverterade dem sedan till ritfiltyper för vår CNC -programvara. Vi slipade kanterna och skruvade sedan in dem med 1 ¼”. Vi fäst frontpanelen med ett gångjärn och använde ¼ “skruvar, så att skruvarna inte skulle gå igenom till andra sidan. Vi använde också akrylglas som vi klippte till hyllorna och frontpanelen.
Steg 3: Elektronik
Arduino
Vi använde en Arduino Mega 2560 Board. Vi använde också Adafruit Motor Boards så att de kan köra stegmotorerna. Vi lade till nålar på adafruiten för att de skulle kunna ansluta till varandra. De sattes in ovanpå varandra. Var och en kan köra 2 motorer. Observera också att bygeln måste vara ansluten.
Stationär strömförsörjning
Bestek ATX -strömförsörjning med hjälp av en adapter för att hålla strömförsörjningen påslagen. Adaptern är från sparkfun.com och ger olika spänningar.
Spolar in i motorer
Vi gjorde solidworks -modeller för att hålla motorn, ta tag i spolen och styra spolen längs hyllan. Vi hade uppnått våra spolar från ebay och klippt dem till dimension. Vi var också tvungna att böja 3 av dem eftersom vi inte fick 6 med de raka ändarna för att ansluta till spolfästet. Vi skrev sedan ut dem i 3D och fäst dem på spolen och motorn. Stegmotorerna vi hade satte vi i ett fäste. Det skulle hålla motorn och leda spolen längs en rak väg.
LCD och knappsats
Vi använde en Arduino -knappsats och en LCD -skärm ansluten till en 5V -kabel på nätadaptern för ström och sedan till samma Arduino -kort
Kabeldragning
Vi rekommenderar användning av 18 gauge -trådar. I vårt fall var vi tvungna att kompromissa genom att använda olika mätare eftersom vi fick slut på 18 mätare
LED -remsa
Vi använde en LED -remsa för att tända maskinen. Vi kopplade den till en 12V -kabel på nätadaptern. LED -remsan som vi använde hade tack och lov en + och - på den vilket gjorde processen att ansluta den enklare.
Steg 4: Bill Acceptor
Vi använde en Coinco BA30B som vår fakturaacceptor. Den måste anslutas direkt till väggen som en strömkälla. Vi kombinerade den med en 24-polig adapter från en atx-strömförsörjning för att ansluta och möjliggöra enklare kabeldragning. Pinouts vi följde finns i följande länk:
techvalleyprojects.blogspot.com/2011/07/ard…
I vårt fall var vi tvungna att skapa ett fäste för att höja räkningsacceptorn eftersom det annars skulle vara för lågt för vårt hölje.
Steg 5: Testning
Testa först elektroniken utanför höljet för att säkerställa att komponenterna fungerar. Alla problem som uppstår bör åtgärdas innan de placeras i höljet.
Steg 6: Elektronik till hölje
När du har testat elektroniken och är nöjd med deras resultat, börja placera dem i ditt hölje. Justera trådlängderna så att de sitter bekvämt inuti.
Steg 7: Slutprovning
När du har placerat det i höljet, testa allt igen. Om allt fungerar som du förväntat dig, grattis! Du gjorde en varuautomat.
Steg 8: Arduino -kod + länkar
Nedladdningar:
Arduino -kod
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks -mapp med delfiler och montering
drive.google.com/drive/folders/1amZoypiWcZ…
Bara om något har hänt med länken, här är arduino -koden som visas helt. Arduino -kod <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte RADER = 4; // fyra rader const byte COLS = 3; // tre kolumner char nycklar [RADER] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // ansluta till radnålarna för knappsatsens byte colPins [COLS] = {2, 3, 4}; // Anslut till knapparna i knapparna på knappsatsen Knappsatsens knappsats = Knappsats (makeKeymap (tangenter), 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); LiquidCrystal lcd (1, 11, 9, 10, 12, 13); // Digitala stift som LCD-skärmen är ansluten till // Konstanter // // pin för räknevaliderarens kredit (-) rad const int billValidator = 22;
// Variabler /
/ registrering av pulsens varaktighet (millisekunder) osignerad lång varaktighet;
// håller den totala dollarn registrerad int dollarCounter = 0; void setup () {lcd.begin (16, 1); // ange lcd -textkoordinater lcd.print ("Infoga endast $ 1"); // Ställ in text Serial.begin (9600); // Initiera seriella portar för kommunikation. Serial.println ("Stepper test!"); // Skriv ut Stepper Test i seriemonitorn så att vi vet vilken stegmotor som trycks in. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Ställ in motorhastigheten med vilken de ska köra myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pin -inställningar för bill validator och knapp pinMode (billValidator, INPUT); // Ställer billacceptern
// Initiera seriella portar för kommunikation. Serial.begin (9600); Serial.println ("Väntar på dollar …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Börjar leta efter pulslängden som tas emot från räkningsacceptorn om (varaktighet> 12000) // Värdet som den måste överstiga för att kunna valideras som en bearbetad och autentisk dollar {// Count dollar dollarCounter ++; // Kontrollerar om Serial.print förstår ("Dollar upptäckt. / N Totalt:"); // Visa nytt dollarantal Serial.println (dollarCounter); // loop för att vänta tills en knapp trycks medan (varaktighet> 12000) {char key = keypad.getKey (); // får tangentlänken ansluten och börjar se vilken som trycks om (key! = NO_KEY) {// kommer att leta efter tangenttryckt Serial.println (key); // låter oss veta vilken som trycktes i seriell bildskärm} {if (key == '1') {// Om tangent 1 trycks in, gör följande: int keyPressed = key - '1'; myMotor8-> steg (580, FRAM, DUBBEL); // Startar motorn och roterar 350 grader i riktning framåt. myMotor8-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden}
if (key == '2') {// Om tangent 2 trycks in, gör följande: int keyPressed = key - '2'; myMotor7-> steg (400, FRAMÅT, DUBBELT); // Startar motorn och roterar 350 grader i riktning framåt. myMotor7-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden} if (key == '3') {// Om tangent 3 trycks, gör följande: int keyPressed = key - '3'; myMotor6-> steg (400, FRAMÅT, DOBBELT); // Startar motorn och roterar 350 grader i riktning framåt. myMotor6-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden} if (key == '4') {// Om tangent 4 trycks, gör följande: int keyPressed = key - '4'; myMotor5-> steg (180, FRAM, DUBBEL); // Startar motorn och roterar 350 grader i riktning framåt. myMotor5-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loopkoden} if (key == '5') {// Om tangent 5 trycks in, gör följande: int keyPressed = key - '5'; myMotor4-> steg (6900, FRAMÅT, DOBBELT); // Startar motorn och roterar 350 grader i riktning framåt. myMotor4-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden} if (key == '6') {// Om tangent 6 trycks, gör följande: int keyPressed = key - '6'; myMotor3-> steg (400, FRAMÅT, DUBBELT); // Startar motorn och roterar 350 grader framåt. myMotor3-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden} if (key == '7') {// Om tangent 7 trycks in, gör följande: int keyPressed = key - '7'; myMotor7-> steg (400, FRAMÅT, DUBBELT); // Startar motorn och roterar 350 grader i riktning framåt. myMotor7-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden} if (key == '8') {// Om tangent 8 trycks in, gör följande: int keyPressed = key - '8'; myMotor8-> steg (400, FRAMÅT, DOBBELT); // Startar motorn och roterar 350 grader i riktning framåt. myMotor8-> release (); // Släpper motorn från att hålla sig på plats. lämna tillbaka; // Går tillbaka till början av loop -koden}}}}}} >>
Rekommenderad:
DIY -varuautomat: 8 steg
DIY -varuautomat: För tre år sedan började jag studera på en elektronisk teknisk högskola. En av de fakta som överraskade mig vid den tiden var antalet rökare eftersom hälften av eleverna under pauser lämnade skolans väggar för att ladda sina känslor efter
Varuautomat med skala för att bekräfta Itemdrop (Raspberry Pi): 5 steg
Varuautomat med skala för att bekräfta Itemdrop (Raspberry Pi): Välkommen medmakare, för ett skolprojekt bestämde jag mig för att göra en snackautomat. Vårt uppdrag var att skapa en återskapande enhet som använde minst 3 sensorer och 1 ställdon. Jag gick för att göra en varuautomat delvis för att jag hade tillgång till några
Ljuddetektor+varuautomat: Med Arduino Leonardo: 6 steg
Ljuddetektor+varuautomat: Med Arduino Leonardo: Denna ljuddetektor är inte din vanliga genomsnittliga lögndetektor, det är en ljuddetektor som har en varuautomat ansluten till den. I grund och botten är det så här det fungerar. I början kommer spelaren att trycka på en knapp som startar maskinen, och innan lögnen
Servo Arduino varuautomat: 8 steg
Servo Arduino-varuautomat: Denna automat har tre snickersbarer i rolig storlek och kommer att sälja en i taget med Arduino Uno och en servomotor
Varuautomat -- godisautomat -- Arduino Bluetooth -kontrollerad -- DIY: 11 steg (med bilder)
Varuautomat || godisautomat || Arduino Bluetooth -kontrollerad || DIY: I denna instruerbara visar jag hur man bygger en varuautomat med en Arduino. KOMMENTERA VAD DU TÄNKER OM DENNA INSTRUKTIBELA, SÅ ATT JAG KAN FÖRBÄTTRA I MIN YTTERLIGARE INSTRUKTABLER Ta en titt på videohandledningen för en bättre förståelse av företaget