فهرست مطالب:

دستگاه خودپرداز مبتنی بر آردوینو 1 دلار: 8 مرحله
دستگاه خودپرداز مبتنی بر آردوینو 1 دلار: 8 مرحله

تصویری: دستگاه خودپرداز مبتنی بر آردوینو 1 دلار: 8 مرحله

تصویری: دستگاه خودپرداز مبتنی بر آردوینو 1 دلار: 8 مرحله
تصویری: Arduino Leanardo Project || USB Keyboard || HID Device || #Shorts || #ShortVideo | #TrendingVideo 2024, نوامبر
Anonim
Image
Image
روکش
روکش

ما ایده خود را از معلم مهندسی خود گرفتیم - همه ما فکر می کردیم ایده خوبی است که یک ماشین فروش برای کلاس خود داشته باشیم و او گفت - "خوب ، یکی بساز". معلوم شد که یک ماشین فروش یک پروژه ارشد عالی خواهد بود و در صورت تکمیل به عنوان یک جمع آوری کمک برای برنامه مهندسی ما عمل می کند.

این دستگاه را یک دستگاه خودپرداز 1 دلاری می نامند نه به این دلیل که ساخت آن 1 دلار هزینه دارد ، بلکه به این دلیل است که قبض کننده یک مدل قدیمی است که فقط اسکناس 1 دلار می گیرد:)

مرحله 1: معیارها

ما یک ماشین فروش می خواستیم که بالای میز قرار بگیرد و خیلی بلند نباشد. ما ابعاد عرض میز را گرفتیم تا مطمئن شویم که دستگاه فروش دستگاه از میز جدا نشده است.

مرحله 2: روکش

روکش
روکش
روکش
روکش
روکش
روکش

ما جعبه خود را 19 اینچ عرض و 17 اینچ طول و 25 اینچ ارتفاع ساختیم. ما از دستگاه CNC برای برش چوب خود استفاده کردیم. ما از solidworks برای طراحی چهره ها استفاده کردیم و سپس آنها را برای طراحی انواع فایل برای نرم افزار CNC خود تبدیل کردیم. لبه ها را سنباده زنی کرده و سپس آنها را با 1 اینچ پیچ کرده ایم. ما پنل جلویی را با یک لولا وصل کردیم و از پیچ های "" استفاده کردیم ، به طوری که پیچ ها به طرف دیگر نروند. ما همچنین از شیشه اکریلیک استفاده کردیم که برای قفسه ها و پنل جلویی برش دادیم.

مرحله 3: الکترونیک

الکترونیک
الکترونیک
الکترونیک
الکترونیک
الکترونیک
الکترونیک
الکترونیک
الکترونیک

آردوینو

ما از برد Arduino Mega 2560 استفاده کردیم. ما همچنین از موتورهای Adafruit استفاده کردیم تا بتوانند موتورهای پله ای را اجرا کنند. ما سنجاق هایی را به مارهای adafruit اضافه کردیم تا بتوانند به یکدیگر متصل شوند. آنها آنها را روی یکدیگر قرار دادند. هر کدام می توانند 2 موتور را اجرا کنند. همچنین ، توجه داشته باشید که بلوز باید متصل شود.

منبع تغذیه رومیزی

منبع تغذیه Bestek ATX با استفاده از آداپتور برای روشن نگه داشتن منبع تغذیه. آداپتور از sparkfun.com است و ولتاژهای مختلفی را ارائه می دهد.

به موتور می پیچد

ما مدلهای solidworks برای نگه داشتن موتور ، گرفتن سیم پیچ و هدایت سیم پیچ در امتداد قفسه ساختیم. ما از ebay به سیم پیچ های خود رسیده بودیم و آنها را به ابعاد برش داده بودیم. ما همچنین مجبور شدیم 3 عدد از آنها را خم کنیم زیرا 6 قطعه مستقیم برای اتصال به پایه سیم پیچ نداشتیم. سپس آنها را به صورت سه بعدی چاپ کرده و به سیم پیچ و موتور وصل کردیم. موتورهای پله ای را که داشتیم ، روی کوه قرار دادیم. این موتور را نگه می دارد و سیم پیچ را در یک مسیر مستقیم هدایت می کند.

LCD و صفحه کلید

ما از صفحه کلید آردوینو و صفحه LCD استفاده کردیم که به برق متصل به آداپتور برق 5 ولت برای تغذیه و سپس به همان برد آردوینو متصل شده است.

سیم کشی

ما استفاده از سیم های 18 گیج را توصیه می کنیم. در مورد ما ، ما مجبور شدیم با استفاده از ابزارهای اندازه گیری مختلف سازش کنیم زیرا 18 سنج تمام شد

نوار LED

ما از یک نوار LED برای روشن کردن دستگاه استفاده کردیم. ما آن را به آداپتور منبع تغذیه به سیم 12 ولت متصل کردیم. نوار LED مورد استفاده ما خوشبختانه دارای + و - بود که روند اتصال آن را آسان تر می کرد.

مرحله 4: بیل پذیرنده

بیل پذیرنده
بیل پذیرنده
بیل پذیرنده
بیل پذیرنده
بیل پذیرنده
بیل پذیرنده
بیل پذیرنده
بیل پذیرنده

ما از Coinco BA30B به عنوان پذیرنده قبض خود استفاده کردیم. باید مستقیماً به عنوان منبع تغذیه به دیوار وصل می شد. ما آن را با یک آداپتور 24 پین از منبع تغذیه atx ترکیب کردیم تا سیم را وصل کنیم و سیم کشی راحت تری انجام دهیم. پیوندهایی که دنبال کردیم در پیوند زیر یافت می شود:

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

در مورد ما ، ما مجبور شدیم یک پایه برای بالا بردن پذیرنده قبض ایجاد کنیم ، زیرا در غیر این صورت برای پوشش ما بسیار کم خواهد بود.

مرحله 5: آزمایش

ابتدا قطعات الکترونیکی خارج از بدنه را آزمایش کنید تا از عملکرد قطعات اطمینان حاصل کنید. هر گونه مشکلی که پیش می آید باید قبل از قرار دادن آنها در داخل پوشش برطرف شود.

مرحله 6: تجهیزات الکترونیکی برای پوشش

هنگامی که وسایل الکترونیکی را آزمایش کردید و از نتایج آنها راضی بودید ، آنها را در محفظه خود قرار دهید. طول سیم ها را طوری تنظیم کنید که راحت داخل آن قرار گیرد.

مرحله 7: آزمایش نهایی

پس از قرار دادن در پوشش ، همه چیز را دوباره آزمایش کنید. اگر همه چیز همانطور که انتظار داشتید کار می کند ، تبریک می گویم! شما یک دستگاه فروش خودکار ساختید

مرحله 8: کد آردوینو + پیوندها

دانلودها:

کد آردوینو

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

پوشه SolidWorks با قطعات و مونتاژ

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

در صورت بروز مشکل در پیوند ، در اینجا کد arduino به طور کامل نمایش داده شده است. کد آردوینو <<

#شامل #شامل #شامل #Arduino.h " #Include #include #include" utility/Adafruit_MS_PWMServoDriver.h "#include

const int stepsPerRevolution = 200؛ const byte ROWS = 4؛ // چهار سطر const byte COLS = 3؛ // سه ستون کلیدهای شارژ [ROWS] [COLS] = {{'1'، '2'، '3'}، {'4'، '5'، '6'}، {'7'، '8' ، '9'} ، {'*' ، '0' ، '#'}} ؛ بایت rowPins [ROWS] = {5 ، 6 ، 7 ، 8} ؛ // اتصال به pinouts سطر byP صفحه کلید colPins [COLS] = {2 ، 3 ، 4} ؛ // اتصال به پین های ستون صفحه کلید صفحه کلید = صفحه کلید (makeKeymap (کلیدها) ، 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) ؛ LCD مایع LiquidCrystal (1 ، 11 ، 9 ، 10 ، 12 ، 13) ؛ // پین های دیجیتال که ال سی دی به // ثابت ها // // پین برای اعتبار اعتبارسنج صورتحساب متصل است (-) خط const int billValidator = 22؛

// متغیرها /

/ ثبت مدت زمان نبض (میلی ثانیه) مدت طولانی بدون علامت ؛

// نگه داشتن کل دلارهای ثبت شده int dollarCounter = 0؛ void setup () {lcd.begin (16 ، 1) ؛ // تنظیم مختصات متن lcd.print ("درج فقط $ 1") ؛ // تنظیم متن Serial.begin (9600)؛ // پورت سریال را برای ارتباط اولیه کنید. Serial.println ("تست پله!")؛ // در مانیتور سریال Stepper Test را تایپ کنید تا بدانیم کدام موتور پله ای فشار داده شده است. AFMS1.begin ()؛ AFMS2.begin ()؛ AFMS3.begin ()؛ AFMS4.begin ()؛ myMotor1-> setSpeed (100) ؛ // تنظیم سرعت موتور که در آن myMotor2-> setSpeed (100) را اجرا می کنند ؛ myMotor3-> setSpeed (100) ؛ myMotor4-> setSpeed (100) ؛ myMotor5-> setSpeed (100) ؛ myMotor6-> setSpeed (100) ؛ myMotor7-> setSpeed (100) ؛ myMotor8-> setSpeed (100) ؛ // تنظیمات پین برای اعتبارسنج صورتحساب و دکمه pinMode (billValidator ، INPUT) ؛ // billaccepter را تنظیم می کند

// پورت سریال را برای ارتباط اولیه کنید. Serial.begin (9600)؛ Serial.println ("در انتظار دلار …")؛ } void loop () {{duration = pulseIn (billValidator، HIGH)؛ // در جستجوی طول نبض دریافت شده از پذیرنده صورتحساب در صورت (مدت زمان> 12000) // ارزش آن باید از آن پیشی گیرد تا به عنوان یک دلار پردازش شده و معتبر اعتبار شود {// Count dollar dollarCounter ++؛ // بررسی درک Serial.print ("دلار شناسایی شد. / n مجموع:")؛ // نمایش تعداد دلار جدید Serial.println (dollarCounter)؛ // حلقه به منظور منتظر ماندن تا زمانی که دکمه ای فشار داده شود (مدت زمان> 12000) {char key = keypad.getKey ()؛ // صفحه کلید متصل می شود و شروع به دیدن آن می کند که (key! = NO_KEY) {// به دنبال کلید فشرده شده Serial.println (key) است ؛ // به ما اطلاع می دهد که کدام یک در مانیتور سریال فشار داده شده است} {if (key == '1') {// اگر کلید 1 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '1'؛ myMotor8-> مرحله (580 ، جلو ، دوگانه) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor8-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه برمی گردد}

if (key == '2') {// اگر کلید 2 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '2'؛ myMotor7-> مرحله (400 ، جلو ، دوگانه) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor7-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '3') {// اگر کلید 3 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '3' ؛ myMotor6-> step (400 ، FORWARD ، DOUBLE) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor6-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '4') {// اگر کلید 4 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '4'؛ myMotor5-> مرحله (180 ، FORWARD ، DOUBLE) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor5-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '5') {// اگر کلید 5 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '5' ؛ myMotor4-> step (6900 ، FORWARD ، DOUBLE) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor4-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '6') {// اگر کلید 6 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '6' ؛ myMotor3-> step (400 ، FORWARD ، DOUBLE) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor3-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '7') {// اگر کلید 7 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '7' ؛ myMotor7-> مرحله (400 ، جلو ، دوگانه) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor7-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه} if (key == '8') {// اگر کلید 8 فشار داده شود ، موارد زیر را انجام می دهد: int keyPressed = key - '8' ؛ myMotor8-> مرحله (400 ، جلو ، دوگانه) ؛ // موتور را راه اندازی می کند و 350 درجه در جهت جلو می چرخد. myMotor8-> release ()؛ // موتور را از حالت نگه داشتن خود در محل آزاد می کند. برگشت؛ // به ابتدای کد حلقه برمی گردد}}}}}} >>

توصیه شده: