Proses manufaktur
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 |
![]() |
|
![]() |
|
Proyek
Ini adalah cara mudah untuk membuat dispenser permen hanya dengan menggunakan:sensor IR, servo, dan tombol tekan. Ini dapat dibagi menjadi langkah-langkah berikut:
Berikut adalah video demonstrasi singkat:
Menulis coding adalah bagian tersulit bagi saya karena saya masih baru dalam menulis bahasa coding tetapi saya berhasil melakukannya setelah banyak kesalahan dan bantuan dari Pak Google dan teman-teman. Menulis kode adalah waktu terlama di bagian proyek ini.
Kredit untuk orang yang MENGINSPIRASI saya untuk membuat dispenser permen ini! Ini adalah versi sederhana dari: https://www.hackster.io/gatoninja236/candy-dispenser-with-google-assistant-564724
Membuat Kotak dan Bagian Mekanik
Ini adalah bagian yang menyenangkan dari proyek untuk dibuat. Butuh setidaknya 1 hari penuh untuk menyelesaikannya sepenuhnya setelah beberapa kesalahan dan bagian yang tidak sesuai.
Langkah 1
Komponen Tata Letak
Ini mungkin terlihat sangat berantakan tetapi ini adalah cara termudah untuk memilah setiap komponen dan menguji setiap bagian untuk melihat apakah ada kesalahan. Saya meletakkan berbagai warna kabel agar lebih mudah dilihat. Saya meletakkan semua komponen di selembar karton dan memilah mana yang lebih dulu.
Langkah 2
Membuat Kotak
Saya menggambar gambar teknis tentang bagaimana kotak itu seharusnya terlihat. Sebagian besar bagian terbuat dari Karton dan beberapa terbuat dari Akrilik. Kemudian saya mengukur setiap bagian.
Langkah 3
Beginilah tampilannya setelah merekatkan semuanya (menggunakan selotip terlebih dahulu).
Lalu saya memotong tempat untuk komponen:
Untuk cangkir:
Jangan lupa untuk memotong sensor juga:
Dispensernya saya buat langkah-langkah agar permennya tidak langsung jatuh:
Langkah 4
Saya meletakkan papan tempat memotong roti dan Arduino di belakang satu sama lain. Saya menggunakan akrilik untuk merekatkannya. Dengan cara ini akan menghemat banyak ruang.
Langkah 5
Mulailah memasang komponen ke papan. Saya mulai dengan LCD dan tombol.
Selanjutnya, setelah memasang semua kabel pada komponen, saya memasangnya di tengah kotak.
Memasang servo:
Begini penampakannya dari belakang. Saya juga menambahkan tombol daya untuk menyalakan Dispenser menggunakan baterai.
Langkah 6
Tampilan selesai.
//------PERPUSTAKAAN-----#termasuk#termasuk #termasuk //------PERPUSTAKAAN--- ---// Atur alamat LCD ke 0x27 untuk 16 karakter dan 2 baris displayLiquidCrystal_I2C lcd(0x27, 16, 2);Servo myservo;int pos =90; // servo start positionint buttonCLK =7; //buttonSearah jarum jam pinint buttonAntiCLK =6; //buttonAntiClockwise pin//int sensorPin =2; // Sensor IR yang akan dipasang ke pin digital NO.2//int sensorState =0; // variabel sensorState untuk menyimpan statistik tentang status set sensorint =0;const int avoidPin =5; //sensor penghalang ir terpasang ke pin 5void setup(){ lcd.begin(); // inisialisasi LCD lcd.clear(); myservo.attach(9); // Servo Digital 9 pinMode(buttonCLK, INPUT); pinMode(tombolAntiCLK, INPUT); pinMode(hindariPin, INPUT); //set avoidPin sebagai INPUT Serial.begin(9600); lcd.lampu latar(); // Nyalakan lampu hitam lcd.setCursor(3,0); lcd.print("Selamat datang di"); lcd.setCursor(3,1); lcd.print("Tanah Permen"); penundaan(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Berapa banyak permen?"); lcd.setCursor(0,1); lcd.print("Sedikit Banyak"); delay(5000);}void loop(){ //----------INI FUNGSI JIKA UNTUK TOMBOL----------- if(digitalRead(buttonCLK) ==HIGH ) // buttonSearah jarum jam ditekan { //TurnClockwise(); //Deteksi Sensor(); lcd.clear(); lcd.print("Silakan Letakkan Piala"); penundaan(2000); lcd.clear(); set =set + 1; } if(digitalRead(buttonAntiCLK) ==HIGH) // buttonAntiClockwise ditekan { //TurnAntiClockwise(); //Deteksi Sensor(); lcd.clear(); lcd.print("Silakan Letakkan Piala"); penundaan(2000); lcd.clear(); set =set + 2; } if(set ==1) { IRCLK(); } if(set ==2) { IRantiCLK(); } //----------INI FUNGSI JIKA UNTUK TOMBOL----------- }void TurnClockwise(){ Serial.println("Permen 1 Sedang Dibagi"); PermenTeks1(); //tampilkan Teks Jenis Permen untuk(pos =90; pos <180; pos +=1) // berubah dari 0 derajat ke 180 derajat { myservo.write(pos); // memberitahu servo untuk pergi ke posisi dalam variabel 'pos' delay(15); // menunggu 15 ms sampai servo mencapai posisi } if(pos ==180) { delay(2000); Terima KasihTeks(); // menampilkan Teks Terima Kasih }}void TurnAntiClockwise(){ Serial.println("Permen 2 Sedang Dibagi"); PermenTeks2(); //tampilkan Teks Jenis Permen untuk(pos =90; pos <180; pos +=1) // berubah dari 0 derajat ke 180 derajat { myservo.write(pos); // beri tahu servo untuk pindah ke posisi dalam variabel 'pos' delay(20); // menunggu 15 ms sampai servo mencapai posisi } if(pos ==180) { delay(3000); Terima KasihTeks(); // tampilkan Teks Terima Kasih } }void IRCLK(){ delay(1000); //buat penundaan 1 detik boolean avoidVal =digitalRead(avoidPin); //membaca nilai pin4 lcd.setCursor(0,0); lcd.print("Mendeteksi Piala"); lcd.setCursor(0,14); lcd.print("..."); if(avoidVal ==LOW) //jika nilainya LOW level { lcd.clear(); lcd.print("Piala Ditempatkan"); penundaan(2000); Putar searah jarum jam(); }}void IRAntiCLK(){ delay(1000); //buat penundaan 1 detik boolean avoidVal =digitalRead(avoidPin); //membaca nilai pin4 lcd.setCursor(0,0); lcd.print("Mendeteksi Piala"); lcd.setCursor(0,14); lcd.print("..."); if(avoidVal ==LOW) //jika nilainya LOW level { lcd.clear(); lcd.print("Piala Ditempatkan"); penundaan(2000); TurnAntiClockwise(); } }kosongkan CandyText1(){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Menuang"); lcd.setCursor(1,1); lcd.print("Permen Kecil");}void CandyText2(){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Menuang"); lcd.setCursor(3,1); lcd.print("Banyak Permen");}void ThankYouText(){ lcd.clear(); lcd.setCursor(5,0); lcd.print("Terima kasih"); lcd.setCursor(6,1); lcd.print("Anda"); penundaan (15); software_Reset();}void software_Reset() // Restart program dari awal tetapi tidak mereset periferal dan register{ asm volatile ("jmp 0"); }
Proses manufaktur
Komponen dan persediaan Arduino Nano R3 × 1 Sensor Ultrasonik SparkFun - HC-SR04 × 1 Kabel Jumper Wanita/Wanita × 1 MAKERFACTORY Robot Servo MF-06 × 1 Pembersih Tangan × 1 Aksesori, Sekrup × 1 Penutup Plastik, Kotak Proyek ×
Komponen dan persediaan Arduino UNO × 1 SparkFun CAN-BUS Shield × 1 Male-Header 36 Posisi 1 Baris- Panjang (0,1) untuk perisai CAN-Bus SparkFun × 1 Kabel SparkFun OBD-II ke DSUB-9 ditujukan untuk pembuat internasional × 1 Kabel OBD-II ke DSUB-9 ditujukan
Komponen dan persediaan Arduino Nano R3 × 1 3mm 8x8 Dot Matrix MAX7219 × 1 Modul sakelar kemiringan dan antarmuka digital × 1 Sakelar Geser × 1 MT3608 DC 2A Meningkatkan Modul Daya 2v-24v ke 5v/ Konverter Peningkatan 9v/12v/28V × 1 Alat dan me
Komponen dan persediaan Arduino Mega 2560 × 1 Layar LCD 2-pin Adafruit × 1 Catu Daya 24V × 1 Sensor Kekuatan Adafruit × 1 Perakitan Bumper Pop × 1 Sakelar Bumper Pop × 1 Beralih Target × 1 Sakelar Rollover × 1 Peraki