Daftar Isi:

Mesin Penjual Otomatis Berbasis Arduino $1: 8 Langkah
Mesin Penjual Otomatis Berbasis Arduino $1: 8 Langkah

Video: Mesin Penjual Otomatis Berbasis Arduino $1: 8 Langkah

Video: Mesin Penjual Otomatis Berbasis Arduino $1: 8 Langkah
Video: Belajar Arduino Bersama #1 - Apa itu Arduino 2024, Juli
Anonim
Image
Image
Selubung
Selubung

Kami mendapat ide dari guru teknik kami - kami semua berpikir itu akan menjadi ide yang baik untuk memiliki mesin penjual otomatis untuk kelas kami dan dia berkata - "keren, buatlah". Ternyata mesin penjual otomatis akan menjadi proyek senior yang hebat dan ketika selesai akan berfungsi sebagai penggalangan dana untuk program teknik kami.

Disebut Mesin Penjual Otomatis $1 bukan karena biaya pembuatannya $1, tetapi hanya karena penerima tagihan adalah model lama yang hanya membutuhkan uang $1:)

Langkah 1: Kriteria

Kami menginginkan mesin penjual otomatis yang muat di atas meja dan tidak terlalu tinggi. Kami mengambil dimensi lebar meja untuk memastikan kami tidak memiliki mesin penjual otomatis yang menggantung di atas meja.

Langkah 2: Casing

Selubung
Selubung
Selubung
Selubung
Selubung
Selubung

Kami membuat kotak kami lebar 19 inci kali 17 inci panjang 25 inci. Kami menggunakan Mesin CNC untuk memotong kayu kami. Kami menggunakan solidworks untuk mendesain wajah dan kemudian mengonversinya menjadi jenis file gambar untuk perangkat lunak CNC kami. Kami mengampelas tepinya dan kemudian mengencangkannya dengan 1”. Kami memasang panel depan dengan engsel dan menggunakan sekrup “, sehingga sekrup tidak 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 Papan Arduino Mega 2560. Kami juga menggunakan Papan Motor Adafruit sehingga dapat menjalankan motor stepper. Kami menambahkan pin ke adafruit agar mereka terhubung satu sama lain. Mereka dimasukkan mereka di atas satu sama lain. Masing-masing dapat menjalankan 2 motor. Juga, harap dicatat bahwa jumper harus terhubung.

Catu Daya Desktop

Bestek ATX Power supply menggunakan adaptor untuk menjaga power supply tetap menyala. Adaptor dari sparkfun.com dan menyediakan berbagai voltase.

Gulungan ke Motor

Kami membuat model solidworks untuk menahan motor, mengambil koil, dan memandu koil di sepanjang rak. Kami telah memperoleh gulungan kami dari ebay dan memotongnya ke dimensi. Kami juga harus menekuk 3 di antaranya karena kami tidak mendapatkan 6 dengan ujung lurus untuk terhubung ke dudukan koil. Kami kemudian mencetaknya 3D dan menempelkannya ke koil dan motor. Motor stepper yang kami miliki, kami pasang. Itu akan menahan motor dan memandu koil di sepanjang jalan yang lurus.

LCD dan Keypad

Kami menggunakan Papan Tombol Arduino dan layar LCD yang terhubung ke kabel 5V pada adaptor catu daya untuk daya dan kemudian ke Papan Arduino yang sama

Pengkabelan

Kami merekomendasikan penggunaan kabel pengukur 18. Dalam kasus kami, kami harus berkompromi dengan menggunakan berbagai pengukur karena kami kehabisan 18 pengukur

Jalur LED

Kami menggunakan strip LED untuk menyalakan mesin. Kami menghubungkannya ke kabel 12V pada adaptor catu daya. Strip LED yang kami gunakan untungnya memiliki tanda + dan - yang memudahkan proses penyambungan.

Langkah 4: Penerima Tagihan

akseptor tagihan
akseptor tagihan
akseptor tagihan
akseptor tagihan
akseptor tagihan
akseptor tagihan
akseptor tagihan
akseptor tagihan

Kami menggunakan Coinco BA30B sebagai penerima tagihan kami. Itu harus terhubung langsung ke dinding sebagai sumber listrik. Kami menggabungkannya dengan adaptor 24-pin dari catu daya atx untuk dicolokkan dan memungkinkan pemasangan kabel yang lebih mudah. Pinout yang kami ikuti dapat ditemukan di tautan berikut:

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

Dalam kasus kami, kami harus membuat mount untuk menaikkan akseptor tagihan karena jika tidak, akan terlalu rendah untuk casing kami.

Langkah 5: Pengujian

Uji elektronik di luar casing terlebih dahulu untuk memastikan komponen berfungsi. Setiap masalah yang muncul harus diperbaiki sebelum menempatkannya di dalam casing.

Langkah 6: Elektronik ke Casing

Setelah Anda menguji elektronik dan puas dengan hasilnya, mulailah menempatkannya ke dalam casing Anda. Sesuaikan panjang kawat agar pas dengan nyaman di dalam.

Langkah 7: Pengujian Akhir

Setelah dimasukkan ke dalam casing, uji semuanya lagi. Jika semuanya berjalan seperti yang Anda harapkan, selamat! Anda membuat mesin penjual otomatis.

Langkah 8: Kode + Tautan Arduino

Unduhan:

Kode Arduino

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

Folder SolidWorks dengan file bagian dan perakitan

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

Untuk berjaga-jaga jika terjadi sesuatu pada tautan, berikut adalah kode arduino yang ditampilkan sepenuhnya. Kode Arduino <<

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

const int langkahPerRevolusi = 200; const byte BARIS = 4; //empat baris const byte COLS = 3; //tiga kolom kunci karakter[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins[ROWS] = {5, 6, 7, 8}; //sambungkan ke pinout baris dari byte keypad colPins[COLS] = {2, 3, 4}; //sambungkan ke pinout kolom keypad Keypad keypad = Keypad(makeKeymap(keys), 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 terhubung ke // Konstanta // // pin untuk baris kredit validator tagihan(-) const int billValidator = 22;

// Variabel /

/ merekam durasi pulsa (milidetik) durasi panjang tanpa tanda;

// memegang total dolar yang tercatat int dollarCounter = 0; void setup() { lcd.begin(16, 1); //set koordinat teks lcd lcd.print("Masukkan $1 Saja"); //Mengatur teks Serial.begin(9600); // Inisialisasi port serial untuk komunikasi. Serial.println("Uji langkah!"); //Ketik Out Stepper Test di serial monitor agar kita tahu motor stepper mana yang ditekan. AFMS1.mulai(); AFMS2.mulai(); AFMS3.mulai(); AFMS4.mulai(); myMotor1->setSpeed(100); //Setel Kecepatan 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); // Pengaturan pin untuk validator tagihan dan mode pin tombol(billValidator, INPUT); //Menyetel penerima tagihan

// Inisialisasi port serial untuk komunikasi. Serial.begin(9600); Serial.println("Menunggu dolar…"); } void loop () { { durasi = pulseIn(Validator tagihan, TINGGI); //Mulai mencari panjang pulsa yang diterima dari penerima tagihan if (durasi > 12000) //Nilai yang harus dilampaui untuk divalidasi sebagai dolar yang diproses dan otentik { // Hitung dolar dolarPenghitung++; // Memeriksa pemahaman Serial.print("Dolar terdeteksi.\n Total: "); // Menampilkan hitungan dolar baru Serial.println(dollarCounter); //loop untuk menunggu sampai tombol ditekan while (durasi > 12000){ char key = keypad.getKey(); //menghubungkan keyoad dan mulai melihat mana yang ditekan if (key != NO_KEY) { //akan mencari key yang ditekan Serial.println(key); //memberi tahu kami mana yang ditekan di serial monitor } { if (key == '1') { //Jika Key 1 ditekan, lakukan hal berikut: int keyPressed = key - '1'; myMotor8->step(580, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor8->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop }

if (key == '2') { //Jika Key 2 ditekan, lakukan hal berikut: int keyPressed = key - '2'; myMotor7->step(400, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor7->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '3') { //Jika Key 3 ditekan, lakukan hal berikut: int keyPressed = key - '3'; myMotor6->langkah(400, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor6->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '4') { //Jika Key 4 ditekan, lakukan hal berikut: int keyPressed = key - '4'; myMotor5->langkah(180, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor5->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '5') { //Jika Key 5 ditekan, lakukan hal berikut: int keyPressed = key - '5'; myMotor4->step(6900, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor4->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '6') { //Jika Key 6 ditekan, lakukan hal berikut: int keyPressed = key - '6'; myMotor3->langkah(400, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor3->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '7') { //Jika Key 7 ditekan, lakukan hal berikut: int keyPressed = key - '7'; myMotor7->step(400, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor7->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } if (key == '8') { //Jika Key 8 ditekan, lakukan hal berikut: int keyPressed = key - '8'; myMotor8->langkah(400, MAJU, GANDA); //Memulai Motor dan berputar 350 derajat ke arah depan. myMotor8->rilis(); //Melepaskan motor dari keadaan menahan dirinya di tempatnya. kembali; //Kembali ke awal kode loop } } } } } } >>

Direkomendasikan: