Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Komponen dan Perlengkapan

Plywood FriendlyARM 1/4
Potong plywood sesuai dimensi yang ditentukan dalam diagram
×4
Blokir plywood 3/4"
Potong plywood menjadi strebar lebar 3/4" dan sepanjang bagian yang dihubungkan, lihat diagram
×1
LAFVIN 5 Set 28BYJ-48 ULN2003 5V Stepper Motor + Papan Driver ULN2003 untuk Arduino
Motor ini akan dapat mendorong setiap camilan yang Anda masukkan ke dalam mesin
×1
Aksesori PC - Konektor Kabel Ribbon Flat Warna Pelangi IDC 1.27mm Pitch untuk Konektor 2.54mm (50P-10FT)
Diperlukan untuk membuat mesin rapi dan profesional
×1
Glarks 635Pcs Rumah Konektor Dupont Pin Konektor Laki/Perempuan 40 Pin
Diperlukan untuk membuat mesin rapi dan profesional
×1
Microswitch Pengganti Terang Gamelec
Harus ada tombol
×1
Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian
Breadboard (generik)
Papan las juga bekerja baik
×1
Kit Papan PCB Ganda Sisi 30 Pcs Prototipe
Hanya satu atau dua yang diperlukan tetapi ukurannya sempurna untuk proyek di masa depan
×1
Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian
Arduino Mega 2560
Kontroler yang digunakan adalah Mega 2560
×1
Modul Relai 5v Tolako untuk Arduino ARM
Diperlukan untuk mencegah motor terlalu panas
×1
Modul Layar LCD Serial 1602 2pcs HiLetgo
Tanpa ini Anda tidak akan tahu tombol mana yang ditekan
×1
Stander Lampu LED
Opsional
×2
Kabel Grounding Tembaga Padat 8-Gauge 50 kaki
Ini adalah apa yang akan Anda gunakan untuk membuat gulungan
×1
Pemisah Rak Logam Datar
×1

Alat dan Mesin yang Diperlukan

Gergaji meja atau listrik
Jika Anda tidak memiliki tempat untuk memotong kayu
Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian
Paku las (generik)
Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian
Pistol lem panas (generik)
Jangan lupa stik lem juga

Aplikasi dan Layanan Online

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian
Arduino IDE

Tentang Proyek Ini

MESIN JUAL OTOMATIS PRIBADI

Proyek ini adalah panduan langkah demi langkah untuk membuat mesin jual otomatis pribadi. Mesin jual dapat diisi dengan camilan favorit Anda atau bisa dibawa ke kantor sehingga Anda dapat berbagi camilan dengan tim Anda. Lihat dan berikan pendapat Anda.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Membangun Mesin:

Saya akan merujuk pada diagram mesin sepanjang teks ini jadi silakan merujuk pada diagram untuk klarifikasi/pemahaman.

Dimensi mesin adalah 21"W x 18"D x 24 1/4"H (Dimensi Kotak)

2 panel 18"D x 23 3/4"H (Sisi)

2 panel 21"W x 18"D (Atas & Bawah)

2 panel 21"W x 24 1/4"H (Depan & Belakang)

Dinding pembagi adalah 18"D x 23 3/4"H

Rak dalam adalah 13"W x 12"D (kali 2, rak atas dan bawah)

Rak berjarak 8" 13" lebar 12" dalam

Setiap blok biru pada diagram panel adalah titik pemasangan ¾"W x ¾"H yang dalam sebesar panel

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Susun kotak seperti yang ditunjukkan dalam diagram dan di sini menggunakan blokir 3/4" di setiap titik pertemuan. Perhatikan bahwa dinding samping berada di atas plate bawah dan di bawah plate atas. Dinding perimeter harus mengukur 21"W x 24 1/4"H.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Dinding pembagi perlu disiapkan sebelum dipasang. Ukur dari atas 16 1/4" dan pasang blokir di sana untuk rak bawah. Ukur 8 1/4" dari atas dan pasang blokir untuk rak atas. Selesaikan langkah-langkah ini pada dinding kiri (melihat dari depan mesin) sehingga Anda dapat memasang blokir untuk rak atas dan bawah.

**** Catatan rak bawah perlu dipasang terlebih dahulu jika tidak mengamankannya ke blokir akan sangat sulit.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Setelah blokir dipasang untuk rak gunakan panel 13" x 12" dan pasang satu pada setiap set blokir. Ini akan secara otomatis menyiapkan dinding pembagi di tempat yang tepat. Kemudian amankan blokir di atas dan bawah sisi kanan dinding pembagi. Kemudian amankan ke panel atas dan bawah Ini akan sepenuhnya mengamankan struktur Anda.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Pasang panel belakang dan siapkan untuk pemasangan motor. Pastikan Anda telah mencetak roda gulungan sehingga Anda dapat mengukurnya dan menyiapkan lubang bor. Ukur roda dan tambahkan 1/4" pada tingginya sehingga akan memberi ruang untuk gulungan berputar. Anda mungkin ingin menyesuaikan ini sesuai kebutuhan tergantung pada material Anda. Ukur 6 1/2" di rak untuk menandai titik tengahnya. Ukur 3 1/4" untuk menemukan pusat setiap bagian rak. Gunakan ukuran tinggi yang Anda catat tadi untuk menemukan titik bor. Bor lubang yang akan memungkinkan Anda menghubungkan roda ke motor tanpa poros roda menggosok papan. Selesaikan pemasangan motor dan memasang pengait.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Menyiapkan relai motor:

Hubungkan pin sebagai berikut. Gunakan chip L293D (kerucut ke kiri) (Di diagram rangkaian) sehingga Anda dapat mengontrol relai. Ini akan memungkinkan Anda menghubungkan motor ke daya.

(Dimulai dari Kiri ke Kanan)

Pin 1 hubungkan ke soket pin 10 pada kontroler (Di diagram rangkaian)

Pin2 hubungkan ke soket pin 9 pada kontroler (Di diagram rangkaian)

Pin 3 hubungkan ke sisi positif relai (dengan 3 pin menghadap Anda, pin di kiri) (Di diagram rangkaian)

Pin 4 hubungkan ke ground 12V pada breadboard (Di diagram rangkaian)

Pin 5 Tidak digunakan (Di diagram rangkaian)

Pin 6 hubungkan ke sisi ground pada relai (dengan 3 pin menghadap Anda, pin di kanan) (Di diagram rangkaian)

Pin 7 hubungkan ke soket pin 8 pada kontroler (Di diagram rangkaian)

Pin 8 hubungkan ke +12V pada breadboard (Di diagram rangkaian)

Hubungkan pin tengah pada relai ke +12V pada breadboard (Di diagram rangkaian)

Hubungkan pin kanan belakang pada relai (dengan 3 pin menghadap Anda, pin di belakang di kanan) ke kabel positif yang pergi ke driver motor (Di diagram rangkaian)

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Pemasangan layar dan tombol: Layar - Pilih tempat di sisi kanan mesin (melihat mesin dari depan) dan tandai lubang yang perlu dibuat untuk bagian tampilan layar (2.53937" x 0.5708661) Tombol - Pilih tempat di sisi kanan mesin (melihat mesin dari depan) dan tandai lubang yang perlu dibuat untuk 4 tombol. Lubang perlu berukuran 1.10236" jika menggunakan tombol yang sama persis dengan daftar bagian. Saya suka menggunakan bor lebih kecil dari yang dibutuhkan dan kertas pasir untuk menghaluskan ke ukuran yang dibutuhkan.

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Ingatlah bahwa Anda perlu memastikan bahwa semua koneksi berada pada tempat yang sama persis seperti dalam diagram di atas. LED yang ditunjukkan dalam diagram adalah LED yang terpasang di dalam tombol tekan. Diagram menunjukkan mereka terpisah tetapi itu hanya untuk tampilan dan untuk memudahkan membaca skema.

Hubungkan setiap motor ke driver yang diberikan dengan mereka. Kemudian hubungkan setiap driver ke kontroler menggunakan langkah-langkah ini:

Pengaturan Motor:

Daya harus terhubung ke sisi 12V pada breadboard. Daya ini berasal dari suplai daya ATX yang akan kita siapkan di akhir. Kemudian hubungkan 4 pin "masuk" pada driver ke kontroler. Pin-pin ini adalah sebagai berikut

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

********* JANGAN MENGHUBUNGKAN KE 2 PIN PERTAMA DI BLOK INI MEREKA ADA PIN 5V - TIDAK DIGUNAKAN DALAM PROYEK INI *********

Motor 1: Pin Biru 22, 24, 26, 28 (Di diagram rangkaian)

Motor 2: Pin Kuning 23, 25, 27, 29 (Di diagram rangkaian)

Motor 3: Pin Hijau 30, 32, 34, 36 (Di diagram rangkaian)

Motor 4: Pin Merah 31, 33, 35, 37 (Di diagram rangkaian)

Koneksi Tombol:

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Hubungkan satu sisi Tombol Tekan 1 ke daya 5v, sisi lain ke resistor grounded 220 bersama dengan Pin Analog A0 (Di diagram rangkaian)

Hubungkan satu sisi Tombol Tekan 2 ke daya 5v, sisi lain ke resistor grounded 220 bersama dengan Pin Analog A1 (Di diagram rangkaian)

Hubungkan satu sisi Tombol Tekan 3 ke daya 5v, sisi lain ke resistor grounded 220 bersama dengan Pin Analog A2 (Di diagram rangkaian)

Hubungkan satu sisi Tombol Tekan 4 ke daya 5v, sisi lain ke resistor grounded 220 bersama dengan Pin Analog A3 (Di diagram rangkaian)

LAYAR LCD:

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Hubungkan layar ke sisi 5v pada breadboard untuk daya dan ground

Pin adalah sebagai berikut:

Pin 1: Hubungkan ke Ground(Di diagram rangkaian)

Pin 2: Hubungkan ke daya 5v (Di diagram rangkaian)

Pin 3: Hubungkan ke potentiometer yang dapat disesuaikan (Ditampilkan di bawah) Pin kiri bawah ke ground, pin kanan bawah ke daya, dan pin atas ke pin 3 pada LCD (Di diagram rangkaian, Ini adalah cara Anda mengatur kontras pada LCD sehingga teks tajam dan bersih)

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Pin 4: Pin sinyal pertama ke soket pin kontroler 2 (Di diagram rangkaian)

Pin 5: Hubungkan ke ground (Di diagram rangkaian)

Pin 6: Pin sinyal kedua ke soket pin kontroler 3 (Di diagram rangkaian)

Pin 7: TIDAK DIGUNAKAN

Pin 8: TIDAK DIGUNAKAN

Pin 9: TIDAK DIGUNAKAN

Pin 10: TIDAK DIGUNAKAN

Pin 11: Pin sinyal ketiga ke soket pin kontroler 4 (Di diagram rangkaian)

Pin 12: Pin sinyal keempat ke soket pin kontroler 5 (Di diagram rangkaian)

Pin 13: Pin sinyal kelima ke soket pin kontroler 6 (Di diagram rangkaian)

Pin 14: Pin sinyal keenam ke soket pin kontroler 7 (Di diagram rangkaian)

Pin 15: Hubungkan ke daya 5v (Di diagram rangkaian)

Pin 16: Hubungkan ke Ground (Di diagram rangkaian)

SUPAI DAYA ATX:

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Hanya potong kabel yang diperlukan untuk memasang daya pada perangkat. Kabel lainnya lebih aman di konektor plastik dan akan memungkinkan Anda menggunakannya untuk proyek lain jika diperlukan.

Pin ATX:

Potong dan kupas (Ground) kabel hitam pin 3 dan (Sinyal) kabel hijau pin 16. Sambungkan kabel ini ke saklar sehingga Anda dapat menyalakan dan mematikan mesin (Di diagram rangkaian)

Potong dan kupas (Ground) kabel hitam pin 7 dan (+12V) kabel kuning pin 10. Sambungkan kabel ini ke sisi 12v pada breadboard yang ditetapkan dalam koneksi hitam dan kuning. (Di diagram rangkaian)

Potong dan kupas (Ground) kabel hitam pin 24 dan (+12V) kabel kuning pin 11. Sambungkan kabel ini ke konektor yang kompatibel untuk memasang daya pada papan Arduino (Di diagram rangkaian)

Potong dan kupas (Ground) kabel hitam pin 19 dan (+5V) kabel merah pin 21. Sambungkan kabel ini ke sisi 5V pada breadboard (Di diagram rangkaian)

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Pemisah Rak dan Gulungan:

Ini cara menyiapkan rak dan ekstruder Anda.

Rak - Di titik tengah 6 1/2" dari dinding samping kiri (melihat mesin dari depan) atau dinding pembagi harus ada tanda dari langkah-langkah di atas. Gunakan logam datar dan lipat menjadi segitiga di atas. Tampak seperti ini "^" Ini akan menjadi pemisah tengah Anda. Letakkan segitiga di atas tanda tengah pada rak. Ulangi untuk rak kedua. Gunakan lem panas untuk menempelkan di tempat. Saya juga melemarkan sisi tetapi itu opsional.

Gulungan - Untuk membuat gulungan cari tabung 1 1/2" terlebih dahulu. Pipa, tabung kit, kalung spray, atau objek serupa akan cukup. Salah satu trik adalah ambil karet getah dan lipat dari atas ke bawah di sekitar panjang tabung. Garis lurus di setiap sisi getah di kedua sisi tabung. Setelah Anda memiliki garis paralel di kedua sisi gunakan penggaris untuk menandai titik berikutnya. Pilih satu sisi dan ukur 1" dan tandai, kemudian ukur 2" dari sana tandai dan terus buat jarak 2" hingga ujung tabung. Sekarang, di sisi lain tabung tandai hanya interval 2". Mulai membuat gulungan di sisi 1" tabung dan terus membuat gulungan Anda sehingga menyentuh setiap tanda di kedua sisi tabung. Ini akan memberi jarak 2" antara tangga. Harus cukup besar untuk sebagian besar barang. Jika Anda berencana menggunakannya untuk coklat batang sederhanakan gulungan menjadi 1" cukup kurangi rumus di atas setengahnya.

Menghubungkan gulungan ke roda yang dicetak 3D. Ingatlah bahwa ada beberapa roda yang diproduksi yang akan bekerja. Lihat di Amazon.

Di sisi 1" gulungan lipat gulungan ini sehingga membuat lingkaran. Kemudian sederhanakan diameternya sedikit lebih kecil dari roda. Setelah gulungan siap pasang di sekitar tepi roda. Ini harus menyebabkan gulungan mengompres di sekitar tepi roda dan mencegahnya tergelincir. Setelah Anda puas dengan pasangan ambil sedikit lem panas dan taruh pada roda di ujung gulungan untuk menahannya di tempat.

Stander Lampu LED:

Membuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Hubungkan kabel positif ke pin +12V di sisi 12V pada breadboard. Hubungkan kabel ground ke pin ground di sisi 12V pada breadboard (Tidak ada dalam diagram)

TANYA SEMUA PERTANYAAN YANG ANDA PUNYA AGAR SAYA DAPAT MEMBANTU DENGAN PEMBARUAN UNTUK MEMBUAT PROYEK INI YANG PALING MUDAH.

Kode

Mesin Jual - TANPA MENGUBAH LAMPU LEDArduino
Semua yang Anda butuhkan untuk menyelesaikan dan memahami proyek
// Display #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Stepper Library #include <Stepper.h> //including stepper motor library //Relay Setup #define ENABLE 10 #define DIRA 8 #define DIRB 9 //Define "i" int i; //defining pins section //Stepper Connect 1 int stepIN1Pin = 22; int stepIN2Pin = 24; int stepIN3Pin = 26; int stepIN4Pin = 28; //Stepper Connect 2 int stepIN1Pin1 = 23; int stepIN2Pin1 = 25; int stepIN3Pin1 = 27; int stepIN4Pin1 = 29; //Stepper Connect 3 int stepIN1Pin2 = 30; int stepIN2Pin2 = 32; int stepIN3Pin2 = 34; int stepIN4Pin2 = 36; //Stepper Connect 4 int stepIN1Pin3 = 31; int stepIN2Pin3 = 33; int stepIN3Pin3 = 35; int stepIN4Pin3 = 37; //define steps int stepsPerRevolution = 2048; // amount of steps per revolution //define buttons pin ports const int button1Pin = A0; // Push Button 1 Analog Pin A0 const int button2Pin = A1; // Push Button 2 Analog Pin A1 const int button3Pin = A2; // Push Button 3 Analog Pin A2 const int button4Pin = A3; // Push Button 4 Analog Pin A3 //define each stepper // 1 Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); //2 Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1); //3 Stepper myStepper2(stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); //4 Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup() { // Assign Push Button Pin input: pinMode(button1Pin, INPUT); pinMode(button2Pin, INPUT); pinMode(button3Pin, INPUT); pinMode(button4Pin, INPUT); // Assign pin output pinMode(ENABLE, OUTPUT); pinMode(DIRA, OUTPUT); pinMode(DIRB,OUTPUT); // Assign Stepper Speed myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialize LCD Display lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Select your item"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4"); } void loop() { // read button assignment int button1State, button2State, button3State, button4State; button1State = digitalRead(button1Pin); button2State = digitalRead(button2Pin); button3State = digitalRead(button3Pin); button4State = digitalRead(button4Pin); digitalWrite(ENABLE, HIGH);// Set state for (i=0;i<5;i++); // define action when button 1 is pressed if (((button1State == LOW) && !(button2State == LOW)))// if we're pushing button 1 OR button 2 {digitalWrite(DIRA,HIGH); //engage relay digitalWrite(DIRB,LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper0.step(stepsPerRevolution); //run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 1"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(DIRA,LOW); //disengage relay digitalWrite(DIRB,LOW); } // define action when button 2 is pressed if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2 {digitalWrite(DIRA,HIGH); //engage relay digitalWrite(DIRB,LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 2"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(DIRA,LOW); //disengage relay digitalWrite(DIRB,LOW); } // define action when button 3 is pressed if (((button3State == LOW) && !(button4State == LOW))) // if we're pushing button 1 OR button 2 {digitalWrite(DIRA,HIGH); //engage relay digitalWrite(DIRB,LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 3"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(DIRA,LOW); //disengage relay digitalWrite(DIRB,LOW); } // define action when button 4 is pressed if (((button4State == LOW) && !(button3State == LOW))) // if we're pushing button 1 OR button 2 {digitalWrite(DIRA,HIGH); //engage relay digitalWrite(DIRB,LOW); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 4"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(DIRA,LOW); //disengage relay digitalWrite(DIRB,LOW); } } 
Mesin Jual - DENGAN MENGUBAH LAMPU LEDC#
Lihat video!
// Display #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Stepper Library #include <Stepper.h> //including stepper motor library //Relay Setup #define ENABLE 10 #define PinA 8 #define PinB 9 #define REDPIN 38 #define GREENPIN 39 #define BLUEPIN 40 //Define "i" int i; //Define "RGB" int r, g, b; //defining pins section //Stepper Connect 1 int stepIN1Pin = 22; int stepIN2Pin = 24; int stepIN3Pin = 26; int stepIN4Pin = 28; //Stepper Connect 2 int stepIN1Pin1 = 23; int stepIN2Pin1 = 25; int stepIN3Pin1 = 27; int stepIN4Pin1 = 29; //Stepper Connect 3 int stepIN1Pin2 = 30; int stepIN2Pin2 = 32; int stepIN3Pin2 = 34; int stepIN4Pin2 = 36; //Stepper Connect 4 int stepIN1Pin3 = 31; int stepIN2Pin3 = 33; int stepIN3Pin3 = 35; int stepIN4Pin3 = 37; //define steps int stepsPerRevolution = 2048; // amount of steps per revolution //define buttons pin ports const int button1Pin = A0; // Push Button 1 Analog Pin A0 const int button2Pin = A1; // Push Button 2 Analog Pin A1 const int button3Pin = A2; // Push Button 3 Analog Pin A2 const int button4Pin = A3; // Push Button 4 Analog Pin A3 //define each stepper // 1 Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); //2 Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1); //3 Stepper myStepper2(stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); //4 Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); void setup() { // Assign Push Button Pin input: pinMode(button1Pin, INPUT); pinMode(button2Pin, INPUT); pinMode(button3Pin, INPUT); pinMode(button4Pin, INPUT); // Assign pin output pinMode(ENABLE, OUTPUT); pinMode(PinA, OUTPUT); pinMode(PinB, OUTPUT); //LED Strips pin setup pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); // Assign Stepper Speed myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialize LCD Display lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Select your item"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4"); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); analogWrite(BLUEPIN, 256); } void loop() { // read button assignment int button1State, button2State, button3State, button4State; button1State = digitalRead(button1Pin); button2State = digitalRead(button2Pin); button3State = digitalRead(button3Pin); button4State = digitalRead(button4Pin); digitalWrite(ENABLE, HIGH);// Set state for (i = 0; i < 5; i++); // define action when button 1 is pressed if (((button1State == LOW) && !(button2State == LOW)))// if we're pushing button 1 OR button 2 { digitalWrite(PinA, HIGH); //engage relay digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); for (g = 256; g > 0; g--); analogWrite(GREENPIN, g); for (g = 256; g > 0; g--); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper0.step(stepsPerRevolution); //run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 1"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); for (g = 0; g < 256; g++); analogWrite(GREENPIN, g); digitalWrite(PinA, LOW); //disengage relay digitalWrite(PinB, LOW); } // define action when button 2 is pressed if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(PinA, HIGH); //engage relay digitalWrite(PinB, LOW); analogWrite(GREENPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); for (r = 256; r > 0; r--); analogWrite(REDPIN, r); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 2"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(PinA, LOW); //disengage relay digitalWrite(PinB, LOW); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); for (r = 0; r < 256; r++); analogWrite(REDPIN, r); } // define action when button 3 is pressed if (((button3State == LOW) && !(button4State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(PinA, HIGH); //engage relay digitalWrite(PinB, LOW); analogWrite(BLUEPIN, 256); for (r = 256; r > 0; r--); analogWrite(REDPIN, r); for (g = 256; g > 0; g--); analogWrite(GREENPIN, g); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 3"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(PinA, LOW); //disengage relay digitalWrite(PinB, LOW); for (g = 0; g < 256; g++); analogWrite(GREENPIN, g); for (r = 0; r < 256; r++); analogWrite(REDPIN, r); } // define action when button 4 is pressed if (((button4State == LOW) && !(button3State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(PinA, HIGH); //engage relay digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); lcd.setCursor(0, 0); lcd.print("Button State 4"); lcd.setCursor(2, 1); lcd.print("1 2 3 or 4"); digitalWrite(PinA, LOW); //disengage relay digitalWrite(PinB, LOW); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); } } 
Penerima Koin dan kode lengkapC#
Kode lengkap
// Display #include <LiquidCrystal.h> LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Stepper Library #include <Stepper.h> //including stepper motor library //Relay Setup #define ENABLE 10 //#define PinA 8 //#define PinB 9 //Transitor pins for LEDs #define REDPIN 38 #define GREENPIN 39 #define BLUEPIN 40 //Define "i" //int i; //Define "RGB" int r, g, b; // Constants const int coinpin = 21; const int ledpin = 13; const int targetcents = 100; // Variables volatile int cents = 0; int credits = 0; //defining pins section //Stepper Connect 1 int stepIN1Pin = 22; int stepIN2Pin = 24; int stepIN3Pin = 26; int stepIN4Pin = 28; //Stepper Connect 2 int stepIN1Pin1 = 23; int stepIN2Pin1 = 25; int stepIN3Pin1 = 27; int stepIN4Pin1 = 29; //Stepper Connect 3 int stepIN1Pin2 = 30; int stepIN2Pin2 = 32; int stepIN3Pin2 = 34; int stepIN4Pin2 = 36; //Stepper Connect 4 int stepIN1Pin3 = 31; int stepIN2Pin3 = 33; int stepIN3Pin3 = 35; int stepIN4Pin3 = 37; //define steps int stepsPerRevolution = 2048; // amount of steps per revolution //define buttons pin ports const int button1Pin = A0; // Push Button 1 Analog Pin A0 const int button2Pin = A1; // Push Button 2 Analog Pin A1 const int button3Pin = A2; // Push Button 3 Analog Pin A2 const int button4Pin = A3; // Push Button 4 Analog Pin A3 //define each stepper // 1 Stepper myStepper0(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin); //2 Stepper myStepper1(stepsPerRevolution, stepIN1Pin1, stepIN3Pin1, stepIN2Pin1, stepIN4Pin1); //3 Stepper myStepper2(stepsPerRevolution, stepIN1Pin2, stepIN3Pin2, stepIN2Pin2, stepIN4Pin2); //4 Stepper myStepper3(stepsPerRevolution, stepIN1Pin3, stepIN3Pin3, stepIN2Pin3, stepIN4Pin3); // Setup void setup() { // Assign interupt to Pin and condition attachInterrupt(digitalPinToInterrupt(coinpin), coinInterrupt, RISING); // Assign Push Button Pin input: pinMode(button1Pin, INPUT); pinMode(button2Pin, INPUT); pinMode(button3Pin, INPUT); pinMode(button4Pin, INPUT); // Assign relay pin output pinMode(ENABLE, OUTPUT); // pinMode(PinA, OUTPUT); // pinMode(PinB, OUTPUT); //LED Strips pin setup pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); // Assign Stepper Speed myStepper0.setSpeed(15); myStepper1.setSpeed(15); myStepper2.setSpeed(15); myStepper3.setSpeed(15); //Initialize LCD Display lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Select your item"); lcd.setCursor(0, 1); lcd.print(" #1 #2 #3 #4"); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); analogWrite(BLUEPIN, 256); } // Main loop void loop() { // If we've hit our target amount of coins, increment our credits and reset the cents counter if (cents >= targetcents) { credits = credits + 1; cents = cents - targetcents; } // If we haven't reached our target, keep waiting... else { } // Debugging zone lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print(cents); lcd.setCursor(3, 0); lcd.print("Coin Count"); lcd.setCursor(0, 1); lcd.print(credits); lcd.setCursor(3, 1); lcd.print("credit earned"); delay(1000); // Now, write your own code here that triggers an event when the player has credits! if (credits > 0) { // read button assignment int button1State, button2State, button3State, button4State; button1State = digitalRead(button1Pin); button2State = digitalRead(button2Pin); button3State = digitalRead(button3Pin); button4State = digitalRead(button4Pin); // digitalWrite(ENABLE, HIGH);// Set state // for (i = 0; i < 5; i++); // define action when button 1 is pressed if (((button1State == LOW) && !(button2State == LOW)))// if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay // digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); for (g = 256; g > 0; g--); analogWrite(GREENPIN, g); for (g = 256; g > 0; g--); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper0.step(stepsPerRevolution); //run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); for (g = 0; g < 256; g++); analogWrite(GREENPIN, g); digitalWrite(ENABLE, LOW); //disengage relay // digitalWrite(PinB, LOW); credits = credits - 1; cents = cents - cents; } // define action when button 2 is pressed if (((button2State == LOW) && !(button1State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay // digitalWrite(PinB, LOW); analogWrite(GREENPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); for (r = 256; r > 0; r--); analogWrite(REDPIN, r); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper1.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); digitalWrite(ENABLE, LOW); //disengage relay // digitalWrite(PinB, LOW); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); for (r = 0; r < 256; r++); analogWrite(REDPIN, r); credits = credits - 1; cents = cents - cents; } // define action when button 3 is pressed if (((button3State == LOW) && !(button4State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //engage relay // digitalWrite(PinB, LOW); analogWrite(BLUEPIN, 256); for (r = 256; r > 0; r--); analogWrite(REDPIN, r); for (g = 256; g > 0; g--); analogWrite(GREENPIN, g); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper2.step(stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); digitalWrite(ENABLE, LOW); //disengage relay // digitalWrite(PinB, LOW); for (g = 0; g < 256; g++); analogWrite(GREENPIN, g); for (r = 0; r < 256; r++); analogWrite(REDPIN, r); credits = credits - 1; cents = cents - cents; } // define action when button 4 is pressed if (((button4State == LOW) && !(button3State == LOW))) // if we're pushing button 1 OR button 2 { digitalWrite(ENABLE, HIGH); //! engage relay // digitalWrite(PinB, LOW); analogWrite(REDPIN, 256); analogWrite(GREENPIN, 256); for (b = 256; b > 0; b--); analogWrite(BLUEPIN, b); lcd.clear(); lcd.setCursor(2, 0); lcd.print("Dispensing"); lcd.setCursor(3, 1); lcd.print("Your Item"); myStepper3.step(-stepsPerRevolution);//run motor lcd.clear(); lcd.setCursor(2, 0); lcd.print("Please take"); lcd.setCursor(3, 1); lcd.print("Your Item"); delay(2500); digitalWrite(ENABLE, LOW); //disengage relay // digitalWrite(PinB, LOW); for (b = 0; b < 256; b++); analogWrite(BLUEPIN, b); credits = credits - 1; cents = cents - cents; } } } // Coin Increase loop void coinInterrupt() { // Each time a pulse is sent from the coin acceptor, interrupt main loop to add 5 cent and flip on the LED cents = cents + 5; digitalWrite(ledpin, HIGH); } 

Skema Rangkaian

Ini adalah diagram lengkap sistem. Ini mencakup, ATX power supply, motors,LCD,LEDs, lights and controllerMembuat Mesin Jual Otomatis Pribadi Beroperasi Koin: Panduan Komponen & Rangkaian

Proses manufaktur

  1. Mesin EEG: Desain, Manufaktur, dan Aplikasi Terkini
  2. Evolusi dan Produksi Mesin Jahit: Dari Inovasi Abad 19 hingga Otomasi Modern
  3. Cara Kerja Mesin Jual Kentang Goreng: Tampilan Di Balik Layar
  4. Mesin Jual Susu Segar: Nyaman, Terjangkau, dan Ramah Lingkungan
  5. Mesin Vending Kentang Goreng: Menyajikan Kentang Goreng Panas Segar pada Permintaan
  6. Temukan Mesin Vending Mie: Cara Kerja dan Apa yang Bisa Anda Dapatkan
  7. Jelajahi Mesin Vending Teh, Kopi & Sup Inovatif
  8. Mesin Vending Makanan Siap Saji: Makanan Segar dan Sehat Kapan Saja
  9. Semua yang Perlu Anda Ketahui tentang Mesin Jual Minuman Ringan
  10. Membuka Potensi Keuntungan: Potensi Bisnis Mesin Jual Es Batang