Orodha ya maudhui:

$ 1 Mashine ya Uuzaji inayotegemea Arduino: Hatua 8
$ 1 Mashine ya Uuzaji inayotegemea Arduino: Hatua 8

Video: $ 1 Mashine ya Uuzaji inayotegemea Arduino: Hatua 8

Video: $ 1 Mashine ya Uuzaji inayotegemea Arduino: Hatua 8
Video: Mambo 3 Ya Kufanya Leo Ili Uondoe Stress Maishani Mwako 2024, Julai
Anonim
Image
Image
Kesi
Kesi

Tulipata wazo letu kutoka kwa mwalimu wetu wa uhandisi - sote tulifikiri itakuwa wazo nzuri kuwa na mashine ya kuuza kwa darasa letu na akasema - "poa, fanya moja". Ilibadilika kuwa mashine ya kuuza itakuwa mradi mkubwa mwandamizi na wakati kamili itafanya kazi kama mkusanyiko wa fedha kwa programu yetu ya uhandisi.

Inaitwa Mashine ya Vending ya $ 1 sio kwa sababu inagharimu $ 1 kutengeneza, lakini kwa sababu tu anayekubali muswada ni mfano wa zamani ambao unachukua tu bili za $ 1:)

Hatua ya 1: Vigezo

Tulitaka mashine ya kuuza ambayo itafaa juu ya dawati na isiwe refu sana. Tulichukua vipimo vya upana wa meza ili kuhakikisha hatukuwa na mashine ya kuuza iliyining'inia juu ya meza.

Hatua ya 2: Kesi

Kesi
Kesi
Kesi
Kesi
Kesi
Kesi

Tulifanya sanduku letu upana wa inchi 19 na inchi 17 kwa urefu na inchi 25. Tulitumia Mashine ya CNC kukata kuni zetu. Tulitumia solidworks kubuni nyuso na kisha tukawabadilisha kuwa aina za faili za programu yetu ya CNC. Tuliweka mchanga kando kando kisha tukawachanganya na 1 ¼”. Tuliunganisha jopo la mbele na bawaba na tukatumia screws, ili visukusi visipite kwa upande mwingine. Tulitumia pia Glasi ya Acrylic ambayo tulikata kwa rafu na jopo la mbele.

Hatua ya 3: Elektroniki

Umeme
Umeme
Umeme
Umeme
Umeme
Umeme
Umeme
Umeme

Arduino

Tulitumia Bodi ya Arduino Mega 2560. Tulitumia pia Bodi za Magari za Adafruit ili waweze kuendesha motors. Tuliongeza pini kwenye adafruit ili waweze kuungana. Waliingizwa juu yao. Kila mmoja anaweza kukimbia motors 2. Pia, tafadhali kumbuka kuwa jumper inahitaji kuunganishwa.

Ugavi wa Umeme wa Desktop

Usambazaji wa Umeme wa Bestek ATX ukitumia adapta ili kuweka umeme. Adapter ni kutoka kwa sparkfun.com na hutoa voltages anuwai.

Coils ndani ya Motors

Tulitengeneza mifano ya solidworks kushikilia motor, kunyakua coil, na kuongoza coil kando ya rafu. Tulikuwa tumepata coil zetu kutoka ebay na kuzikata kwa kipimo. Tulilazimika pia kuinama 3 kati yao kwani hatukupata 6 na ncha moja kwa moja kuungana na mlima wa coil. Kisha tukazichapisha 3D na kuziunganisha kwenye coil na motor. Motors za stepper tulizokuwa nazo, tuliweka kwenye mlima. Ingesimamia motor na kuongoza coil kwenye njia iliyonyooka.

LCD na Keypad

Tulitumia kibodi cha Arduino Keypad na skrini ya LCD iliyounganishwa kwenye risasi ya 5V kwenye adapta ya usambazaji wa umeme kwa nguvu na kisha kwenye Bodi hiyo hiyo ya Arduino

Wiring

Tunapendekeza matumizi ya waya 18 za kupima. Kwa upande wetu, tulilazimika kuafikiana kwa kutumia viwango kadhaa kwa sababu tuliishiwa viwango 18

Ukanda wa LED

Tulitumia ukanda wa LED kuwasha mashine. Tuliiunganisha kwa risasi ya 12V kwenye adapta ya usambazaji wa umeme. Ukanda wa LED tuliotumia kwa shukrani ulikuwa na + na - juu yake ambayo ilifanya mchakato wa kuunganisha iwe rahisi.

Hatua ya 4: Mpokeaji wa Muswada

Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada
Mpokeaji wa Muswada

Tulitumia Coinco BA30B kama mpokeaji wetu wa muswada. Ilibidi iunganishwe moja kwa moja ukutani kama chanzo cha nguvu. Tuliiunganisha na adapta ya pini 24 kutoka kwa umeme wa atx ili kuziba na kuruhusu wiring rahisi. Vidokezo ambavyo tulifuata vinapatikana kwenye kiunga kifuatacho:

techvalleyprojects.blogspot.com/2011/07/ard…

Kwa upande wetu, tulilazimika kuunda mlima ili kumkuza mpokeaji wa muswada kwa sababu vinginevyo itakuwa chini sana kwa casing yetu.

Hatua ya 5: Upimaji

Jaribu vifaa vya elektroniki nje ya kituo kwanza ili kuhakikisha kuwa vifaa vinafanya kazi. Maswala yoyote yanayotokea yanapaswa kurekebishwa kabla ya kuyaweka ndani ya sanduku.

