Isi kandungan:

Mesin layan diri berasaskan Arduino $ 1: 8 Langkah
Mesin layan diri berasaskan Arduino $ 1: 8 Langkah

Video: Mesin layan diri berasaskan Arduino $ 1: 8 Langkah

Video: Mesin layan diri berasaskan Arduino $ 1: 8 Langkah
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, Julai
Anonim
Image
Image
Selongsong
Selongsong

Kami mendapat idea dari guru kejuruteraan kami - kami semua berpendapat bahawa adalah idea yang baik untuk mempunyai mesin layan diri untuk kelas kami dan dia berkata - "keren, buat satu". Ternyata mesin layan diri akan menjadi projek senior yang hebat dan apabila selesai akan berfungsi sebagai penggalangan dana untuk program kejuruteraan kami.

Ia dipanggil Mesin Penjual Wang $ 1 bukan kerana harganya $ 1 untuk dibuat, tetapi hanya kerana penerima bil adalah model lama yang hanya memerlukan $ 1 bil:)

Langkah 1: Kriteria

Kami mahukan mesin layan diri yang sesuai di atas meja dan tidak terlalu tinggi. Kami mengambil ukuran lebar meja untuk memastikan bahawa mesin penjual tidak tergantung dari meja.

Langkah 2: Sarung

Selongsong
Selongsong
Selongsong
Selongsong
Selongsong
Selongsong

Kami membuat kotak kami selebar 19 inci dengan panjang 17 inci dengan tinggi 25 inci. Kami menggunakan Mesin CNC untuk memotong kayu kami. Kami menggunakan kerja keras untuk merancang wajah dan kemudian menukarnya menjadi jenis fail gambar untuk perisian CNC kami. Kami mencampakkan tepinya dan kemudian memasukkannya dengan 1 ¼”. Kami memasang panel depan dengan engsel dan menggunakan skru ¼ , supaya skru tidak dapat masuk ke sisi lain. Kami juga menggunakan Kaca Akrilik yang kami potong untuk rak dan panel depan.

Langkah 3: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Arduino

Kami menggunakan Arduino Mega 2560 Board. Kami juga menggunakan Adafruit Motor Boards supaya mereka dapat menjalankan motor stepper. Kami menambah pin pada adafruit agar mereka saling berhubung. Mereka memasukkannya di atas satu sama lain. Masing-masing boleh menjalankan 2 motor. Juga, harap maklum bahawa pelompat perlu disambungkan.

Bekalan Kuasa Desktop

Bekalan kuasa Bestek ATX menggunakan penyesuai untuk mengekalkan bekalan kuasa. Penyesuai berasal dari sparkfun.com dan memberikan pelbagai voltan.

Gegelung ke dalam Motor

Kami membuat model solidworks untuk menahan motor, merebut gegelung, dan memandu gegelung di sepanjang rak. Kami telah mencapai gegelung kami dari ebay dan memotongnya ke dimensi. Kami juga terpaksa membengkokkan 3 daripadanya kerana kami tidak mendapat 6 dengan hujung lurus untuk menyambung ke pelekap gegelung. Kami kemudian mencetak 3D dan melekatkannya pada gegelung dan motor. Motor stepper yang kami miliki, kami masukkan ke dalam pelekap. Ia akan menahan motor dan memandu gegelung di sepanjang jalan yang lurus.

LCD dan Pad Kekunci

Kami menggunakan Arduino Keypad dan skrin LCD yang disambungkan ke plumbum 5V pada penyesuai bekalan kuasa untuk mendapatkan kuasa dan kemudian ke Arduino Board yang sama

Pendawaian

Kami mengesyorkan penggunaan wayar 18 tolok. Dalam kes kami, kami terpaksa berkompromi dengan menggunakan pelbagai alat pengukur kerana kehabisan 18 pengukur

Jalur LED

Kami menggunakan jalur LED untuk menyalakan mesin. Kami menyambungkannya ke plumbum 12V pada penyesuai bekalan kuasa. Jalur LED yang kami gunakan dengan bersyukur mempunyai + dan - di atasnya yang menjadikan proses penyambungannya lebih mudah.

Langkah 4: Penerima Bil

Penerima Bil
Penerima Bil
Penerima Bil
Penerima Bil
Penerima Bil
Penerima Bil
Penerima Bil
Penerima Bil

Kami menggunakan Coinco BA30B sebagai penerima tagihan kami. Ia harus dihubungkan terus ke dinding sebagai sumber kuasa. Kami menggabungkannya dengan penyesuai 24-pin dari bekalan kuasa atx untuk memasang dan membolehkan pendawaian lebih mudah. Pinout yang kami ikuti terdapat dalam pautan berikut:

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

Dalam kes kami, kami harus membuat mount untuk menaikkan akseptor tagihan kerana jika tidak, itu terlalu rendah untuk selongsong kami.

Langkah 5: Menguji

Uji elektronik di luar selongsong terlebih dahulu untuk memastikan komponen berfungsi. Segala masalah yang timbul harus diperbaiki sebelum meletakkannya di dalam selongsong.

Langkah 6: Elektronik ke Sarung

Setelah anda menguji elektronik dan berpuas hati dengan hasilnya, mulailah memasukkannya ke dalam selongsong anda. Laraskan panjang wayar supaya sesuai dengan dalamnya.

Langkah 7: Ujian Akhir

Setelah dimasukkan ke dalam selongsong, uji semula semuanya. Sekiranya semuanya berjalan seperti yang anda harapkan, tahniah! Anda membuat mesin layan diri.

Langkah 8: Arduino Code + Links

Muat turun:

Kod Arduino

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

SolidWorks Folder dengan fail bahagian dan pemasangan

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

Sekiranya ada sesuatu yang berlaku pada pautan, inilah kod arduino yang dipaparkan sepenuhnya. Kod Arduino <<

#include #include #include "Arduino.h" #include #include #include "utiliti / Adafruit_MS_PWMServoDriver.h" #include

const int stepsPerRevolution = 200; const byte ROWS = 4; // empat baris const byte COLS = 3; // kekunci tiga lajur [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // sambungkan ke pinout baris dari colypins byte keypad [COLS] = {2, 3, 4}; // sambungkan ke pinout lajur keypad Keypad keypad = Pad Kekunci (makeKeymap (kekunci), 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); // Pin Digital lcd disambungkan ke // Constants // // pin untuk kredit pengesahan bil (-) line const int billValidator = 22;

// Pemboleh ubah /

/ merakam jangka masa nadi (milisaat) jangka panjang yang tidak ditandatangani;

// menahan jumlah dolar yang dicatatkan int dollarCounter = 0; persediaan tidak sah () {lcd.begin (16, 1); // tetapkan koordinat teks lcd lcd.print ("Masukkan $ 1 Sahaja"); // Tetapkan teks Serial.begin (9600); // Memulakan port bersiri untuk komunikasi. Serial.println ("Ujian Stepper!"); // Type Out Stepper Test di monitor bersiri sehingga kita tahu motor stepper mana yang ditekan. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Tetapkan Kelajuan Motor di mana mereka akan menjalankan myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Penyediaan pin untuk pengesahan bil dan pinMode butang (billValidator, INPUT); // Menetapkan tongkat suara

// Memulakan port bersiri untuk komunikasi. Serial.begin (9600); Serial.println ("Menunggu dolar …"); } gelung void () {{tempoh = pulseIn (billValidator, TINGGI); // Mula mencari panjang nadi yang diterima dari akseptor bil sekiranya (tempoh> 12000) // Nilai yang harus melebihi untuk mengesahkannya sebagai dolar yang diproses dan sahih {// Hitung dolar dolarCounter ++; // Memeriksa untuk memahami Serial.print ("Dolar dikesan. / N Jumlah:"); // Paparkan jumlah dolar baru Serial.println (dollarCounter); // gelung untuk menunggu sehingga butang ditekan semasa (tempoh> 12000) {char key = keypad.getKey (); // membuat kekunci disambungkan dan mula melihat mana yang ditekan jika (kunci! = NO_KEY) {// akan mencari tombol yang ditekan Serial.println (kunci); // beritahu kami mana yang ditekan di monitor bersiri} {if (key == '1') {// Jika Key 1 ditekan, lakukan yang berikut: int keyPressed = key - '1'; myMotor8-> langkah (580, KE DEPAN, GANDA); // Memulakan Motor dan berpusing selama 350 darjah ke arah hadapan. myMotor8-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung}

if (key == '2') {// Sekiranya Key 2 ditekan, lakukan perkara berikut: int keyPressed = key - '2'; langkah myMotor7-> (400, KE DEPAN, GANDA); // Memulakan Motor dan berputar selama 350 darjah ke arah hadapan. myMotor7-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '3') {// Jika Kunci 3 ditekan, lakukan perkara berikut: int keyPressed = key - '3'; langkah myMotor6-> (400, KE DEPAN, GANDA); // Memulakan Motor dan berpusing selama 350 darjah ke arah hadapan. myMotor6-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '4') {// Sekiranya Kekunci 4 ditekan, lakukan perkara berikut: int keyTekanan = kunci - '4'; myMotor5-> langkah (180, KE DEPAN, GANDA); // Memulakan Motor dan berputar selama 350 darjah ke arah hadapan. myMotor5-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '5') {// Sekiranya Kekunci 5 ditekan, lakukan perkara berikut: int keyPressed = key - '5'; myMotor4-> langkah (6900, KE DEPAN, GANDA); // Memulakan Motor dan berputar selama 350 darjah ke arah hadapan. myMotor4-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '6') {// Sekiranya Kekunci 6 ditekan, lakukan perkara berikut: int keyTekanan = kunci - '6'; langkah myMotor3-> (400, KE DEPAN, GANDA); // Memulakan Motor dan berpusing selama 350 darjah ke arah hadapan. myMotor3-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '7') {// Sekiranya Kekunci 7 ditekan, lakukan perkara berikut: int keyPressed = key - '7'; langkah myMotor7-> (400, KE DEPAN, GANDA); // Memulakan Motor dan berpusing selama 350 darjah ke arah hadapan. myMotor7-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung} jika (kunci == '8') {// Sekiranya Kekunci 8 ditekan, lakukan perkara berikut: int keyPressed = key - '8'; langkah myMotor8-> (400, KE DEPAN, GANDA); // Memulakan Motor dan berputar selama 350 darjah ke arah hadapan. myMotor8-> pelepasan (); // Melepaskan motor dari keadaan menahan diri di tempatnya. kembali; // Kembali ke awal kod gelung}}}}}} >>

Disyorkan: