Sadržaj:
- Korak 1: Kriterijumi
- Korak 2: Kućište
- Korak 3: Elektronika
- Korak 4: Prihvatatelj računa
- Korak 5: Testiranje
- Korak 6: Elektronika do kućišta
- Korak 7: Završno testiranje
- Korak 8: Arduino kod + veze
Video: Automat za prodaju na bazi Arduina: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ideju smo dobili od našeg učitelja inženjeringa - svi smo mislili da bi bilo dobro imati automat za prodaju za naš razred, a on je rekao - "cool, make one". Ispostavilo se da bi automat za prodaju bio odličan stariji projekt i kada bi bio dovršen funkcionirao bi kao prikupljač sredstava za naš inženjerski program.
Naziva se automat za prodaju od 1 USD ne zato što izrada košta 1 USD, već jednostavno zato što je akceptor stariji model koji uzima samo novčanice od 1 USD:)
Korak 1: Kriterijumi
Htjeli smo automat za prodaju koji bi stajao na vrhu stola i ne bi bio previsok. Uzeli smo dimenzije širine stola kako bismo bili sigurni da automat nije visio sa stola.
Korak 2: Kućište
Našu kutiju smo napravili širine 19 inča, dužine 17 inča i visine 25 inča. Za rezanje drva koristili smo CNC stroj. Koristili smo solidworks za oblikovanje lica, a zatim ih pretvorili u datoteke za crtanje za naš CNC softver. Brusili smo rubove, a zatim ih zavrnuli sa 1 ¼”. Prednju ploču smo pričvrstili šarkama i upotrijebili vijke ¼ “, kako vijci ne bi prošli na drugu stranu. Koristili smo i akrilno staklo koje smo izrezali za police i prednju ploču.
Korak 3: Elektronika
Arduino
Koristili smo Arduino Mega 2560 ploču. Koristili smo i Adafruit motorne ploče kako bi mogle pokretati koračne motore. Dodali smo pribadače adafruitima kako bi se međusobno povezali. Umetali su ih jedan na drugi. Svaki može pokrenuti 2 motora. Takođe, imajte na umu da kratkospojnik mora biti povezan.
Stono napajanje
Bestek ATX napajanje pomoću adaptera za uključivanje napajanja. Adapter je sa sparkfun.com i pruža različite napone.
Zamotani u motore
Napravili smo čvrste modele za držanje motora, hvatanje zavojnice i vođenje zavojnice uz policu. Dobili smo naše zavojnice s ebaya i izrezali ih na dimenziju. Također smo morali saviti 3 od njih jer nismo dobili 6 ravnih krajeva za spajanje na držač zavojnice. Zatim smo ih 3D štampali i pričvrstili na zavojnicu i motor. Stepper motore koje smo imali stavili smo u nosač. Držao bi motor i vodio zavojnicu ravnom stazom.
LCD i tastatura
Za napajanje smo koristili Arduino tastaturu i LCD ekran spojen na 5V kabl na adapteru za napajanje, a zatim na istu Arduino ploču
Ožičenje
Preporučujemo upotrebu žica promjera 18. U našem slučaju morali smo napraviti kompromis koristeći različite mjerače jer nam je ponestalo 18 mjerača
LED traka
Za osvjetljavanje mašine koristili smo LED traku. Spojili smo ga na 12V kabel na adapteru za napajanje. LED traka koju smo koristili na sreću je imala + i - na sebi što je olakšalo proces povezivanja.
Korak 4: Prihvatatelj računa
Koristili smo Coinco BA30B za prihvatanje računa. Morao je biti spojen direktno na zid kao izvor energije. Kombinirali smo ga s 24-pinskim adapterom iz atx napajanja kako bismo ga priključili i omogućili lakše ožičenje. Ispisi koje smo pratili nalaze se na sljedećoj poveznici:
techvalleyprojects.blogspot.com/2011/07/ard…
U našem slučaju morali smo stvoriti nosač za podizanje akceptora jer bi u protivnom to bilo prenisko za naše kućište.
Korak 5: Testiranje
Prvo testirajte elektroniku izvan kućišta kako biste bili sigurni da komponente rade. Bilo koji problem koji se pojavi treba riješiti prije nego što ga postavite u kućište.
Korak 6: Elektronika do kućišta
Nakon što isprobate elektroniku i budete zadovoljni rezultatima, počnite je stavljati u kućište. Podesite dužine žice tako da udobno stanu unutra.
Korak 7: Završno testiranje
Nakon postavljanja u kućište, sve ponovo testirajte. Ako sve radi kako ste očekivali, čestitamo! Napravili ste automat za prodaju.
Korak 8: Arduino kod + veze
Preuzimanja:
Arduino kod
drive.google.com/drive/folders/1oC4MhOcMFy…
Mapa SolidWorks sa datotekama dijelova i sklopom
drive.google.com/drive/folders/1amZoypiWcZ…
U slučaju da se nešto dogodilo s vezom, evo arduino koda u potpunosti prikazanog. Arduino kod <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const bajt ROWS = 4; // četiri reda const byte COLS = 3; // tri stupca char ključevi [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; bajtovi rowPins [ROWS] = {5, 6, 7, 8}; // povezivanje sa pinout -ovima reda bajta tastature colPins [COLS] = {2, 3, 4}; // povezivanje sa pinout -ovima kolone tastature Tastatura tastature = tastatura (makeKeymap (tasteri), 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); // Digitalni pinovi na koje je LCD povezan // Konstante // // pin za kredit kreditora (-) linije const int billValidator = 22;
// Varijable /
/ snimanje trajanja impulsa (milisekunde) nepotpisanog dugog trajanja;
// držanje ukupnih dolara zabilježenih int dollarCounter = 0; void setup () {lcd.begin (16, 1); // postavlja lcd tekstualne koordinate lcd.print ("Umetni samo 1 USD"); // Postavljanje teksta Serial.begin (9600); // Pokretanje serijskih portova za komunikaciju. Serial.println ("Stepper test!"); // Otkucajte Stepper Test u serijskom monitoru tako da znamo koji je stepper motor pritisnut. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Postavljanje brzine motora pri kojoj će pokretati myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pin postavke za validator računa i dugme pinMode (billValidator, INPUT); // Postavlja billaccepter
// Pokretanje serijskih portova za komunikaciju. Serial.begin (9600); Serial.println ("Čekanje na dolar …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Počinje tražiti dužinu impulsa primljenu od akceptora ako (trajanje> 12000) // Vrijednost koju mora premašiti kako bi se potvrdio kao obrađen i autentičan dolar {// Broji dolar dollarCounter ++; // Provjera razumijevanja Serial.print ("Dollar otkriven. / N Ukupno:"); // Prikaz novog broja dolara Serial.println (dollarCounter); // petlja kako bi se čekalo dok se dugme ne pritisne while (trajanje> 12000) {char key = keypad.getKey (); // povezuje tipkovnicu i počinje vidjeti koja je pritisnuta ako (tipka! = NO_KEY) {// će tražiti pritisnutu tipku Serial.println (tipka); // omogućava nam da znamo koji je pritisnut u serijskom monitoru} {if (key == '1') {// Ako je pritisnut taster 1, radi sledeće: int keyPressed = key - '1'; myMotor8-> korak (580, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor8-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje}
if (key == '2') {// Ako je taster 2 pritisnut, radi sledeće: int keyPressed = key - '2'; myMotor7-> korak (400, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor7-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '3') {// Ako je tipka 3 pritisnuta, čini sljedeće: int keyPressed = key - '3'; myMotor6-> korak (400, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor6-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '4') {// Ako je tipka 4 pritisnuta, radi sljedeće: int keyPressed = key - '4'; myMotor5-> korak (180, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor5-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '5') {// Ako je tipka 5 pritisnuta, radi sljedeće: int keyPressed = key - '5'; myMotor4-> korak (6900, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor4-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '6') {// Ako je tipka 6 pritisnuta, radi sljedeće: int keyPressed = key - '6'; myMotor3-> korak (400, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor3-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '7') {// Ako je tipka 7 pritisnuta, radi sljedeće: int keyPressed = key - '7'; myMotor7-> korak (400, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor7-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje} if (key == '8') {// Ako je tipka 8 pritisnuta, radi sljedeće: int keyPressed = key - '8'; myMotor8-> korak (400, NAPRIJED, DVOJNO); // Pokreće motor i okreće se 350 stupnjeva u smjeru prema naprijed. myMotor8-> release (); // Oslobađa motor iz stanja da se drži na mjestu. return; // Vraća se na početak koda petlje}}}}}} >>
Preporučuje se:
Automat za prodaju vlastitim rukama: 8 koraka
Automatski automat: Prije tri godine počeo sam studirati na elektronskom tehničkom fakultetu. Jedna od činjenica koje su me tada iznenadile bio je broj pušača jer je na pauzama polovica učenika napustila zidove škole kako bi rasteretila emocije nakon
Infracrveni termometar na bazi Arduina - IR termometar na bazi Arduina: 4 koraka
Infracrveni termometar na bazi Arduina | Infracrveni termometar pomoću Arduina: Zdravo momci u ovim uputama napravit ćemo beskontaktni termometar pomoću arduina. Budući da je ponekad temperatura tekućine/krutine previsoka ili preniska, a onda je teško stupiti u kontakt s njom i pročitati je temperatura u tom prizoru
Detektor laži+automat za prodaju: S Arduinom Leonardom: 6 koraka
Detektor laži+automat za prodaju: S Arduinom Leonardom: Ovaj detektor laži nije vaš uobičajeni prosječni detektor laži, to je detektor laži na koji je priključen prodajni automat. U osnovi, ovako to funkcionira. Na početku, igrač će pritisnuti dugme koje će pokrenuti mašinu, a prije laganja
Servo Arduino automat za prodaju: 8 koraka
Servo Arduino automat za prodaju: Ovaj automat sadrži tri šnicle zabavne veličine i prodavat će jednu po jednu koristeći Arduino Uno i servo motor
Ormarić sa sodom - automat za prodaju: 16 koraka (sa slikama)
Soda ormar - automat za prodaju: ormarići jednostavno nisu ono što su bili. S obzirom na to da se toliko škola prebacuje na elektroničke uređaje za knjige, ormarići postaju manje prostor za vaše knjige, a više pitanje: "Što ću s ovim?" Što ako biste mogli koristiti to