• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN. Gambar 3.1. Blok Diagram Keseluruhan Alat

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN. Gambar 3.1. Blok Diagram Keseluruhan Alat"

Copied!
24
0
0

Teks penuh

(1)

8

BAB III

PERANCANGAN

Pada bab ini akan dijelaskan perancangan dan realisasi dari perangkat keras dan perangkat lunak dari Penyimpanan Data dari Weighing Indikator XK3190-A12 atau Great Scale ke flashdisk.

3.1. Gambaran Alat

Alat yang dibuat berupa simulasi pembelian pasir oleh truk dari perusahaan tertentu. Terdapat load cell yang terhubung dengan Weighing indicator XK3190-A12, Terdapat LCD sebagai penampil inputan berupa nomer plat truk, nama perusahaan, berat awal truk, berat akhir truk, dan kode barang=berat akhir truck-berat awal truk, keyboard untuk penginputan datanya, printer thermal sebagai output keluaran untuk pembeli, flashdisk sebagai penyimpan data untuk pemilik perusahaan.

(2)

9 3.2. Perancangan Perangkat Keras

Perangkat keras yang dirancang adalah kotak penampil data untuk disimpan. Dengan dimensi panjang 30cm, lebar 15cm dan tinggi 15cm. Ada beberapa komponen elektronik yang digunakan yaitu :

 Mikrokontroler jenis Arduino Mega 2560  USB Host Shield

 Power Supply 12V 3A  CH376s

Thermal printer for arduino Keyboard

Flashdisk

Gambar 3.2 Tampak Depan Alat

Keterangan dari gambar alat : a) Printer Thermal

b) LCD penampil input data c) Flashdisk

(3)

10

Di dalam kotak alat terdapat power suply, Arduino mega beserta usb host shield, Ch376s modul penyimpan data , dan RTC ds3231.

Gambar 3.3 Box Komponen Keterangan dari gambar dalam alat:

e) Data dari Great Scale f) Power supply

g) Arduino Mega beserta usb host shield h) Ch376s

i) RTC ds3231

3.3. Perancangan Elektronika

Pada bagian ini menjelaskan mengenai perancangan elektronika yang dipakai dalam sistem yang dibuat. Perancangan elektronika dalam pembuatan sistem ini terdiri dari :

1. Mikrokontroler jenis Arduino Mega 2560 sebagai pengendali utama 2. USBhost shield

3. Ch376s 4. RTC ds 3231

5. LCD 20X4 penampil inputan data 6. Printer thermal

(4)

11 3.3.1. Pengendali Utama

Pengendali utama ini menggunakan board Mikrokontroler Arduino Mega 2560 dengan menggunakan IC mikrokontroler Atmega 2560. Tugas utama dari Arduino Mega ini antara lain untuk :

1. Menginput data(nama perusahaan, plat nomor, jenis barang) menggunakan keyboard dengan USB Host Shield,rtc tersambung parallel dengan LCD 20X4.

2. Menginput data dari great scale berupa angka berat dari loadcell.

3. Menyimpan kedua data di atas ke dalam flashdisk. 4. Mencetak struk data menggunakan printer thermal.

Tabel 3.1. Konfigurasi Pin Mikrokontroler Arduino Mega 2560 Yang Digunakan

Nama Port Terhubung

PORT POWER 5V Pin VCC RTC Ds3231

PORT POWER 5V Pin VCC Ch376s

PORT POWER 5V Pin VCC USB Host Shield

PORT GND Pin GND RTC Ds3231

PORT GND Pin GND Ch376s

PORT GND Pin GND USB Host Shield

PORT 14 Rx Printer Thermal

PORT 15 Tx Printer Thermal

PORT 16 Rx Great Scale

PORT 17 Tx Great Scale

PORT 18 Rx Ch376s

PORT 19 Tx Ch376s

PORT 20 SDA Parallel Ds3231 dengan i2c lcd PORT 21 SCL Parallel Ds3231 dengan i2c lcd

(5)

12

Gambar 3.4. Wiring seluruh alat

3.3.2. USB Host Shield

Modul ini berfungsi untuk input data(nama perusahaan, plat nomor, jenis barang) yang terhubung dengan keyboard usb. Shield ini bisa digunakan pada jenis Arduino Uno, Mega dan Duemilanove yang tidak perlu penambahan kabel untuk menghubungkan ke SPI. USB Host Shield bekerja ketika huruf, angka, dan tombol fungsi ditekan maka akan memberikan inputan data yang akan ditampilkan di LCD 20X4. Berikut gambar rangkaian modul USB Host Shield ke arduino seperti yang ditunjukkan pada gambar dibawah ini :

(6)

13

Gambar 3.5. Wiring USB Host Shield

3.3.3. Ch376s

