Cuprins:
- Pasul 1: Criterii
- Pasul 2: Carcasă
- Pasul 3: Electronică
- Pasul 4: Acceptant factură
- Pasul 5: Testare
- Pasul 6: Electronică la carcasă
- Pasul 7: Testarea finală
- Pasul 8: Cod Arduino + Linkuri
Video: Distribuitor automat Arduino de 1 USD: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Ne-am luat ideea de la profesorul nostru de inginerie - ne-am gândit cu toții că ar fi o idee bună să avem un distribuitor automat pentru clasa noastră și el a spus - „cool, fă unul”. S-a dovedit că o mașină automată ar fi un mare proiect senior și, atunci când va fi finalizată, ar funcționa ca o strângere de fonduri pentru programul nostru de inginerie.
Se numește automat automat de 1 USD, nu pentru că costă 1 USD, ci pur și simplu pentru că acceptorul de facturi este un model mai vechi care acceptă doar facturi de 1 $:)
Pasul 1: Criterii
Am vrut un distribuitor automat care să se potrivească deasupra unui birou și să nu fie prea înalt. Am luat dimensiunile lățimii mesei pentru a ne asigura că nu avem automatul suspendat de masă.
Pasul 2: Carcasă
Ne-am făcut cutia de 19 inci lățime pe 17 inci lungime pe 25 inci înălțime. Am folosit o mașină CNC pentru a tăia lemnul nostru. Am folosit solidworks pentru a proiecta fețele și apoi le-am convertit în tipuri de fișiere de desen pentru software-ul nostru CNC. Am șlefuit marginile și le-am înșurubat cu 1 ¼”. Am atașat panoul frontal cu o balama și am folosit șuruburi ¼ „, astfel încât șuruburile să nu treacă de cealaltă parte. De asemenea, am folosit sticlă acrilică pe care am tăiat-o pentru rafturi și panoul frontal.
Pasul 3: Electronică
Arduino
Am folosit o placă Arduino Mega 2560. De asemenea, am folosit placi de motor Adafruit, astfel încât acestea să poată rula motoarele pas cu pas. Am adăugat pini la adafruit pentru ca aceștia să se conecteze între ei. Le-au fost inserate una peste alta. Fiecare poate rula 2 motoare. De asemenea, vă rugăm să rețineți că jumperul trebuie conectat.
Sursă de alimentare pentru desktop
Bestek ATX Sursa de alimentare utilizând un adaptor pentru a menține sursa de alimentare pornită. Adaptorul este de la sparkfun.com și oferă diverse tensiuni.
Bobine în motoare
Am realizat modele solidworks pentru a ține motorul, a apuca bobina și a ghida bobina de-a lungul raftului. Ne-am atins colacele de pe eBay și le-am redus la dimensiuni. De asemenea, a trebuit să îndoim 3 dintre ele, deoarece nu am obținut 6 cu capetele drepte pentru a ne conecta la suportul bobinei. Apoi le-am imprimat 3D și le-am atașat la bobină și motor. Motoarele cu pas pe care le-am avut, le-am pus într-o montură. Ar ține motorul și ar ghida bobina de-a lungul unei căi drepte.
LCD și tastatură
Am folosit o tastatură Arduino și un ecran LCD conectat la un cablu de 5V pe adaptorul de alimentare pentru alimentare și apoi la aceeași placă Arduino
Cablare
Vă recomandăm să folosiți fire de calibru 18. În cazul nostru, a trebuit să facem compromisuri folosind diferite calibre, deoarece am rămas fără 18 calibre
Benzi LED
Am folosit o bandă LED pentru a aprinde mașina. L-am conectat la un cablu de 12V de pe adaptorul de alimentare. Banda LED pe care am folosit-o din fericire avea un + și - pe care a făcut procesul de conectare mai ușor.
Pasul 4: Acceptant factură
Am folosit un Coinco BA30B ca acceptor de facturi. Trebuia să fie conectat direct la perete ca sursă de alimentare. L-am combinat cu un adaptor cu 24 de pini de la o sursă de alimentare atx pentru a se conecta și a permite cablarea mai ușoară. Pinouturile pe care le-am urmat se găsesc în următorul link:
techvalleyprojects.blogspot.com/2011/07/ard…
În cazul nostru, a trebuit să creăm o montură pentru a mări factura, deoarece altfel ar fi prea scăzută pentru carcasa noastră.
Pasul 5: Testare
Testați mai întâi componentele electronice din exteriorul carcasei pentru a vă asigura că componentele funcționează. Orice probleme care apar trebuie rezolvate înainte de a le introduce în carcasă.
Pasul 6: Electronică la carcasă
După ce ați testat dispozitivele electronice și sunteți mulțumit de rezultatele lor, începeți să le introduceți în carcasă. Reglați lungimile firelor astfel încât să se potrivească confortabil în interior.
Pasul 7: Testarea finală
Odată introdus în carcasă, testați din nou totul. Dacă totul funcționează așa cum vă așteptați, felicitări! Ai făcut un distribuitor automat.
Pasul 8: Cod Arduino + Linkuri
Descărcări:
Cod Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Folder SolidWorks cu fișiere de piese și ansamblu
drive.google.com/drive/folders/1amZoypiWcZ…
Doar în cazul în care ceva s-a întâmplat la link, iată codul arduino complet afișat. Cod Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility / Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; octet const ROWS = 4; // patru rânduri const octet COLS = 3; // trei coloane tastele char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // conectați-vă la pinouturile rândului octetului tastaturii colPins [COLS] = {2, 3, 4}; // conectați-vă la pinouturile coloanei tastaturii Tastatură tastatură = Tastatură (makeKeymap (taste), 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); // Pinii digitali, lcd-ul este conectat la // Constante // // pinul pentru creditul validatorului de facturi (-) linie const int billValidator = 22;
// Variabile /
/ înregistrarea duratei pulsului (milisecunde) nesemnată de lungă durată;
// deținerea totalului de dolari înregistrat în dollarCounter = 0; void setup () {lcd.begin (16, 1); // setați coordonatele textului lcd lcd.print („Introduceți numai $ 1”); // Setați textul Serial.begin (9600); // Inițializați porturile seriale pentru comunicare. Serial.println ("test Stepper!"); // Tastați Out Stepper Test pe monitorul serial, astfel încât să știm ce motor pas cu pas este apăsat. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Setați viteza motorului la care vor rula myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Configurări PIN pentru validatorul facturii și butonul pinMode (billValidator, INPUT); // Setează billaccepterul
// Inițializați porturile seriale pentru comunicare. Serial.begin (9600); Serial.println („Se așteaptă dolarul …”); } void loop () {{durata = pulseIn (billValidator, HIGH); // Începe să caute lungimea pulsului primit de la acceptantul de factură dacă (durata> 12000) // Valoarea pe care trebuie să o depășească pentru a valida ca dolar procesat și autentic {// Număr dolar dolarCounter ++; // Verificare pentru înțelegerea Serial.print ("Dolar detectat. / N Total:"); // Afișează noul număr de dolari Serial.println (dollarCounter); // bucla pentru a aștepta până când un buton este apăsat în timp ce (durata> 12000) {tasta char = keypad.getKey (); // conectează keyoad-ul și începe să vadă care este apăsat dacă (tasta! = NO_KEY) {// va căuta tasta apăsată Serial.println (tasta); // ne anunță care a fost apăsat pe monitorul serial} {if (tasta == '1') {// Dacă tasta 1 este apăsată, face următoarele: tasta int Apăsat = tasta - '1'; myMotor8-> step (580, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor8-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei}
if (tasta == '2') {// Dacă tasta 2 este apăsată, procedează după cum urmează: tasta int Apăsat = tasta - '2'; myMotor7-> step (400, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor7-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '3') {// Dacă tasta 3 este apăsată, face următoarele: tasta int Apăsat = tasta - '3'; myMotor6-> step (400, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor6-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '4') {// Dacă tasta 4 este apăsată, face următoarele: tasta int Apăsat = tasta - '4'; myMotor5-> step (180, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor5-> release (); // Eliberează motorul de starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '5') {// Dacă tasta 5 este apăsată, face următoarele: tasta int Apăsat = tasta - '5'; myMotor4-> step (6900, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor4-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '6') {// Dacă tasta 6 este apăsată, face următoarele: tasta int Apăsat = tasta - '6'; myMotor3-> step (400, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor3-> release (); // Eliberează motorul de starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '7') {// Dacă tasta 7 este apăsată, face următoarele: tasta int Apăsat = tasta - '7'; myMotor7-> step (400, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor7-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei} if (tasta == '8') {// Dacă tasta 8 este apăsată, face următoarele: tasta int Apăsat = tasta - '8'; myMotor8-> step (400, FORWARD, DOUBLE); // Pornește motorul și se rotește cu 350 de grade în direcția înainte. myMotor8-> release (); // Eliberează motorul din starea de a se menține pe loc. întoarcere; // Revine la începutul codului buclei}}}}}} >>
Recomandat:
Distribuitor automat de săpun folosind Arduino: 8 pași
Distribuitor automat de săpun folosind Arduino: Distribuitor automat de săpun folosind arduino: Deci, hei, tipul este binevenit înapoi la noul articol din acest articol, vom face un distribuitor automat de săpun folosind arduino. Acest distribuitor de săpun este foarte ușor de realizat
Distribuitor automat de alcool cu Arduino: 6 pași
Distribuitor automat de alcool cu Arduino: Acest proiect arduino vă va ghida cum să faceți un distribuitor automat de alcool. Utilizatorul nu trebuie să atingă nimic pentru a obține alcool, trebuie doar să se apropie de senzorul cu ultrasunete, alcoolul va fi împins afară, apoi va fi redat un fișier audio pentru a informa utilizatorul să păstreze
Distribuitor automat de handgel cu Arduino: 3 pași
Dispozitiv automat de handgel cu Arduino: acest proiect se bazează pe cunoștințe foarte simple și ușoare, potrivite pentru amatori, bazate pe coduri open source și componente ușor de găsit la un preț foarte accesibil. Scopul acestui proiect este să ne menținem mâinile curate de viruși. și alți germeni într-un
Mini distribuitor automat controlat Arduino: 9 pași
Mini distribuitor automat controlat Arduino: Acesta este distribuitorul nostru automat, care vinde trei bomboane de bomboane de dimensiuni distractive. Dimensiunile generale sunt de aproximativ 12 " x 6 " x 8 ". Acest distribuitor automat este controlat de un arduino, cu panou și servomotor
Detector de minciuni + distribuitor automat: Cu Arduino Leonardo: 6 pași
Detector de minciuni + distribuitor automat: Cu Arduino Leonardo: Acest detector de minciuni nu este detectorul dvs. normal de minciuni, este un detector de minciuni care are atașat un distribuitor automat. Practic, așa funcționează. La început, jucătorul va apăsa un buton care va porni aparatul și, înainte de minciună