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

Mesin Penjual Makanan Ringan Didukung Oleh Arduino

Komponen dan persediaan

Arduino UNO
Saya harus menggunakan Arduino Mega sebagai gantinya, untuk lebih banyak IO.
× 1
Pelindung Sensor
× 1
Motor DC 6V termasuk Roda
× 3
Inframerah (reflektif) atau sensor pengikut garis, digunakan untuk deteksi produk
× 3
Sensor kedekatan (elektromagnetik), digunakan untuk sensor koin nomor 1
× 1
Sensor interupter jarak (inframerah/optocoupler), digunakan untuk sensor koin nomor 2
× 1
Power Supply 6V untuk motor DC
× 1
Relai (umum)
4 Relai Sakelar
× 1
LCD (LCD Nokia 5110)
× 1
LED (generik)
LED Putih
× 2
Tombol Tekan
Merah, Kuning, dan Hijau
× 3

Aplikasi dan layanan online

Arduino IDE
Solidworks
atau pembuat model 3d apa pun

Tentang proyek ini

Pendahuluan

Halo, salam dari Indonesia.

Mesin penjual snack ini adalah tugas akhir saya. Proyek ini sebenarnya telah selesai pada akhir tahun 2015.

Tujuan dari proyek ini adalah untuk membuat mesin penjual otomatis, yang didukung oleh mikrokontroler arduino, menggunakan komponen "murah dan mudah didapat" yang tersedia di toko lokal.

Video di bawah ini adalah video tes akhir Snack Vending Machine, mulai dari tes pembayaran/koin, pemilihan produk, hingga pengiriman produk.

Jadi, inilah yang saya lakukan untuk mencapai tujuan itu:

Langkah 1:Buat sketsa konsep

Pikirkan dulu, konsepnya .

Sketsa ini adalah ide pertama saya tentang apa yang mungkin saya buat. Ini akan menjadi mesin penjual makanan ringan, menerima koin sebagai pembayaran, dan menggunakan kotak Akrilik.

Pilih dan matangkan konsep Anda , coba pikirkan apa saja, skenario apa saja, kondisi apa pun.

Cobalah untuk membuat sketsa semuanya, jangan khawatir jika gambar Anda jelek, lihatlah gambar saya dengan serius. :D

Waktu yang tepat untuk memikirkan hal yang tidak terpikirkan adalah sebelum proyek dimulai.

Langkah 2:Buat Model 3D

Mungkin langkah ini tidak diperlukan untuk semua orang, tetapi bagi saya, dan untuk proyek ini, ini sangat penting.

Saya membuat model solidworks. Dan maksud saya model yang benar-benar lengkap. Saya perlu menentukan dimensi produk, dalam hal ini, paket makanan ringan. Ukuran koin yang diterima, ukuran koin yang ditolak, ukuran slot koin, ukuran jalur koin, ukuran tombol tekan, ukuran hampir semuanya. Langkah ini meliputi membandingkan, memilih, dan mengukur ukuran Mikrokontroler Arduino yang digunakan. Sensor apa yang digunakan, atau mungkin akan digunakan di masa depan, di mana harus ditempatkan, apa dimensi dan ukurannya, ke mana koin yang diterima pergi, saya juga memikirkan di mana saya harus meletakkan LCD monokrom (tidak perlu tapi saya bersikeras).

Dan terakhir, masih dalam pembuatan model solidworks, jangan lupa buat lubang untuk sekrup di setiap bagiannya.

Case terbuat dari bahan Acrylic, dan dipotong menggunakan metode laser cutting. Itu sebabnya saya membuat model sedetail dan seakurat mungkin, karena semakin akurat model saya, semakin banyak presisi case yang akan saya dapatkan.

Langkah 3:Rancang Slot Koin

Untuk menyaring koin, pertama saya menggunakan dimensi koin. Dengan merancang koin slot, saya dapat menentukan ukuran koin apa yang boleh masuk ke mesin .

Kemudian filter kedua, saya menentukan ukuran koin apa yang diperbolehkan untuk diterima dan digulirkan ke tempat koin .

Karena dengan menggunakan gaya gravitasi, jika ukuran koin (diameter) lebih kecil dari panjang ramp/track koin, maka koin akan jatuh dan ditolak.

  • Pada gambar di atas, koin di sebelah kiri tidak bisa masuk slot koin.
  • Koin di tengah akan jatuh dan ditolak.
  • Koin di sebelah kanan adalah koin yang diterima, turun ke pemegang koin.

Ini adalah video ketika saya melakukan beberapa pengujian koin, ini akan menunjukkan kepada Anda bagaimana metode ini bekerja.

Langkah 4:Siapkan dan uji setiap komponen

Siapkan arduino Anda, siapkan segala sesuatu yang dibutuhkan.

Uji setiap komponen, tombol tekan LCD, relai, LED, coba gabungkan semuanya dan pelajari logika dan pengkodean yang berbeda. Pastikan Anda tahu tentang apa yang Anda lakukan. Cobalah untuk menguji hingga batasnya, temukan batasnya, tetapi jangan sampai melanggarnya.

Mengapa menggunakan resistor, apa yang terjadi ketika ini, atau itu, mengapa pembacaan sensor tidak stabil, nilai apa yang sebenarnya dibaca oleh sensor, dll. Saya melakukan tes dan menemukan bahwa pembacaan sensor jarak "tidak bersih", perlu menambahkan resistor ke tenang.

Sensor inframerah berkinerja sangat buruk dan tidak normal di bawah sinar matahari langsung (saya tahu tentang ini sebelumnya, tetapi tidak pernah benar-benar merasakan dampaknya, sampai sekarang). Solusinya adalah dengan menggunakan beberapa lakban untuk mengisolasi di sekitar bagian penerima sensor inframerah, seperti yang ditunjukkan pada gambar.

Langkah 5:Bangun mekanisme Spiral

Ini adalah salah satu bagian terpenting pada mesin penjual otomatis, mekanisme pengiriman.

Saya menggunakan mekanisme spiral, dengan kawat aluminium (diameter kawat 2mm), dibentuk secara manual menjadi spiral dengan bantuan Pipa PVC diameter 9cm.

Kawat spiral diikat ke roda menggunakan pengikat kabel. Saat motor DC ON, roda berputar, dan kawat spiral akan berputar.

Spiral yang berputar sebenarnya mengubah rotasi menjadi gerakan linier produk.

Langkah 6:Bangun mekanisme pengidentifikasi koin

Gambar pertama adalah sensor koin nomor 1, menggunakan sensor jarak, atau sensor elektromagnet induksi. Ketika koin diterima melewati sensor ini, itu akan memicu Arduino untuk mulai menghitung waktu (dalam milidetik).

jika sensor1 terpicu maka mulailah menghitung waktu dalam milidetik  

Dan ketika menerima koin pass sensor koin nomor 2, sensor interupter jarak, arduino akan berhenti menghitung waktu, dan mendapatkan waktu yang dibutuhkan untuk koin tertentu, untuk melakukan perjalanan dari sensor nomor 1 ke sensor nomor 2.

jika sensor2 terpicu maka berhenti menghitung waktu dalam milidetik. "waktu perjalanan" adalah xxx milidetik  

Jangan terlalu banyak menggunakan magnet karena akan macet dan membuat koin berhenti di tengah jalan koin. Kami tidak ingin itu terjadi, karena kami perlu menghitung waktu untuk setiap koin, untuk mendapatkan "waktu tempuh" antara sensor nomor 1 dan nomor 2. "Waktu tempuh" ini (dalam milidetik), digunakan untuk arduino untuk menentukan nilai koin yang diterima.

jika "waktu tempuh" lebih dari atau sama dengan "yyy" milidetik, maka koinnya "aaa", selain itu "bbb" 

Ini adalah video ketika saya menguji metode ini, mengidentifikasi koin menggunakan magnet.

Langkah 7:Bangun mekanisme pendeteksian produk

Saya menggunakan 3 sensor inframerah untuk mendeteksi produk saat jatuh karena didorong/digerakkan oleh mekanisme spiral.

Ketika produk jatuh, itu akan memicu sensor inframerah, mengirimkan sinyal OFF ke Motor DC (melalui relai).

Video ini menunjukkan cara kerja pendeteksian produk di mesin penjual otomatis ini.

Langkah 8:Menggunakan LCD untuk informasi

Dalam proyek ini, saya membuat LCD yang menampilkan informasi (dalam mata uang Indonesia) tentang nilai koin yang diterima, setiap pelanggan memasukkan koin. Ini juga akan menunjukkan berapa banyak saldo total dari koin yang diterima, dan instruksi umum lainnya tentang langkah demi langkah untuk mengoperasikan mesin ini.

Saat mesin AKTIF

  • Tampilan UTAMA ="Silakan masukkan koin".
  • JIKA koin dimasukkan ="Tampilkan nilai koin, dan saldo total".
  • JIKA koin tidak masuk =simpan tampilan UTAMA.

Setelah koin berhasil diidentifikasi

  • ​JIKA total saldo lebih atau sama dengan harga produk ="Silahkan pilih produk".
  • JIKA total saldo kurang dari harga produk ="Silakan masukkan lebih banyak koin".

Setelah mekanisme spiral AKTIF (pengiriman terjadi)

  • JIKA Mekanisme deteksi produk dipicu ="Terima kasih", Transaksi selesai.
  • Tunda, dan kembali ke tampilan UTAMA.

Langkah 9:Menyelesaikan dan menguji

Akhirnya, selesai Snack Vending Machine.;)

Setelah 3 bulan atau lebih, saya siap untuk melakukan beberapa tes akhir untuk mesin ini, mulai dari tes pembayaran/koin, pemilihan produk, dan pengiriman produk.

Ini adalah video tes akhir Snack Vending Machine:

Saya harap proyek ini membantu beberapa dari Anda, mungkin memberi Anda inspirasi atau ide, tentang membangun dan membuat mesin penjual otomatis bertenaga Arduino berikutnya.

Langkah 10:Ruang untuk perbaikan

Beberapa ide untuk meningkatkan Mesin Penjual Makanan Ringan ini:

  • Tambahkan beberapa mekanisme penukaran koin.
  • Terima uang kertas.
  • Terima bitcoin dan/atau pembayaran digital.
  • Tampilkan stok produk di LCD.
  • IoT:Beri tahu melalui internet setiap kali terjadi transaksi.
  • IoT:Beri tahu saat stok produk kosong atau hampir habis, dll.

Terima kasih khusus:ITENAS Bandung, Departemen Teknik Mesin.

Kode

  • Kode sumber untuk Mesin Penjual Makanan Ringan
Source code untuk Mesin Penjual Makanan RinganArduino
Ini adalah source code yang saya gunakan untuk proyek vending machine ini
const byte SIAP =0;const byte KOIN_MASUK1 =1;const byte KOIN_MASUK2 =2;const byte KOIN_MASUK3 =3;const byte KOIN_MASUK4 =4;const byte KOIN_MASUK5 =5; byte konstituen KOIN_MASUK6 =6;byte konstituen KOIN_MASUK7 =7;bita konstanta SALDO_500 =8;bita konstanta SALDO_500500 =9;bita konstanta SALDO_500500500 =10;bita konstanta SALDO_500500500500 =11;byte konstanta SALDO_500_5005001000 =12; SALDO_5001000500 =14;byte konstanta SALDO_50010001000 =15;bita konstanta SALDO_5005001000 =16;bita konstanta SALDO_1000 =17;bita konstan SALDO_10001000 =18;bita konstanta SALDO_1000500 =19;bita konstan SALDO_1000500500 =20;KO_1000_bita konstan SALDO 22;byte state =SIAP;const float jeda_waktu =876;unsigned long time1;unsigned long time2;unsigned long time3;unsigned long time4;unsigned long time5;unsigned long time6;unsigned long time7;#definisi PIN_SCE 7#definisi PIN_RESET 6# tentukan PIN_DC 5#tentukan PIN_SDIN 4# tentukan PIN_SCLK 3#tentukan LCD_C RENDAH#tetapkan LCD_D TINGGI#tetapkan LCD_X 84#tetapkan LCD_Y 48statis const byte ASCII[][5] ={ {0x00, 0x00, 0x00, 0x00, 0x00} // 20 , {0x00, 0x00, 0x5f , 0x00, 0x00} // 21 ! , {0x00, 0x07, 0x00, 0x07, 0x00} // 22 " , {0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # , {0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ , { 0x23, 0x13, 0x08, 0x64, 0x62} // 25 % , {0x36, 0x49, 0x55, 0x22, 0x50} // 26 &, {0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' , {0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( , {0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) , {0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * , {0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + , {0x00, 0x50, 0x30, 0x00, 0x00} // 2c , , {0x08, 0x08, 0x08, 0x08, 0x08} // 2d - , {0x00, 0x60, 0x60, 0x00, 0x00} // 2e . , {0x20, 0x10, 0x08, 0x04, 0x02} // 2f / , {0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 , {0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 , {0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 , {0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 , {0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 , {0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 , {0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 , {0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 , {0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 , {0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 , {0x00, 0x36, 0 x36, 0x00, 0x00} // 3a :, {0x00, 0x56, 0x36, 0x00, 0x00} // 3b; , {0x08, 0x14, 0x22, 0x41, 0x00} // 3c <, {0x14, 0x14, 0x14, 0x14, 0x14} // 3d =, {0x00, 0x41, 0x22, 0x14, 0x08} // 3e> , { 0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? , {0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ , {0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A , {0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B , { 0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C , {0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D , {0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E , {0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F , {0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G , {0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H , {0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I , {0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J , {0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K , {0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L , {0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M , {0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N , {0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O , {0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P , {0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q , {0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R , {0x46, 0x49, 0x49, 0x49, 0x31} // 53 S , {0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T , {0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U , {0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V , {0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W , {0x63, 0x14, 0 x08, 0x14, 0x63} // 58 X , {0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y , {0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z , {0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ , {0x02, 0x04, 0x08, 0x10, 0x20} // 5c Â¥ , {0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] , {0x04, 0x02, 0x01, 0x02 , 0x04} // 5e ^ , {0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ , {0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` , {0x20, 0x54, 0x54, 0x54, 0x78 } // 61 a , {0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b , {0x38, 0x44, 0x44, 0x44, 0x20} // 63 c , {0x38, 0x44, 0x44, 0x48, 0x7f} / / 64 d , {0x38, 0x54, 0x54, 0x54, 0x18} // 65 e , {0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f , {0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g , {0x7f, 0x08, 0x04, 0x04, 0x78} // 68 j , {0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i , {0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j , {0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k , {0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l , {0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m , {0x7c , 0x08, 0x04, 0x04, 0x78} // 6e n , {0x38, 0x44, 0x44, 0x44, 0x38} // 6f o , {0x7c, 0x14, 0x14, 0x14, 0x08 } // 70 p , {0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q , {0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r , {0x48, 0x54, 0x54, 0x54, 0x20} / / 73 d , {0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t , {0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u , {0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v , {0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w , {0x44, 0x28, 0x10, 0x28, 0x44} // 78 x , {0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y , {0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z , {0x00, 0x08, 0x36, 0x41, 0x00} // 7b { , {0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | , {0x00, 0x41, 0x36, 0x08, 0x00} // 7d } , {0x10, 0x08, 0x08, 0x10, 0x08} // 7e â†� , {0x78, 0x46, 0x41, 0x46, 0x78} // 7f â '};void LcdWrite(byte dc, byte data){ digitalWrite(PIN_DC, dc); digitalWrite(PIN_SCE, RENDAH); shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); digitalWrite(PIN_SCE, HIGH);}void LcdCharacter(char character){ LcdWrite(LCD_D, 0x00); for (int indeks =0; indeks <5; indeks++) { LcdWrite(LCD_D, ASCII[karakter - 0x20][indeks]); } LcdWrite(LCD_D, 0x00);}void LcdClear(void){ for (int indeks =0; indeks  Siap"); LcdInitialise(); LcdClear(); LcdString("Masukkan Koin Rp500 atau Koin Rp1000 @ Rp2000"); delay(500);}void loop() { int x =analogRead(14); if (status ==SIAP) { if (x>=33) { status =KOIN_MASUK1; waktu1 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK1) &&(!(digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK1)) { unsigned long diff1 =(millis() - time1 ); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff1); Serial.println("ms"); if (diff1> jeda_waktu) { state =SALDO_1000; LcdInitialise(); LcdClear(); LcdString("diterima Saldo=Rp1000 Tambah Koin Koin Rp1000"); digitalWrite (13, TINGGI); Serial.println("koin=Rp1000, Saldo:Rp1000"); nada(2, 4200, 299); } else if (diff1 =33) { status =KOIN_MASUK2; waktu2 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK2) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK2)) { unsigned long diff2 =(millis() - time2); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff2); Serial.println("ms"); if (diff2> jeda_waktu) { state =SALDO_5001000; LcdInitialise(); LcdClear(); LcdString("Diterima Saldo=Rp1500 Tambah Koin Koin Rp1000"); nada(2, 4200, 299); Serial.println("koin=Rp1000, Saldo:Rp1500"); } else if (diff2 =33) { status =KOIN_MASUK3; waktu3 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK3) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK3)) { unsigned long diff3 =(millis() - time3); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff3); Serial.println("ms"); if (diff3> jeda_waktu) { state =SALDO_5005001000; LcdInitialise(); LcdClear(); LcdString(" diterima Saldo=Rp2000 Pilih Produk Koin Rp1000"); Serial.println("koin=Rp1000, Saldo:Rp2000"); nada(2, 4200, 799); } else if (diff3 =33) { status =KOIN_MASUK4; waktu4 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK4) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK4)) { unsigned long diff4 =(millis() - time4); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff4); Serial.println("ms"); if (diff4> jeda_waktu) { state =SALDO_5005005001000; LcdInitialise(); LcdClear(); LcdString(" diterima Saldo=Rp2500 Pilih Produk Koin Rp1000"); Serial.println("koin=Rp1000, Saldo:Rp2500"); nada(2, 4200, 799); } else if (diff4 =33) { status =KOIN_MASUK5; waktu5 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK5) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK5)) { unsigned long diff5 =(millis() - time5); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff5); Serial.println("ms"); if (diff5> jeda_waktu) { state =SALDO_50010001000; LcdInitialise(); LcdClear(); LcdString(" diterima Saldo=Rp2500 Pilih Produk Koin Rp1000"); Serial.println("koin=Rp1000, Saldo:Rp2500"); nada(2, 4200, 799); } else if (diff5 =33) { status =KOIN_MASUK6; waktu6 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK6) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK6)) { unsigned long diff6 =(millis() - time6); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff6); Serial.println("ms"); if (diff6> jeda_waktu) { state =SALDO_10001000; LcdInitialise(); LcdClear(); LcdString(" diterima Saldo=Rp2000 Pilih Produk Koin Rp1000"); Serial.println("koin=Rp1000, Saldo:Rp2000"); nada(2, 4200, 799); } else if (diff6 =33) { status =KOIN_MASUK7; waktu7 =mili(); nada (2, 4200, 40); Serial.println("snsr1,"); Serial.println("mulai minggu"); } } else if ((status ==KOIN_MASUK7) &&((digitalRead(13)))) { if ((digitalRead(12)) &&(status ==KOIN_MASUK7)) { unsigned long diff7 =(millis() - time7); Serial.println("snsr2,"); Serial.println("berhenti wkt"); Serial.print("jeda wkt:"); Serial.print(diff7); Serial.println("ms"); if (diff7> jeda_waktu) { state =SALDO_10005001000; LcdInitialise(); LcdClear(); LcdString(" diterima Saldo=Rp2500 Pilih Produk Koin Rp1000"); Serial.println("koin=Rp1000, Saldo:Rp2500"); nada(2, 4200, 799); } else if (diff7  Siap"); } }}

Suku cadang dan penutup khusus

Ini adalah printscreen model 3d solidworks saya untuk proyek ini.

Proses manufaktur

  1. Mesin Penjual Otomatis
  2. Pemantauan CO2 dengan Sensor K30
  3. Berapa Tinggi Anda?
  4. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  5. Arduino Cloud Sensor Tower
  6. Sensor Gerakan Pistol Air
  7. Mesin Penjual Otomatis Terbalik (RVM)
  8. Harga Mesin Bekas
  9. Apa itu Mesin Penjual Susu?
  10. Apa itu Mesin Penjual Mie?