ዝርዝር ሁኔታ:

$ 1 በአርዱዲኖ ላይ የተመሠረተ የሽያጭ ማሽን -8 ደረጃዎች
$ 1 በአርዱዲኖ ላይ የተመሠረተ የሽያጭ ማሽን -8 ደረጃዎች

ቪዲዮ: $ 1 በአርዱዲኖ ላይ የተመሠረተ የሽያጭ ማሽን -8 ደረጃዎች

ቪዲዮ: $ 1 በአርዱዲኖ ላይ የተመሠረተ የሽያጭ ማሽን -8 ደረጃዎች
ቪዲዮ: On/OFF LED using Arduino Programming Full Video Basic To Advanced Languages #onoffledusingarduino 2024, ህዳር
Anonim
Image
Image
መያዣ
መያዣ

ሀሳባችንን ከኢንጂነሪንግ መምህራችን አገኘን - ሁላችንም ለክፍላችን የሽያጭ ማሽን ቢኖረን ጥሩ ሀሳብ ነው ብለን አሰብን እና እሱ - “አሪፍ ፣ አንድ አድርግ” አለ። የሽያጭ ማሽን ትልቅ ከፍተኛ ፕሮጀክት እንደሚሆን እና ሲጠናቀቅ ለኢንጂነሪንግ ፕሮግራማችን እንደ ገንዘብ ማሰባሰብ ሆኖ ይሠራል።

እሱ $ 1 የሽያጭ ማሽን ተብሎ የሚጠራው ለመሥራት 1 ዶላር ስለሚያወጣ ብቻ አይደለም ፣ ነገር ግን የሂሳብ መቀበያው 1 ዶላር ብቻ የሚወስድ የቆየ ሞዴል ስለሆነ ነው:)

ደረጃ 1 - መመዘኛዎች

በዴስክ አናት ላይ የሚመጥን እና በጣም ረጅም የማይሆን የሽያጭ ማሽን እንፈልጋለን። በጠረጴዛው ላይ የተንጠለጠለ የሽያጭ ማሽን አለመኖሩን ለማረጋገጥ የጠረጴዛውን ስፋት ስፋቶችን ወስደናል።

ደረጃ 2 - መያዣ

መያዣ
መያዣ
መያዣ
መያዣ
መያዣ
መያዣ

እኛ ሳጥናችንን 19 ኢንች ስፋት በ 17 ኢንች ርዝመት በ 25 ኢንች ቁመት ሠርተናል። እንጨታችንን ለመቁረጥ የ CNC ማሽን እንጠቀም ነበር። ፊቶቻችንን ለመንደፍ ጠንካራ ሥራዎችን እንጠቀማለን ከዚያም ለ CNC ሶፍትዌራችን የፋይል ዓይነቶችን ወደ ስዕል እንለውጣቸዋለን። ጠርዞቹን አሸዋ እና ከዚያም በ 1 ¼”ውስጥ አስገባናቸው። ዊንጮቹ ወደ ሌላኛው ጎን እንዳያልፍ የፊት ፓነሉን በተንጠለጠለበት በማያያዝ “screw” ብሎኖችን እንጠቀማለን። እንዲሁም ለመደርደሪያዎቹ እና ለፊት ፓነል የምንቆርጠውን Acrylic Glass ን እንጠቀም ነበር።

ደረጃ 3 ኤሌክትሮኒክስ

ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ
ኤሌክትሮኒክስ

አርዱinoኖ

እኛ የአርዱዲኖ ሜጋ 2560 ቦርድ ተጠቅመናል። እንዲሁም የእርከን ሞተሮችን እንዲሠሩ የአዳፍ ፍሬ ሞተር ቦርዶችንም ተጠቀምን። እርስ በእርሳቸው እንዲገናኙ በአድፋፉስ ላይ ፒኖችን አክለናል። እርስ በእርስ በላያቸው ላይ አስገብቷቸዋል። እያንዳንዳቸው 2 ሞተሮችን ማስኬድ ይችላሉ። እንዲሁም ፣ መዝለሉ መገናኘት እንዳለበት እባክዎ ልብ ይበሉ።

የዴስክቶፕ የኃይል አቅርቦት

የኃይል አቅርቦቱን ለማቆየት አስማሚ በመጠቀም Bestek ATX የኃይል አቅርቦት። አስማሚው ከ sparkfun.com ነው እና የተለያዩ ውጥረቶችን ይሰጣል።

ወደ ሞተርስ ይሽከረከራል

ሞተሩን እንዲይዙ ፣ ጠመዝማዛውን እንዲይዙ እና ሽቦውን በመደርደሪያው ላይ እንዲመሩ ጠንካራ የሥራ ሞዴሎችን ሠርተናል። ከ ebay የእኛን ኩርባዎች ደርሰን ወደ ልኬት እንቆርጣቸው ነበር። ከመጠምዘዣው ተራራ ጋር ለመገናኘት 6 ቀጥ ባለ ጫፎች ስላላገኘን 3 ቱንም ማጠፍ ነበረብን። ከዚያ 3 ዲ ታትመናል እና ወደ ሽቦ እና ሞተር ጋር አያያዝናቸው። እኛ የነበርን የእግረኞች ሞተሮች ፣ ወደ ተራራ አስገባን። እሱ ሞተሩን ይይዛል እና ጠመዝማዛውን ወደ ቀጥታ መንገድ ይመራዋል።

ኤልሲዲ እና የቁልፍ ሰሌዳ

በኃይል አቅርቦት አስማሚ ላይ ከ 5 ቪ መሪ ጋር የተገናኘውን የአርዱዲኖ ቁልፍ ሰሌዳ እና ኤልሲዲ ማያ ተጠቅመን ከዚያ ወደ ተመሳሳይ አርዱዲኖ ቦርድ ተጠቀምን።

ሽቦ

18 የመለኪያ ሽቦዎችን እንዲጠቀሙ እንመክራለን። በእኛ ሁኔታ 18 ልኬቶችን ስላጣን የተለያዩ ልኬቶችን በመጠቀም መደራደር ነበረብን

LED ስትሪፕ

ማሽኑን ለማብራት የ LED ንጣፍ ተጠቅመን ነበር። በኃይል አቅርቦት አስማሚ ላይ ከ 12 ቮ መሪ ጋር አገናኘነው። እኛ የተጠቀምነው የ LED ስትሪፕ በአመስጋኝነት + እና - በእሱ ላይ የማገናኘት ሂደቱን ቀላል ያደረገ ነበር።

ደረጃ 4: ቢል ተቀባይ

ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ
ቢል ተቀባይ

እኛ የሂሳብ ተቀባይነታችንን እንደ Coinco BA30B ተጠቀምን። እንደ የኃይል ምንጭ በቀጥታ ከግድግዳው ጋር መገናኘት ነበረበት። ለመሰካት እና ቀላል ሽቦን ለመፍቀድ ከአትክስ የኃይል አቅርቦት ከ 24 ፒን አስማሚ ጋር አጣመርነው። እኛ የተከተልን ፒኖዎች በሚከተለው አገናኝ ውስጥ ይገኛሉ

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

በእኛ ሁኔታ ፣ የክፍያ መጠየቂያ ተቀባይውን ከፍ ለማድረግ ተራራ መፍጠር ነበረብን ምክንያቱም ያለበለዚያ ለካሳችን በጣም ዝቅተኛ ይሆናል።

ደረጃ 5: ሙከራ

ክፍሎቹ መሥራታቸውን ለማረጋገጥ መጀመሪያ ከኤሌክትሮኒክስ ውጭ ያለውን ኤሌክትሮኒክስ ይፈትሹ። የሚነሱ ማናቸውም ጉዳዮች ወደ መያዣው ውስጥ ከማስገባትዎ በፊት መስተካከል አለባቸው።

ደረጃ 6 - ኤሌክትሮኒክስ ወደ መያዣ

አንዴ ኤሌክትሮኒክስን ከሞከሩ እና በውጤቶቻቸው ከረኩ በኋላ ወደ መያዣዎ ውስጥ ማስገባት ይጀምሩ። በውስጣቸው ምቾት እንዲኖራቸው የሽቦ ርዝመቶችን ያስተካክሉ።

ደረጃ 7 የመጨረሻ ምርመራ

አንዴ ወደ መያዣው ውስጥ ከተቀመጠ በኋላ ሁሉንም ነገር እንደገና ይፈትሹ። እርስዎ እንደጠበቁት ሁሉም ነገር የሚሰራ ከሆነ እንኳን ደስ አለዎት! የሽያጭ ማሽን ሠርተዋል።

ደረጃ 8: የአርዱዲኖ ኮድ + አገናኞች

ውርዶች ፦

የአርዱዲኖ ኮድ

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

የ SolidWorks አቃፊ ከፊል ፋይሎች እና ስብሰባ ጋር

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

በአገናኙ ላይ የሆነ ነገር ከተከሰተ ፣ የአርዱዲኖ ኮድ ሙሉ በሙሉ ይታያል። የአርዱዲኖ ኮድ <<

#አካትት #አካትት #አርዱinoኖ. ኤች # #አካትት #አካትት #አካትት/መገልገያ/Adafruit_MS_PWMServoDriver.h #አካት

const int stepsPerRevolution = 200; const byte ROWS = 4; // አራት ረድፎች const byte COLS = 3; // ሶስት አምዶች ቻር ቁልፎች [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8' ፣ '9'} ፣ {'*' ፣ '0' ፣ '#'}}; ባይት ረድፍ ፒኖች [ROWS] = {5, 6, 7, 8}; // የቁልፍ ሰሌዳው ባይት ኮልፒንስ [COLS] = {2, 3, 4} ከረድፍ ፒኖዎች ጋር ይገናኙ; // ከቁልፍ ሰሌዳው አምድ ፒኖዎች ጋር ይገናኙ የቁልፍ ሰሌዳ ቁልፍ ሰሌዳ = የቁልፍ ሰሌዳ (makeKeymap (ቁልፎች) ፣ ረድፍ ፒን ፣ ኮፒን ፣ ረድፍ ፣ ኮል); 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); // ዲጂታል ፒኖች ኤልሲዲው ከ // Constant // // // pin ጋር ለቢል አረጋጋጭ ክሬዲት (-) መስመር const int billValidator = 22;

// ተለዋዋጮች /

/ የልብ ምት (ሚሊሰከንዶች) ያልተፈረመ ረጅም ጊዜ መመዝገብ;

// int dollarCounter = 0; ባዶነት ማዋቀር () {lcd.begin (16, 1); // አዘጋጅ lcd የጽሑፍ መጋጠሚያዎችን lcd.print ("$ 1 ብቻ አስገባ"); // ጽሑፍ አዘጋጅ Serial.begin (9600); // ለግንኙነት ተከታታይ ወደቦችን ያስጀምሩ። Serial.println ("Stepper test!"); // የትኛው የእንፋሎት ሞተር እንደተጫነ እናውቅ ዘንድ በተከታታይ ማሳያ ውስጥ የስቴፐር ሙከራን ይተይቡ። AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // እነሱ የሞተር 2-> setSpeed (100) የሚያሄዱበትን የሞተር ፍጥነት ያዘጋጁ። myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // ለቢል አረጋጋጭ እና የአዝራር ፒን ሞዶ (ቢል ቫላዲተር ፣ ግብዓት) የፒን ቅንጅቶች; // የሂሳብ አስተናጋጁን ያዘጋጃል

// ለግንኙነት ተከታታይ ወደቦችን ያስጀምሩ። Serial.begin (9600); Serial.println ("ዶላር በመጠበቅ ላይ …"); } ባዶነት loop () {{ቆይታ = pulseIn (billValidator ፣ HIGH) ፤ // (እንደ ቆይታ እና 12000)/ከተሰራ እና እውነተኛ ዶላር ሆኖ ለማፅደቅ ከዚህ በላይ መሆን ያለበት እሴት {// የዶላር ዶላር መቁጠሪያ ++; // Serial.print ("ዶላር ተገኝቷል። / n ጠቅላላ:") የሚለውን ለመረዳት በመፈተሽ ላይ; // አዲስ የዶላር ቆጠራን ያሳዩ Serial.println (dollarCounter); (loop ቆይታ> 12000) {char key = keypad.getKey (); // ኪዮአዱን ያገናኛል እና (ቁልፍ! = NO_KEY) {// የተጫነ Serial.println (ቁልፍ) የሚፈልግ ከሆነ የትኛው እንደሚጫን ማየት ይጀምራል። // በተከታታይ ማሳያው ውስጥ የትኛው እንደተጫነ ያሳውቀናል} {{(ቁልፍ == '1') {// ቁልፍ 1 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '1'; myMotor8-> ደረጃ (580 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor8-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ የሉፕ ኮዱ መጀመሪያ ይመለሳል}

(ቁልፍ == '2') {// ቁልፍ 2 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '2'; myMotor7-> ደረጃ (400 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor7-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '3') {// ቁልፍ 3 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '3'; myMotor6-> ደረጃ (400 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor6-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '4') {// ቁልፍ 4 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '4'; myMotor5-> ደረጃ (180 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor5-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '5') {// ቁልፍ 5 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '5'; myMotor4-> ደረጃ (6900 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor4-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '6') {// ቁልፍ 6 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '6'; myMotor3-> ደረጃ (400 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor3-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '7') {// ቁልፍ 7 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '7'; myMotor7-> ደረጃ (400 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor7-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ (loop code) መጀመሪያ ይመለሳል} (ቁልፍ == '8') {// ቁልፍ 8 ከተጫነ የሚከተለውን ያደርጋል int keyPressed = key - '8'; myMotor8-> ደረጃ (400 ፣ ወደፊት ፣ ድርብ); // ሞተር ይጀምራል እና ወደ 350 ዲግሪዎች ወደ ፊት አቅጣጫ ይሽከረከራል። myMotor8-> መልቀቅ (); // ሞተሩን በቦታው ከመያዝ ሁኔታ ይለቀቃል። መመለስ; // ወደ የሉፕ ኮዱ መጀመሪያ ይመለሳል}}}}}} >>

የሚመከር: