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]=; }
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;