Pengujian Keberhasilan Sistem Conveyor Pintar Memilah Benda

Gambar 4.20. Listing Program ADC Pada listing program yang ditunjukan gambar 4.15, menggunakan PORTA.0 sebagai PORT masukan untuk mengubah tegangan analog menjadi tegangan digital. Agar nilai desimal ADC maksimal yaitu 1023 dibagi 2 yaitu 511. Sehingga apabila tegangan masukan 0 Volt sampai 5 Volt, akan diubah melalui ADC menjadi 0 desimal hingga 511 desimal. Gambar 4.21. Listing Program Pengendali Conveyor Pada bagian listing program gambar 4.21 fungsinya yaitu untuk mengendalikan motor penggerak conveyor yang dikontrol menggunakan PORTA.0. Terdapat nilai pd1 900 ini dimaksudkan untuk membuat PORTA .0 bernilai “1”yang mengidentifikasi adanya benda dan jika nilai sensor kurang dari atau sama dengan 900 maka tidak ada objek yang menghalang yang artinya motor conveyor akan terus berputar sampai ada benda yang menghalang. ADC initialization ADC Clock frequency: 691.200 kHz ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE 0xff; ADCSRA=0x84; SPI initialization SPI disabled SPCR=0x00; TWI initialization TWI disabled TWCR=0x00; = Ada Objek di PD 1 pd1=read_adc0; ifpd1=900{ flag1=1; } else ifpd1900{ flag1=0; } PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Konveyor1ON void konOn{ relay5ON; } Konveyor 1OFF void konOff{ relay5OFF; }

4.3.1.2. Pengendali Komunikasi USART

Pada bagian ini berfungsi sebagai komunikasi serial USART untuk menghubungkan antara mikrokontroler ATmega32 dengan laptop. Baudrate yang digunakan yaitu 9600 bps. Fungsi “getString” yaitu untuk menjalankan fungsi baca komunikasi dari laptop agar mikrokontroler dapat mengerti apa yang dimaksud oleh laptop saat mengirimkan karakter yang mendefinisikan bentuk benda. Sedangkan fungsi “bacasensor” yaitu untuk menjalankan fungsi baca sensor dan untuk terakhirnua “kondisi”untuk mengkondisikan sensor yang terbaca apakah ada objek atau tidak ada objek yang terdeteksi. Listing program dapat dilihat pada gambar 4.22. Gambar 4.22. Listing Program Komunikasi USART

4.3.1.3. Pengendali Motor DC

Program pengendali motor dc. Ini lisiting program untuk mengerakan motor 1 dan 2 sesuai dengan input yang di kenali. Listing program pengendali motor dc ditunjukan pada gambar 4.23. Gambar 4.23 Program Pengerak Conveyor Fungsi Komunikasi USART Membersihkan variabel penampung untuk menerima data selanjutnya void clearStringBuffer{ unsigned char i=0; for i=0;i16;i++{ dataString[i]=; } PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4.23 Lanjutan Program Pengerak Conveyor Listing program pada gambar 4.21 adalah pergerakan motor dc untuk conveyor 1 dan conveyor 2 dalam kegiatan memilah benda . “Void” adalah perintah untuk membuat suatu fungsi agar ketika dieksekusi salam proses tidak perlu menulis ulang subrutin yang terdapat didalam void. Gambar 4.24 merupakan listing program untuk memilah benda reject , Gambar 4.25 merupakan listing program untuk memilah bola benda, Gambar 4.26 merupakan listing program untuk memilah bola hijau, Gambar 4.27 merupakan listing program untuk memilah benda kotak merah, Gambar 4.28 merupakan listing program untuk memilah benda kotak hijau. Gambar 4.24 Listing Program Benda Reject Motor Searah Jarum Jam ON void kananOn{ relay1ON; relay2ON; } Motor Searah Jarum Jam OFF void kananOff{ relay1OFF; relay2OFF; } Motor Berlawanan Arah Jarum Jam ON void kiriOn{ relay3ON; relay4ON; } Barang Reject void barangReject{ Jika Limit switch ditekan if flag7==1{ kiriOff; Motor OFF - konOn; Jalankan kembali konveyor 1 cleanObjek; Menjauhkan objek dari sensor k=0; Keluar dari rutin while Jika limit switch tidak ditekan else ifflag7==0{ kiriOn; Motor ON - PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4.25 Listing Program Benda Bola Merah Gambar 4.26 Listing Program Benda Bola Hijau Bola Merah void bolaMerah{ Jika Limit Switch ditekan ifflag7==1{ kiriOff; Motor OFF - kananOn; Motor ON - x=1; Mengatur objek } Jika Limit Switch tidak ditekan else ifflag7==0{ Jika Objek belum diatur ifx==0{ kiriOn; Motor ON - } Jika Objek telah diatur else ifx==1{ Jika tidak ada objek di PD2 dan ada objek di PD1 ifflag1==1{ cleanObjek; Menjauhkan objek dari sensor kananOff; Motor OFF - kiriOff; Motor OFF - konOn; Jalankan kembali konveyor 1 cleanObjek; Menjauhkan objek dari sensor l=0; Keluar dari while x=0; Mengaktifkan kembali prosedur mengatur objek } } Bola Hijau void bolaHijau{ Jika Limit switch tertekan ifflag7==1{ kiriOff; Motor OFF - kananOn; Motor ON - x=1; Mengatur Objek } Jika limit switch tidak ditekan else ifflag7==0{ Gambar 4.26 Lanjutan Listing Program Benda Bola Hijau Gambar 4.27 Listing Program Benda Kotak Merah Jika objek belum teratur ifx==0{ kiriOn; Motor ON - } Jika objek telah diatur else ifx==1{ Jika Objek telah berada pada PD2 ifflag2==1{ cleanObjek; Delay untuk menjauhkan objek dengan sensor kananOff; Motor OFF - kiriOff; Motor OFF - konOn; Jalankan kembali konveyor 1 cleanObjek; Menjauhkan objek dari sensor m=0; Keluar dari rutin while x=0; Mengaktifkan fungsi mengatur objek Kotak Merah void kotakMerah{ Jika limit switch tertekan ifflag7==1{ kiriOff; kananOn; x=1; } Jika limit switch tidak ditekan else ifflag7==0{ ifx==0{ kiriOn; } else ifx==1{ ifflag3==1{ cleanObjek; kananOff; kiriOff;