Hatua ya 6: Elektroniki kwa Casing

Mara baada ya kujaribu umeme na kuridhika na matokeo yao, anza kuwaweka kwenye kaburi lako. Rekebisha urefu wa waya ili ziweze kutoshea vizuri ndani.

Hatua ya 7: Upimaji wa Mwisho

Mara baada ya kuwekwa kwenye casing, jaribu kila kitu tena. Ikiwa kila kitu kinafanya kazi kama ulivyotarajia, hongera! Ulitengeneza mashine ya kuuza.

Hatua ya 8: Nambari za Arduino + Viungo

Vipakuzi:

Msimbo wa Arduino

drive.google.com/drive/folders/1oC4MhOcMFy…

Folda ya SolidWorks na faili za sehemu na mkutano

drive.google.com/drive/folders/1amZoypiWcZ…

Ikiwezekana ikiwa kitu kimetokea kwa kiunga, hapa nambari ya arduino imeonyeshwa kabisa. Nambari ya Arduino <<

# pamoja na # pamoja na # pamoja na "Arduino.h" # pamoja na # pamoja # # pamoja na "shirika / Adafruit_MS_PWMServoDriver.h" # pamoja

hatua za intPerRevolution = 200; const byte ROWS = 4; // safu nne const byte COLS = 3; // funguo tatu za safu wima [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; Pini za baiti [ROWS] = {5, 6, 7, 8}; // unganisha kwenye pini za safu mlalo za kepi za keypad byte [COLS] = {2, 3, 4}; // unganisha kwa vifungo vya safu ya keypad Keypad keypad = Keypad (makeKeymap (funguo), safuPini, 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); // Pini za Dijiti LCD imeunganishwa na // Constants // // pini kwa mkopo wa idhini ya mswada (-) line const int billValidator = 22;

// Vigeugeu /

/ kurekodi muda wa kunde (milliseconds) muda usiosainiwa;

// kushikilia jumla ya dola zilizorekodiwa int dollarCounter = 0; kuanzisha batili () {lcd. kuanza (16, 1); // weka maandishi ya lcd kuratibu lcd.print ("Ingiza $ 1 tu"); // Weka maandishi Serial.begin (9600); // Anzisha bandari za serial kwa mawasiliano. Serial.println ("Jaribio la Stepper!"); // Chapa Jaribio la Stepper kwenye mfuatiliaji wa serial ili tujue ni motor ipi ya stepper imeshinikizwa. Kuanza kwa AFMS1 (); Kuanza kwa AFMS2 (); Kuanza kwa AFMS3 (); AFMS4.anza (); myMotor1-> setSpeed (100); // Weka Kasi ya Magari ambayo wataendesha myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Usanidi wa Pin kwa idhini ya muswada na pinMode ya kifungo (billValidator, INPUT); // Inaweka hati ya muswada

// Anzisha bandari za serial kwa mawasiliano. Serial. Kuanza (9600); Serial.println ("Inasubiri dola…"); } kitanzi batili () {{duration = pulseIn (billValidator, HIGH); // Inaanza kutafuta urefu wa mapigo uliopokelewa kutoka kwa mpokeaji wa muswada ikiwa (muda> 12000) // Thamani ambayo inapaswa kupita ili kudhibitisha kama dola iliyosindikwa na halisi {// Hesabu ya dola ya dolaCounter ++; // Kuchunguza uelewa wa Serial.print ("Dola imegunduliwa. / N Jumla:"); // Onyesha hesabu mpya ya dola Serial.println (dollarCounter); // kitanzi ili kusubiri hadi kitufe kinabonyezwa wakati (muda> 12000) {char key = keypad.getKey (); // inaunganisha keyoad na kuanza kuona ni ipi imeshinikizwa ikiwa (ufunguo! // inatufahamisha ni ipi ilibonyewa kwenye mfuatiliaji wa serial} {if (key == '1') {// Ikiwa ufunguo 1 umeshinikizwa, hufanya yafuatayo: int keyPressed = key - '1'; myMotor8-> hatua (580, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor8-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzo wa msimbo wa kitanzi}

ikiwa (ufunguo == '2') {// Ikiwa ufunguo 2 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '2'; myMotor7-> hatua (400, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor7-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '3') {// Ikiwa Ufunguo 3 umeshinikizwa, inafanya yafuatayo: int keyPressed = key - '3'; myMotor6-> hatua (400, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor6-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '4') {// Ikiwa Ufunguo 4 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '4'; myMotor5-> hatua (180, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor5-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '5') {// Ikiwa Ufunguo 5 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '5'; myMotor4-> hatua (6900, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor4-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '6') {// Ikiwa Ufunguo 6 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '6'; myMotor3-> hatua (400, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor3-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '7') {// Ikiwa Ufunguo wa 7 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '7'; myMotor7-> hatua (400, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor7-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzoni mwa nambari ya kitanzi} ikiwa (ufunguo == '8') {// Ikiwa Ufunguo 8 umesisitizwa, hufanya yafuatayo: int keyPressed = key - '8'; myMotor8-> hatua (400, MBELE, DOUBLE); // Inaanza Magari na inazunguka kwa digrii 350 kwa mwelekeo wa mbele. myMotor8-> kutolewa (); // Inatoa motor kutoka hali ya kujishikilia. kurudi; // Inarudi mwanzo wa msimbo wa kitanzi}}}}}}} >>

Ilipendekeza: