PROJEK MESIN SEDERHANA

 Berikut adalah contoh proyek **Mesin Penjual Otomatis Sederhana** menggunakan Arduino Uno. Dalam proyek ini, mesin akan mendeteksi pilihan pengguna dan menggunakan servo untuk mengeluarkan barang.


### Komponen yang Diperlukan:

1. **Arduino Uno**. 53

2. **3 x Servo Motor** (satu untuk setiap rak).15.000

3. **Push Button** atau **Keypad** (untuk input pilihan pengguna).14.000

4. **LCD 16x2** (opsional, untuk menampilkan informasi).26.500

5. **Resistor 10K ohm** (untuk tombol push button).1000

6. **Beberapa barang ringan** (misalnya permen, kapsul kecil, dll.).5000

7. **Buzzer** (opsional, untuk notifikasi suara).2000

total 116.000 : 10 = 12.000


### Deskripsi Kerja:

- Pengguna menekan tombol atau menggunakan keypad untuk memilih barang.

- Arduino membaca input pengguna dan menggerakkan servo terkait untuk mengeluarkan barang dari rak.

- LCD dapat digunakan untuk menampilkan pesan, misalnya, "Silakan Pilih Barang", "Mengeluarkan Barang", dll.


### Rangkaian:

- Hubungkan setiap **servo motor** ke pin digital Arduino.

- Hubungkan setiap **push button** ke pin digital Arduino melalui resistor pull-down (10K ohm).

- Hubungkan **LCD** (jika digunakan) dengan mengikuti konfigurasi standar 4-bit.

  

### Diagram Koneksi:

1. **Servo Motor**:

   - Servo 1: Pin 9

   - Servo 2: Pin 10

   - Servo 3: Pin 11

2. **Push Button**:

   - Tombol 1: Pin 2

   - Tombol 2: Pin 3

   - Tombol 3: Pin 4

3. **LCD** (opsional):

   - Pin RS, E, D4, D5, D6, D7 sesuai pin Arduino (misalnya, RS ke pin 12, E ke pin 11, dan data D4-D7 ke pin 5, 4, 3, 2).


### Kode Arduino:


```cpp

#include <Servo.h>

#include <LiquidCrystal.h>


// Inisialisasi Servo

Servo servo1;

Servo servo2;

Servo servo3;


// Inisialisasi LCD (jika digunakan) - sesuaikan pin jika perlu

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


// Pin untuk tombol

const int tombol1 = 2;

const int tombol2 = 3;

const int tombol3 = 4;


void setup() {

  // Inisialisasi pin tombol

  pinMode(tombol1, INPUT);

  pinMode(tombol2, INPUT);

  pinMode(tombol3, INPUT);

  

  // Inisialisasi Servo

  servo1.attach(9);

  servo2.attach(10);

  servo3.attach(11);


  // Atur servo ke posisi awal

  servo1.write(0);

  servo2.write(0);

  servo3.write(0);


  // Inisialisasi LCD (opsional)

  lcd.begin(16, 2);

  lcd.print("Mesin Penjual"); // Teks awal di LCD

  delay(2000);

  lcd.clear();

}


void loop() {

  // Tampilkan pesan di LCD (opsional)

  lcd.setCursor(0, 0);

  lcd.print("Pilih Barang: ");

  

  // Cek jika tombol pertama ditekan

  if (digitalRead(tombol1) == HIGH) {

    lcd.setCursor(0, 1);

    lcd.print("Barang 1 Dipilih");

    keluarkanBarang(servo1); // Menggerakkan servo 1

    delay(2000);

    lcd.clear();

  }

  

  // Cek jika tombol kedua ditekan

  if (digitalRead(tombol2) == HIGH) {

    lcd.setCursor(0, 1);

    lcd.print("Barang 2 Dipilih");

    keluarkanBarang(servo2); // Menggerakkan servo 2

    delay(2000);

    lcd.clear();

  }


  // Cek jika tombol ketiga ditekan

  if (digitalRead(tombol3) == HIGH) {

    lcd.setCursor(0, 1);

    lcd.print("Barang 3 Dipilih");

    keluarkanBarang(servo3); // Menggerakkan servo 3

    delay(2000);

    lcd.clear();

  }

}


// Fungsi untuk menggerakkan servo dan mengeluarkan barang

void keluarkanBarang(Servo servo) {

  // Putar servo untuk mengeluarkan barang

  servo.write(90);  // Atur sudut untuk membuka

  delay(1000);      // Tunggu barang keluar

  servo.write(0);   // Kembali ke posisi awal

}

```


### Penjelasan Kode:

1. **Servo**: Servo digunakan untuk menggerakkan mekanisme yang akan mendorong atau melepaskan barang dari rak.

2. **Push Button**: Tombol digunakan untuk memilih barang yang ingin dikeluarkan. Ketika tombol ditekan, Arduino akan mendeteksi input dan menjalankan fungsi untuk menggerakkan servo yang terkait.

3. **LCD** (opsional): LCD digunakan untuk menampilkan status seperti "Pilih Barang" dan "Barang Dipilih". Jika Anda tidak ingin menggunakan LCD, Anda dapat mengabaikan bagian kode yang berhubungan dengan `LiquidCrystal`.

4. **Fungsi `keluarkanBarang()`**: Fungsi ini bertugas untuk memutar servo, mengeluarkan barang, dan kemudian mengembalikan servo ke posisi semula.


### Proses Kerja:

1. Pengguna menekan salah satu tombol (Tombol 1, 2, atau 3).

2. Arduino mendeteksi input dari tombol.

3. Servo yang sesuai akan bergerak, mengeluarkan barang dari rak.

4. LCD akan menampilkan pesan mengenai barang yang dipilih (opsional).

5. Setelah barang keluar, servo kembali ke posisi awal untuk bersiap mengeluarkan barang berikutnya.


### Pengembangan Lebih Lanjut:

- **Keypad**: Anda bisa menggunakan keypad numerik untuk memperbanyak pilihan barang.

- **Sensor Berat**: Tambahkan sensor berat untuk mendeteksi apakah ada barang yang masih tersedia.

- **Sistem Pembayaran**: Sistem pembayaran sederhana bisa ditambahkan menggunakan modul RFID atau sensor koin.


Proyek ini merupakan dasar untuk mesin penjual otomatis, dan bisa diperluas sesuai dengan kebutuhan. Anda juga dapat menambahkan lebih banyak fitur, seperti lebih banyak servo untuk lebih banyak rak barang atau sensor untuk mendeteksi stok barang.

Posting Komentar

Lebih baru Lebih lama