Pada alat ini menggunakan modul Ch376s yang berfungsi sebagai perantara penyimpanan seluruh data ke dalam flashdisk. Pin yang digunakan adalah pin serial. Agar dapat digunakan dengan baik flashdisk harus terformat FAT(File Allocation Table). Disini saya menggunakan FAT32 yang tersedia di format file system flashdisk saya. Ketika F3 di keyboard ditekan maka akan memberikan perintah untuk menyimpan ke dalam flashdisk. Berikut gambar rangkaian modul Ch376s ke arduino seperti yang ditunjukkan pada gambar dibawah ini :

(7)

14

Gambar 3.6. Wiring Ch376s

3.3.4. Weighing Indikator XK3190-A12

Dari loadcell dihubungkan ke indikator ini menggunakan rs232. Di dalam indicator terdapat komponen serupa hx711 yang berfungsi untuk mengubah sinyal analog loadcell menjadi sinyal digital. Data dari Weighing Indikator XK3190-A12 atau biasa disebut great scale ini nantinya akan disimpan ke flashdisk dan dicetak printer thermal.Berikut gambar rangkaian Weighing Indikator XK3190-A12 ke arduino seperti yang ditunjukkan pada gambar dibawah ini :

(8)

15 3.3.5. RTC Ds3231 dan LCD 20X4

Modul RTC sebagai penanda waktu agar mudah membaca data di dalam flashdisk. Modul ini tersambung parallel dengan LCD 20X4. Pewaktuan disini berguna untuk pembatas pada data file di dalam falshdisk dan pewaktu pada struk pembelian. Berikut gambar rangkaian parallel kedua modul:

Gambar 3.8. WiringRTC parallel dengan LCD 20X4

3.3.6. Printer Thermal

Printer thermal ini bekerja dengan cara memanaskan kertas thermal. Printer akan mencetak data data yang telah diinput. Printer menggunakan catu daya sebesar 8V 2A. Fungsi printer thermal ini untuk mencetak tanda bukti pembelian barang. Saat perintah F4(keyboard ditakan) diberikan maka printer mencetak data yang telah diinput. Berikut tabel dan gambar rangkainya:

Tabel 3.2. Spesifikasi printer thermal

Print method thermal direct line printing

Paper width 58mm

Print width 48mm

Printing speed 60mm/sec.;Max.:80MM/sec.(voltage 8.5VPaper roll specification width:58mm,Max. diameter:39mm

(9)

16

Input power DC5-9V or 12V

Operating temperature 5°C~50°C

Gambar 3.9. Wiring Printer Thermal 3.4. Perancangan Perangkat Lunak

Pada bagian ini akan dijelaskan mengenai perangkat lunak dari alat penyimpanan data . Program atau perangkat lunak di sini berfungsi untuk menyimpan ke flashdisk.

Ada beberapa bagian dalam perangkat lunak atau program dalam skripsi ini. Yang pertama adalah arduino menerima inputan data dari keyboard dengan USB host Shield. Yang kedua Arduino menerima data dari great scale. Dan yang terakhir program dari arduino ini adalah mengontrol.

Berikut merupakan gambar dari diagram alir perangkat lunak pada skripsi yang dirancang oleh penulis ini :

(10)

17

(11)

18

Penjelasan dari diagram alir di atas adalah sebagai berikut :

1. Program akan mulai saat mikrokontroler mendapatkan masukan daya atau saat sklar utama dihidupkan.

2. Inisialisasi adalah untuk mensetting port yang digunakan yaitu serial1, serial2, dan serial 3.

3. Input data melalui keyboard usb(nama perusahaan, plat nomor, jenis barang). Nama perusahaan disimpan di array StringCompany, plat nomor di StringPlat, jenis barang di simpan di array StringJenis. 4. Truk ditimbang berat awal atau saat ditimbang truk mode zero. Data

disimpan ke float w1.

5. Truk ditimbang lagi beratnya dan data disimpan ke float w2.

6. Kedua data w2 dan w1 tadi diselisihkan menjadi hasil yang ditampilkan ke LCD dan disimpan ke double hasil.

7. Semua data yang tersimpan di print struk untuk tanda bukti pengambilan barang dengan menekan tombol F3.

8. Semua data dipanggil dan disimpan dengan menekan tombol F4.

3.4.1. Contoh program

Dari diagram alir diatas dapat dilihat cara kerja sistem dari alat. Berikut program yang digunakan :

if (enter == 1) { if (delayclrscr0 == 1) { clrscr0(); } lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr())//prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr());//prosedur pemanggilan waktu lcd.setCursor(0, 1);

(12)

19 lcd.print("PERUSAHAAN:"); if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr1 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program penampil nama perusahaan. Nama perusahaan diinput menggunakan keyboard. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan nama perusahaan tekan enter dan masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

if (enter == 2) { if (delayclrscr1 == 1) { clrscr1(); } lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()); //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr()); //prosedur pemanggilan waktu lcd.setCursor(0, 1);

lcd.print("PLAT NMR:"); if (keluar == 1)

(13)

20 { enter = 9; keluar = 0; } delayclrscr2 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program penampil plat nomor kendaraan. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan plat nomor tekan enter dan masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama. if (enter == 3) { if (delayclrscr2 == 1) { clrscr2(); } lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()); //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr()); //prosedur pemanggilan waktu lcd.setCursor(0, 1);

lcd.print("JENIS:"); if (keluar == 1) {

(14)

21 keluar = 0; } delayclrscr3 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program penampil jenis barang yang dibeli. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan jenis barang dimasukan tekan enter dan masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

if (enter == 4) { if (delayclrscr3 == 1) { clrscr3(); } lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()); //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr()); //prosedur pemanggilan waktu lcd.setCursor(0, 1);

lcd.print("Berat1: "); for (int i = 0; i < 10; i++) {

if (Serial1.available()) {

(15)

22 Serial.println(a); if (a == '=') {

while (Serial1.available() < 8); for (int i = 7; i >= 0; i--) { sevenSegment1[i] = char(Serial1.read()); } w1 = atof(sevenSegment1); } } delay(50); }

for (int i = 0; i < 8; i++) { lcd.print(sevenSegment1[i]); } lcd.print(" Kg"); if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr4 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

(16)

23

Subrutin program penampil berat1 yang tertampil di great scale. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan berat 1 dimasukan tekan enter maka akan tersimpan di float w1 dan masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

if (enter == 5) { if (delayclrscr4 == 1) { clrscr4(); } lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr());//prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr());//prosedur pemanggilan waktu lcd.setCursor(0, 1);

lcd.print("Berat2: "); for (int i = 0; i < 10; i++) { if (Serial1.available()) { char a = char(Serial1.read()); Serial.println(a); if (a == '=') { while (Serial1.available() < 8); for (int i = 7; i >= 0; i--) {

sevenSegment1[i] = char(Serial1.read()); }

w2 = atof(sevenSegment1); }

(17)

24 }

delay(50); }

for (int i = 0; i < 8; i++) { lcd.print(sevenSegment1[i]); } lcd.print(" Kg"); if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr5 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program penampil berat 2 yang tertampil di great scale. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan berat 2 dimasukan tekan enter maka akan tersimpan di float w2 dan masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

if (enter == 6) { if (delayclrscr5 == 1) { clrscr5(); }

(18)

25 lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()) //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr());//prosedur pemanggilan waktu

hasil = w2 - w1; shasil = hasil; lcd.setCursor(0, 1); lcd.print("Hasil :"); hasilakhir = String(hasil); hasilakhir.toCharArray(sevenHasil, 8); for (int i = 0; i < 8; i++)

{ if (sevenHasil[i] == NULL) { sevenHasil[i] = '0'; } lcd.print(sevenHasil[i]); } lcd.print(" Kg"); if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr6 = 1; if(statusenter == 1) { enter++; statusenter = 0;

(19)

26 }

}

Subrutin program penampil hasil selisih dari berat 2 dan berat 1. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Setelah inputan berat 2 dan 1 dimasukan maka keduanya diselisihkan da tertapil di lcd dan akan tersimpan di double hasil dan masuk ke menu enter selanjutnya.. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

if (enter == 7) {

lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()); //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr()); //prosedur pemanggilan waktu String tgl=rtc.getDateStr(); String jam=rtc.getTimeStr(); if (delayclrscr6 == 1) { clrscr6(); } lcd.setCursor(0, 1); lcd.print("print struk(F3)"); if (ya == 1) { printer.wake(); printer.setDefault(); printer.boldOn(); printer.justify('C'); printer.setSize('M'); printer.println(F("CV STANDARD"));

(20)

27 printer.justify('C'); printer.setSize('S');

printer.println(F("Jl. Kijang 2 / 18,Semarang 50161")); printer.justify('C'); printer.setSize('S'); printer.println(F("Jawa Tengah,Indonesia")); printer.justify('C'); printer.setSize('S'); printer.println(F("Telp. +62246716628")); printer.justify('C'); printer.setSize('S'); printer.println(F("E-mail: info@greatscale.co.id")); printer.justify('L'); printer.setSize('S'); printer.println(F("---")); printer.print(tgl); printer.print(" "); printer.println(jam); printer.justify('L'); printer.setSize('S'); printer.println(F("Perusahaan :")); printer.justify('L'); printer.setSize('S'); printer.println(StringCompany); printer.justify('L'); printer.setSize('S'); printer.print(F("Plat nomor :")); printer.print(" "); printer.println(StringPlat);

(21)

28 printer.justify('L'); printer.setSize('S'); printer.print(F("Jenis Barang :")); printer.print(" "); printer.println(StringJenis); printer.justify('L'); printer.setSize('S'); printer.print(F("Berat 1 :")); printer.print(" "); printer.print(w1*1000); printer.println(F(" Kg")); printer.justify('L'); printer.setSize('S'); printer.print(F("Berat 2 :")); printer.print(" "); printer.print(w2*1000); printer.println(F(" Kg")); printer.justify('L'); printer.setSize('S'); printer.print(F("Berat Akhir :")); printer.print(" "); printer.print(hasil*1000); printer.println(F(" Kg")); printer.justify('C'); printer.setSize('S'); printer.println(F("Terima Kasih")); printer.println(F("Datang Kembali")); printer.justify('L');

(22)

29 printer.setSize('S'); printer.println(F("---")); printer.feed(2); printer.sleep();

delay(3000L); // Sleep for 3 seconds printer.wake(); printer.setDefault(); ya = 0; enter++; statusenter=0; } if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr7 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program pencetak struk printer thermal. Tanggal

ditempatkan di (0,0) dan waktu diletakan di (12,0). Semua data yang tersimpan di atas di cetak dengan printer thermal dengan menekan tombol F3. Setelah proses cetak selesai masuk ke menu enter selanjutnya. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

(23)

30 if (enter == 8) {

lcd.setCursor(0, 0);

lcd.print(rtc.getDateStr()); //prosedur pemanggilan tanggal lcd.setCursor(12, 0);

lcd.print(rtc.getTimeStr()); //prosedur pemanggilan waktu if (delayclrscr7 == 1) { clrscr7(); } lcd.setCursor(0, 1); lcd.print("Simpan(F4)"); if (ya2 == 1) { Jenis, Hasil"; Tulis += "\n"; Tulis += rtc.getDateStr(); Tulis += "^"; Tulis += rtc.getTimeStr(); Tulis += "^"; Tulis += String(StringCompany); Tulis += "^"; Tulis += String(StringPlat); Tulis += "^"; Tulis += String(StringJenis); Tulis += "^"; Tulis += String(w1*1000); Tulis += "^"; Tulis += String(w2*1000); Tulis += "^"; Tulis += String(hasil*1000); enter++;

(24)

31 appendFile("TEST4.TXT", Tulis); } if (keluar == 1) { enter = 9; keluar = 0; } delayclrscr8 = 1; if(statusenter == 1) { enter++; statusenter = 0; } }

Subrutin program penyimpanan data. Tanggal ditempatkan di (0,0) dan waktu diletakan di (12,0). Semua data yang tersimpan di atas di tulis ke dalam flashdisk dengan menekan tombol F4. Setelah proses cetak selesai masuk ke menu selanjutnya yaitu menu utama. Saat keluar= ESC pada keyboard ditekan maka akan kembali ke menu utama.

Gambar

Gambar 3.1. Blok Diagram Keseluruhan Alat
Gambar 3.2 Tampak Depan Alat
Gambar 3.3 Box Komponen  Keterangan dari gambar dalam alat:
Tabel 3.1. Konfigurasi Pin Mikrokontroler Arduino  Mega 2560 Yang Digunakan
+7

Referensi

Dokumen terkait

Dinas Kehutanan merupakan salah satu institusi pemerintahan yang mempunyai tugas melaksanakan pemerintahan di bidang kehutanan berdasarkan asas otonomi daerah. Supaya

Segala Puji dan Syukur saya panjatkan kepada Tuhan yang telah melimpahkan Rahmat dan dan BimbinganNya sehingga penulis dapat menyelesaikan penyusunan laporan hasil penelitian

Stra tegi komunikasi tersebut dapat dilihat dari teori Young Yun Kim yang mengatakan gegar budaya dapat diatasi dengan proses adaptasi antarbudaya yang terdiri dari

Hasil penelitian ini menunjukkan prototipe yang ke tiga merupakan desain yang valid dan praktis ketika digunakan dalam pembelajaran dengan 85% (17 murid) mengikuti proses

Gambar 1 blok diagram perancangan sistem akan dijelaskan proses kerja sistem yang dilakukan selama penelitian, keterangan dari Gambar 1 sebagai berikut : 3 buah

Penelitian Secarian (2012) dengan penelitian tentang Evaluasi Penerapapan PSAK 55 Instrumen Keuangan: Pengakuan dan Pengukuran Pada Penurunan Nilai dan Tidak Tertagihnya

Penggambaran binatang dalam ornamen sebagian besar merupakan hasil gubahan/stirilisasi, jarang berupa binatang secara natural, tapi hasil gubahan tersebut masih

Dalam mode timbang , continous Tara diperbolehkan, saat berat tara = 0, lampu tara mati, saat indikator sesuai dengan kondisi Tara , tekan [Tare] untuk menolkan, lampu tara