Innholdsfortegnelse:
- Trinn 1: Kriterier
- Trinn 2: Hylster
- Trinn 3: Elektronikk
- Trinn 4: Bill Acceptor
- Trinn 5: Testing
- Trinn 6: Elektronikk til foringsrør
- Trinn 7: Sluttesting
- Trinn 8: Arduino -kode + koblinger
Video: $ 1 Arduino-basert salgsautomat: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Vi fikk ideen vår fra ingeniørlæreren vår - vi trodde alle at det ville være en god idé å ha en automat til klassen vår, og han sa - "kult, lag en". Det viste seg at en salgsautomat ville være et flott seniorprosjekt og når den var ferdig ville fungere som en innsamling for vårt ingeniørprogram.
Det kalles en salgsautomat på $ 1, ikke fordi det koster $ 1 å lage, men ganske enkelt fordi regningsakseptoren er en eldre modell som bare tar $ 1 regninger:)
Trinn 1: Kriterier
Vi ønsket en salgsautomat som ville passe på et skrivebord og ikke være for høy. Vi tok dimensjonene på bredden på bordet for å sikre at vi ikke hadde automaten hengende av bordet.
Trinn 2: Hylster
Vi lagde boksen vår 19 tommer bred og 17 centimeter lang og 25 centimeter høy. Vi brukte en CNC -maskin til å kutte treverket vårt. Vi brukte solidworks til å designe ansiktene og konverterte dem deretter til tegnefiltyper for vår CNC -programvare. Vi pusset kantene og skrudde dem deretter inn med 1 ¼”. Vi festet frontpanelet med et hengsel og brukte ¼ “skruer, slik at skruene ikke skulle gå gjennom til den andre siden. Vi brukte også akrylglass som vi kuttet til hyllene og frontpanelet.
Trinn 3: Elektronikk
Arduino
Vi brukte et Arduino Mega 2560 Board. Vi brukte også Adafruit Motor Boards slik at de kan kjøre trinnmotorene. Vi la til pins til adafruitene for at de skulle koble seg til hverandre. De ble satt dem oppå hverandre. Hver enkelt kan kjøre 2 motorer. Vær også oppmerksom på at jumperen må være tilkoblet.
Desktop strømforsyning
Bestek ATX Strømforsyning ved hjelp av en adapter for å holde strømforsyningen på. Adapteren er fra sparkfun.com og gir forskjellige spenninger.
Spoler seg inn i motorer
Vi laget solidworks -modeller for å holde motoren, ta tak i spolen og lede spolen langs hyllen. Vi hadde oppnådd spolene våre fra ebay og kuttet dem til dimensjon. Vi måtte også bøye 3 av dem siden vi ikke fikk 6 med de rette endene for å koble til spolefeste. Vi trykte dem deretter 3D og festet dem til spolen og motoren. Steppermotorene vi hadde, satte vi inn i et feste. Den ville holde motoren og lede spolen langs en rett bane.
LCD og tastatur
Vi brukte et Arduino -tastatur og LCD -skjerm koblet til en 5V -ledning på strømforsyningsadapteren for strøm og deretter til det samme Arduino -kortet
Kabling
Vi anbefaler bruk av 18 gauge ledninger. I vårt tilfelle måtte vi gå på kompromiss ved å bruke forskjellige målere fordi vi gikk tom for 18 målere
LED -stripe
Vi brukte en LED -stripe for å lyse opp maskinen. Vi koblet den til en 12V -ledning på strømforsyningsadapteren. LED -stripen vi brukte hadde heldigvis en + og - på den som gjorde prosessen med å koble den lettere.
Trinn 4: Bill Acceptor
Vi brukte en Coinco BA30B som vår godkjennelse av regninger. Den måtte kobles direkte til veggen som en strømkilde. Vi kombinerte den med en 24-pinners adapter fra en atx strømforsyning for å koble til og muliggjøre enklere ledninger. Pinoutene vi fulgte finnes i følgende lenke:
techvalleyprojects.blogspot.com/2011/07/ard…
I vårt tilfelle måtte vi lage et feste for å heve regningsakseptoren fordi det ellers ville være for lavt for huset vårt.
Trinn 5: Testing
Test elektronikken utenfor foringsrøret først for å sikre at komponentene fungerer. Eventuelle problemer som måtte oppstå bør løses før du plasserer dem i foringsrøret.
Trinn 6: Elektronikk til foringsrør
Når du har testet elektronikken og er fornøyd med resultatene, begynner du å plassere dem i kabinettet. Juster ledningslengdene slik at de sitter godt inne.
Trinn 7: Sluttesting
Når alt er plassert i foringsrøret, tester du alt igjen. Hvis alt fungerer som forventet, gratulerer! Du har laget en automat.
Trinn 8: Arduino -kode + koblinger
Nedlastinger:
Arduino -koden
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks -mappe med delfiler og montering
drive.google.com/drive/folders/1amZoypiWcZ…
Bare i tilfelle noe har skjedd med lenken, her er arduino -koden fullstendig vist. Arduino -kode <<
#include #include #include "Arduino.h" #include #include #include "-verktøy/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte RADER = 4; // fire rader const byte COLS = 3; // tre kolonner tegnetaster [RADER] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // koble til radutklippene til tastaturbyte colPins [COLS] = {2, 3, 4}; // koble til kolonnen pinouts på tastaturet Tastatur tastatur = Tastatur (makeKeymap (nøkler), 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); // Digitale pinner LCD-en er koblet til // Konstanter // // pin for bill validator's credit (-) line const int billValidator = 22;
// Variabler /
/ registrering av varigheten av puls (millisekunder) usignert lang varighet;
// å holde den totale dollar registrert int dollarCounter = 0; ugyldig oppsett () {lcd.begin (16, 1); // sett lcd -tekstkoordinater lcd.print ("Sett bare inn $ 1"); // Sett tekst Serial.begin (9600); // Initialiser serielle porter for kommunikasjon. Serial.println ("Stepper test!"); // Skriv ut trinntest i seriell monitor slik at vi vet hvilken trinnmotor som trykkes inn. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Angi motorhastighet som de skal kjøre myMotor2-> setSpeed (100) med; myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pin -oppsett for regningsvaliderer og knapp pinMode (billValidator, INPUT); // Setter billaccepter
// Initialiser serielle porter for kommunikasjon. Serial.begin (9600); Serial.println ("Venter på dollar …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Begynner å lete etter pulslengden mottatt fra regningsakseptoren hvis (varighet> 12000) // Verdien som den må overgå for å validere som en behandlet og autentisk dollar {// Count dollar dollarCounter ++; // Kontrollerer om Serial.print er forstått ("Dollar oppdaget. / N Totalt:"); // Vis nytt dollartall Serial.println (dollarCounter); // loop for å vente til en knapp trykkes mens (varighet> 12000) {char key = keypad.getKey (); // får tastaturet koblet til og begynner å se hvilken som trykkes hvis (tast! = NO_KEY) {// vil lete etter tastetrykk Serial.println (tast); // gir oss beskjed om hvilken som ble trykket på den serielle skjermen} {if (key == '1') {// Hvis tast 1 trykkes, gjør følgende: int keyPressed = key - '1'; myMotor8-> trinn (580, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning forover. myMotor8-> utgivelse (); // Frigjør motoren fra å holde seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden}
if (key == '2') {// Hvis tast 2 trykkes, gjør følgende: int keyPressed = key - '2'; myMotor7-> trinn (400, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor7-> utgivelse (); // Frigjør motoren fra at den holder seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '3') {// Hvis tast 3 trykkes, gjør følgende: int keyPressed = key - '3'; myMotor6-> trinn (400, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor6-> utgivelse (); // Frigjør motoren fra at den holder seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '4') {// Hvis tast 4 trykkes, gjør følgende: int keyPressed = key - '4'; myMotor5-> trinn (180, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning forover. myMotor5-> utgivelse (); // Frigjør motoren fra å holde seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '5') {// Hvis tast 5 trykkes, gjør følgende: int keyPressed = key - '5'; myMotor4-> trinn (6900, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor4-> utgivelse (); // Frigjør motoren fra å holde seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '6') {// Hvis tast 6 trykkes, gjør følgende: int keyPressed = key - '6'; myMotor3-> trinn (400, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor3-> release (); // Frigjør motoren fra å holde seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '7') {// Hvis tast 7 trykkes, gjør følgende: int keyPressed = key - '7'; myMotor7-> trinn (400, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor7-> utgivelse (); // Frigjør motoren fra at den holder seg på plass. komme tilbake; // Går tilbake til begynnelsen av sløyfekoden} if (key == '8') {// Hvis tast 8 trykkes, gjør følgende: int keyPressed = key - '8'; myMotor8-> trinn (400, FREM, DOBBELT); // Starter motoren og roterer 350 grader i retning fremover. myMotor8-> utgivelse (); // Frigjør motoren fra å holde seg på plass. komme tilbake; // Går tilbake til begynnelsen av løkkoden}}}}}}} >>
Anbefalt:
DIY salgsautomat: 8 trinn
DIY salgsautomat: For tre år siden begynte jeg å studere på en elektronisk teknisk høyskole. Et av fakta som overrasket meg på den tiden var antall røykere fordi halvparten av elevene i pausene forlot veggene på skolen for å losse følelsene sine etter
Salgsautomat med skala for å bekrefte Itemdrop (Raspberry Pi): 5 trinn
Salgsautomat med skala for å bekrefte Itemdrop (Raspberry Pi): Velkommen medprodusent, for et skoleprosjekt bestemte jeg meg for å lage en snackautomat. Vår oppgave var å lage en rekreasjonsmessig enhet som brukte minst 3 sensorer og 1 aktuator. Jeg gikk for å lage en automat, delvis fordi jeg hadde tilgang til noen
Hjemløs salgsautomat: 3 trinn
Hjemløs salgsautomat: Jeg prøver å forhindre sult i samfunnet vårt. Det er omtrent 3000+ mennesker i Oklahoma som opplever hjemløshet. Vi valgte å konspirere en løsning for dette problemet for å forbedre og vokse samfunnet vårt som helhet. Et stort antall mennesker i
Løgnedetektor+salgsautomat: Med Arduino Leonardo: 6 trinn
Løgnedetektor+salgsautomat: Med Arduino Leonardo: Denne løgnedetektoren er ikke din vanlige gjennomsnittlige løgnedetektor, det er en løgnedetektor som har en salgsautomat festet til den. I utgangspunktet er det slik det fungerer. I starten vil spilleren trykke på en knapp som starter maskinen, og før løgnen
Salgsautomat -- godteridispenser -- Arduino Bluetooth -kontrollert -- DIY: 11 trinn (med bilder)
Salgsautomat || godteridispenser || Arduino Bluetooth -kontrollert || DIY: I denne instruksjonsfilen viser jeg hvordan du bygger en salgsautomat ved hjelp av en Arduino. KOMMENTER DETTE DU TENKER OM DENNE INSTRUKTIBELE, SÅ AT JEG KAN FORBEDRE I MIN YTTERLIGERE INSTRUKTABLER Se på videoopplæringen for en bedre forståelse av virksomheten