prototipe pintu bendungan otomatis berbasis mikrokontroler 2

Upload: muhammad-aulia-rahman

Post on 05-Nov-2015

256 views

Category:

Documents


0 download

DESCRIPTION

pintu otomatis

TRANSCRIPT

PROTOTIPE PINTU BENDUNGAN OTOMATIS BERBASIS MIKROKONTROLERATMEGA 16PROYEK AKHIRDiajukan kepada Fakultas Teknik Universitas Negeri Yogyakarta untukMemenuhi Sebagian Persyaratan Guna MemperolehGelar Ahli Madya TeknikOLEH:SAFRUDIN BUDI UTOMO DWI HARTANTONIM. 09507131011PROGRAM STUDI TEKNIK ELEKTRONIKAJURUSAN PENDIDIKAN TEKNIK ELEKTRONIKAFAKULTAS TEKNIKUNIVERSITAS NEGERI YOGYAKARTA2012

LEMBAAR PERSSEMBAHHANLaporann Proyek Akkhir ini pennulis persemmbahkan padda :1.KeSasaydan2.KaRin3.Sedu4.Seber5.Gasel6.Ko7.Seakh edua orangarjinah yangyang serta mn kebahagiaakak dan adni yang selaeluruh keluaukungan moeluruh temanrsama kaliaalang, Pramlalu membeomputerku demua pihakhir ini. tua sayag telah memember semaanku.tercinta yaerawat danmangat danitu Bp. Trin membesan senantiasaisno Budiarkan denga berdoa unUtomo danan penuhntuk keselamn Ibukasihmatandik saya, Ikaalu memberarga besaroral maupunn-teman kean tidak akama, Hudha,erikan hiburdan sepedakk yang telah via Budi Utamriku dukungyang telahn material seelas B Teknn pernah akUcil, Anggran disaat seku yang sudh membant mi Ningsihgan dan semh banyak mehingga semnik Elektronku lupakan.gi, Rino danedang banyadah menematu dalam p dan Erna Bmangat.membantu dmuanya mennika 2009,n teman-temak masalah.ani selama pproses peny Budi Utami Setiadan membenjadi lebih bbaik.erikan semua kenaanganman sepeda yangperjuangankku.yelesaian prroyek

MOTTO g|twtt ~xt~|tt{ tz xut tz t~ xz{twt| ttzt? wt tt xvtt twt w|| tt xw||A ^xutzztt ~|t tz xuxt twtt{ u~t |wt~ xt{ ztzt? xt| utz~| ~xut| x|t ~t| ~|t }t{A Makhluk Lemah Kini Telah Bermetamorfosa Jadi Kupu-Kupu Baja ;(Captai Jack8Tinggi Air = 7 mTinggi Pintu = 0.7 m 98Tinggi Air = 8 mTinggi Pintu = 0.8 m

63

64

65

66B.Pembahasan1.Hardwarea.Sensor Ketinggian Air (Water Level Control)Sensor Ketinggian Air (Water Level Control) dapat mendeteksiketinggian air maksimal meter. Saat sensor Ketinggian Air (WaterLevel Control)aktif, maka secara otomatis mikrokontroler akanmengaktifkan dan mengontrol putaran motor DC untuk membukadan menutup pintu bendungan.b.Sensor Cahaya Infrared dan PhotodiodeSensor cahaya menggunakan infrared dan photodiode inidifungsikan untuk membantu mendeteksi ketinggian pintubendungan. Saat Photodiode terkena cahaya dari infrared makasensor ini akan aktif, maka secara otomatis mikrokontroler akanmenghentikan putaran motor DC sehingga pintu berhenti tepatpada ketinggian yang sudah diatur sebelumnya.c.H-Bridge Driver Motor DC dan Motor DCH-Bridge Driver Motor DC dan motor DC ini berjalan denganyang diharapkan. Itu ditunjukan motor DC dapat berputar searahjarum jam, berputar berlawanan arah jarum dan berhenti sesuaidengan yang diperintahkan oleh mikrokontroler.d.LCDLCD dapat berjalan dengan baik sesuai dengan yangdiharapkan.Itu semua di tunjukan LCD mampu menampilkan

67karkater-karakter yang diperintahkan oleh mikro diantaranyamampu menampilkan ketinggian air dan ketinggian pintu.2.SoftwareBahasa pemprograman BASIC dikenal di seluruh dunia sebagaibahasa pemrograman handal, cepat, mudah dan tergolong kedalambahasa pemprograman tingkat tinggi. Bahasa BASIC adalah salah satubahasa pemprograman yang banyak digunakan untuk aplikasimikrokontroler karena kemudahan dan kompatibel terhadapmikrokontroler jenis AVR dan didikung oleh compiler software berupaBASCOM-AVR. Setiap bahasa pemprograman mempunyai standarpenulisan program. Konstruksi dari program bahasa BASIC harusmengikuti aturan sebagai berikut:a.Definisi prosesorProsesor adalah pendefinisian seri chip mikrokontroler yang akandigunakan dalam program. Penulisan dalam program sebagai berikut :$regfile = "m16def.dat"Baris ini menyatakan bahwa chip yang digunakan adalah keluargaAVR ATmega dengan seri 16.b.Definisi Pemrosesan Awal (Preprocessor)Preprocessor membaca simbol-simbol khusus di dalam kode yangdisebut pengarah preprocessor yang dimasukkan didalam programcompiler untuk mengompilasian program. Penulisan preprocessordalam program ini adalah sebagai berikut :

68$crystal = 12000000 menggunakan crystal clock 12 MHz$baud = 9600 komunikasi serial dengan baudrate 9600c.Definisi variableVariabel adalah suatu pengenal (identifier) yang digunakan untukmewakili suatu nilai tertentu di dalam proses program yang dapatdiubah-ubah sesuai dengan kebutuhan. Nama dari variable terserahsesuai dengan yang diinginkan namun hal yang terpenting adalahsetiap variabel diharuskan :1.Terdiri dari gabungan huruf dan angka dengan karakterpertama harus berupa huruf, max 32 karakter.2.Tidak boleh mengandung spasi atau symbol-simbol khususseperti : $, ?, %, #, !, &, *, (, ), -, +, = dan lain sebagainyakecuali underscore.3.Deklarasi sangat diperlukan bila akan menggunakan pengenal(identifier) dalam suatu program.d.Deklarasi VariabelBentuk umumpendeklarasian suatu variable adalah Dimnama_variabel AS tipe_dataContoh :Dimx As Integer deklarasi x bertipe integere.Deklarasi KonstantaDalam Bahasa Basic konstanta di deklarasikan langsung.Contohnya: S = Hello world Assign string

69f.Deklarasi FungsiFungsi merupakan bagian yang terpisah dari program dan dapatdipanggil di manapun di dalam program. Fungsi dalam BahasaBasic ada yang sudah disediakan sebagai fungsi pustaka sepertiprint, input data dan untuk menggunakannya tidak perludideklarasikan.g.Deklarasi buatanFungsi yang perlu dideklarasikan terlebih dahulu adalah fungsiyang dibuat oleh programmer. Bentuk umum deklarasi sebuahfungsi adalah :Sub Test ( byval variabel As type)Contohnya: SubPwm(byval Kiri As Integer , ByvalKanan As Integerh.OperatorOperator PenugasanOperator Penugasan (Assignment operator) dalam BahasaBasic berupa =.Operator Aritmatika* : untuk perkalian

70/ : untuk pembagian+ : untuk pertambahan- : untuk pengurangan% : untuk sisa pembagian (modulus)Operator Hubungan (Perbandingan)Operatorhubungandigunakanuntukmembandingkanhubungan dua buah operand atau sebuah nilai / variable, misalnya := Equality X = Y< Less than X < Y> Greater than X > Y= YOperator LogikaOperator logika digunakan untuk membandingkan logika hasildari operator-operator hubungan. Operator logika ada empatmacam, yaitu :NOT Logical complement

71AND ConjunctionOR DisjunctionXOR Exclusive orOperator BitwiseOperator bitwise digunakan untuk memanipulasi bit dari datayang ada di memori. Operator bitwise dalam Bahasa Basic :Shift A, Left, 2 : Pergeseran bit ke kiriShift A, Right, 2 : Pergeseran bit ke kananRotate A, Left, 2 : Putar bit ke kiriRotate A, right, 2 : Putar bit ke kanani.Pernyataan Kondisional (IF-THEN END IF)Pernyataan ini digunakan untuk melakukan pengambilankeputusan terhadap dua buah bahkan lebih kemungkinan untukmelakukan suatu blok pernyataan atau tidak. Konstruksi penulisanpernyatan IF-THEN-ELSE-END IF pada bahasa BASIC ialahsebagai berikut:IF pernyataan kondisi 1 THEN

72blok pernyataan 1 yang dikerjakan bila kondisi 1 terpenuhiIF pernyataan kondisi 2 THENblok pernyataan 2 yang dikerjakan bila kondisi 2 terpenuhiIF pernyataan kondisi 3 THENblok pernyataan 3 yang dikerjakan bila kondisi 3 terpenuhiSetiap penggunaan pernyataan IF-THEN harus diakhiridengan perintah END IF sebagai akhir dari pernyatankondisional.j.Pernyataan Kondisional (SELECT-CASE-END SELECT)Pernyataan ini digunakan untuk melakukan pengambilankeputusan terhadap banyak kondisi. Konstruksi penulisanpernyatan SELECT-CASE-END SELECT pada bahasa BASIC ialahsebagai berikut:SELECT CASE varCASE kondisi1 : blok perintah1CASE kondisi2 : blok perintah2CASE kondisi3 : blok perintah3

73CASE kondisi4 : blok perintah4CASE kondisi5 : blok perintah5CASE kondisin : blok perintahnEND SELECT akhir dari pernyatan SELECT CAk.Fungsi utamaDim Nilai_adc As Byte , Channel As Byte //deklarasivariabeluntuk menyimpan pemrosesan data.Channel = 0Cursor Off Noblink // untuk menyembunyikan cursor diLCDCls // untuk menghapus karakter LCDLcd "Simulasi Kendali" // tampilan pada LCDLowerline // untuk menampilkan karakter lcd di barisbawanyaLcd "PintuAir"Wait 2 // menunggu waktu 2 detikSensor_pintu = Data_pintuDo // perintah untuk perulangan yang digunakan untukmelakukan perulanagn program selama kondisi telahterpenuhiGosub Cek_sensorClsGosub TampilanIf Sensor_air > Sensor_pintu Then // menguji duakeadaan (benar ataupun salah) dan menentukan tindakansesuai dengan keinginanM1 = 0 //Input Motor 1 = 0M2 = 1 // input Motor 2= 1Waitms 300 // delay waktu 300 mili detikDoIf Pina.0=1 ThenM1 = 0M2 = 0End IfLoopIncr Sensor_pintu // perintah untuk menambah 1 padadata yang ditunjukkan.Elseif Sensor_air < Sensor_pintu ThenM1 = 1M2 = 0Waitms 300// menunggu waktu 300 mili detikDoIf Pina.0=1 ThenM1 = 0M2 = 0End IfLoopDecr Sensor_pintu // perintah untuk mengurangi 1 padadata ditunjukkan.

74End IfData_pintu = Sensor_pintuWaitms 200LoopEnd//'end prosesReturnMotor_run:If Motor = Naik ThenM1 = 0M2 = 1Elseif Motor = Turun ThenM1 = 1M2 = 0Elseif Motor = Berhenti ThenM1 = 0M2 = 0End IfReturnCek_sensor:Select Case Pinc //Pernyataan ini digunakanuntuk melakukan pengambilan keputusan terhadap banyakkondisi.Case &B11111111 : Sensor_air = 0Case &B11111110 : Sensor_air = 1Case &B11111100 : Sensor_air = 2Case &B11111000 : Sensor_air = 3Case &B11110000 : Sensor_air = 4Case &B11100000 : Sensor_air = 5Case &B11000000 : Sensor_air = 6Case &B10000000 : Sensor_air = 7Case &B00000000 : Sensor_air = 8End SelectReturnTampilan:Lcd "Level Air : " ; Sensor_air ; " m"Lowerline'Lcd Nilai_adcLcd "Pintu Air : " ; Sensor_pintu ; " m"ReturnC.Cara Kerja Prototipe Pintu BendunganAlat spul ini bekerja berdasarkan perintahdari satu buahmikrokontroler ATmega16 yang bertugas menerima masukkan dari sensorair, sensor infra merah dan mengatur putaran motor DC. Sensor ketinggianair berfungsi membaca keadaan ketinggian air dalam bak penampungan.Sensor infra merah dan photodiode berfungsi membaca dan mengaturketinggian pintu. Setelah alat dihidupkan maka alat alat bekerja sesuaidengan program yang telah dibuat. Sebelum bak penampungan air belumterisi air maka pintu air akan dalam kondisi tertutup dan informasi keadaan

75air maupun pintu akan ditampilkan di LCD. Setalah bak penampungan airdiisi dengan air maka mikrokontroler ATmega16 akan mengatur putaranmotor DC sehingga pintu akan naik. Pintu air akan membuka dan menutupstep demi step sesuai kondisi air yang ada di bak penampungan. Saatkondisi air yang terus bertambah menuju titik maksimum maka kondisipintu akan membuka dengan bertahap menuju titik maksimum. Sedangkansaat air mulai menurun, kondisi pintu akan bertahap turun sampai kondisipintu minimum atau kembali menutup kembali.

BAB VKESIMPULAN DAN SARANA.KesimpulanBerdasarkan hasil pengujian yang telah dilakukan terhadap Prototipe PintuBendungan Otomatis Berbasis ATmega 16, maka dapat disimpulkan:1.Prototipe Pintu Bendungan Otomatis Berbasis ATmega16, dirancang dariperangkat keras (hardware), yaitu:a.ATmega16 sebagai input dan output.b.Sebuah motor DC yang berfungsi sebagai penggerak pintu air.c.Water Level Control yang berfungsi sebagai sensor ketinggian air.d.Infrared dan photodiode yang berfungsi sebagai sensor ketinggian pintu.e.Menggunakan bahan plastik yang sudah tersedia sebagai bahan dasarpembuatan prototipe.Berdasarkan hasil pengujian, alat ini sudah dapat bekerja sebagai pintubendungan otomatis.2.Perangkat lunak (software) yang diaplikasikan dalam sistem ini adalahprogramyang dibangun dengan bahasaBascom AVR. Berdasarkanpengujian perangkat lunak ini sudah dapat bekerja dengan baik untukmenggerakkan motor dan manampilkan informasi ketinggian air pada LCD.3.Unjuk kerja Prototipe Pintu Bendungan Otomatis Berbasis ATmega16secara keseluruhan sudah sesuai dengan fungsi yang diterapkan, yaitu saatsensor air terkena air maka pintu bendungan membuka dan berhenti sesuai76

77dengan jarak yang sudah ditentukan dan pintu akan menutup saat sensor airtidak lagi terkena air dan berhenti sesuai dengan jarak yang ditentukan.4.Dari hasil pengukuran tegangan pada rangkaian saat diberi beban dan saattanpa diberi beban terdapat rata-rata presentase error 0,15 %. Padapengujian sensor ketinggian air, sensor infrared dan motor DC dapat bekerjadengan baik sesuai dengan pencenaan.B.Keterbatasan AlatAlat yang telah dibuat ini masih mempunyai beberapa keterbatasan, antaralain:1.Pintu air masih bocor.2.Sensor yang terpasang masih menggunakan Water Level Control.3.Motor yang terpasang masih memiliki torsi yang kecil.C.SaranBedasarkan keterbatasan kemampuan dan waktu,penulis mengakui adanyakekurangan dalam alat yang dibuat ini, maka penulis menyarankan sebagaiberikut:1.Untuk pengaplikasian sebenarnya, motor DC diganti menggunakan motordengan daya yang besar disesuaikan daya gerak pintu air yang sebenarnya.2.Untuk penggunaan sensor diganti dengan sensor yang lebih sederhana ataulebih efisien.

DAFTAR PUSTAKAAdrianto Heri. (2008). Mode Koneksi LCD. Bandung: Informatika BandungAnonim. (2009). Jenis-Jenis Pintu Pengendali Banjir (Flood Gate). Diambiltanggal 1 April 2012 dari http://gustavesp.wordpress.com/2009/02/17/jenis-jenis-pintu-pengendali-banjir-flood-gate/Anonim. (2010). Rangkaian Regulator LM7805. Diambil tanggal 11 Juni 2011dari http://rangkaianelektronika.net/search/ic-regulator-7805Anonim. (2010). Transistor. Diambil tanggal 11 Juni 2011 darirepository.usu.ac.id/bitstream/123456789/18326/.../Chapter%20II.pdfAnonim. (2011). 3-Terminal Positive Voltage Regulators. Diambil pada tanggal17 Maret 2012, dari : http://www.national.com/mpf/LM/LM78M05.htmlAtmel Corporation. 2003.8-bit Microcontroller with 16K Bytes In-SystemProgrammable Flash ATmega16 ATmega16L Preliminary. Diambil padatanggal 04 Maret 2012, dari : http:// www.alldatasheet.com.Fahmizal.(2010). BascomAVR.diambil tanggal 02 Februari 2012, dari https://fahmizaleeits.wordpress .comHermawan Rudy dan Akmaludin Dzulfikar. Tugas Akhir Prototipe SistemPengendali Kanal Air Dengan Menggunakan MikrokontrolerATmega8535. Yogyakarta : Fakultas Informatika STIMIK AMIKOMYogyakarta.Muhamad Jahus Jarzani. (2010).Pengertian dan Fungsi Bendungan. Diambiltanggal 12 April 2011 dari http://jahus-civil-engineers.com/2010/01/-bendungan-dam.htmlPaulus Andi Nalwan. (2004). AN-0012 Jenis-jenis Motor, Diambil tanggal 02Februari 2012, dari http://www.robotindonesia.comPaundra dan Akuwan S. Tugas Akhir Sistem Pengendali Pintu Air DenganMenggunakan Komputer Berbasis Mikrokontroler ATmega8535.Surabaya : Politeknik Elektronika, Institut Teknologi Sepuluh NovemberSurabaya.Tim penyusun. 2011. Pendoman proyek Akhir. Fakultas Teknik UNY78

LAMPIRAN79Lampiran IC LM78XX

80

81

82

83

84

85

86

87

88

89

90

91

92Lampiran Transistor TIP31 dan TIP32

93

94

95

96Lampiran Transistor BD139

97

98

99Lampiran Transistor BC140

100

101

102

103

104 105Lampiran ATMega 16

106

107

108

109

110

111

112

113

114

115

116

117

118Program untuk Prototipe Pintu Bendungan Otomatis Berbasis MikrokontrolerATMega 16$regfile="m16def.dat"'weusethe8535$crystal=12000000DimMotorAsByteDimSensor_airAsByteDimSensor_pintuAsByteDimData_pintuAsEramByteConfigPortd=OutputConfigPortc=InputConfigLcdpin=Pin,Db4=Portb.4,Db5=Portb.5,Db6=Portb.6,Db7=Portb.7,E=Portb.2,Rs=Portb.0ConfigLcd=16*2ConstNaik=1ConstTurun=2ConstBerhenti=0M1AliasPortd.6M2AliasPortd.7S0AliasPinc.0S1AliasPinc.1S2AliasPinc.2S3AliasPinc.3S4AliasPinc.4S5AliasPinc.5S6AliasPinc.6

119S7AliasPinc.7Portd=0Portc=255Sensor_air=0Sensor_pintu=0'NowgivepowertothechipDim Nilai_adc As Byte , Channel As Byte //deklarasivariabeluntuk menyimpan pemrosesan data.Channel = 0Cursor Off Noblink // untuk menyembunyikan cursor diLCDCls // untuk menghapus karakter LCDLcd "Simulasi Kendali" // tampilan pada LCDLowerline // untuk menampilkan karakter lcd di barisbawanyaLcd "PintuAir"Wait 2 // delay waktu 2 detikSensor_pintu = Data_pintuDo // perintah untuk perulangan yang digunakan untukmelakukan perulanagn program selama kondisi telahterpenuhiGosub Cek_sensorClsGosub TampilanIf Sensor_air > Sensor_pintu Then // menguji duakeadaan (benar ataupun salah) dan menentukan tindakansesuai dengan keinginanM1 = 0M2 = 1Waitms 300 // delay waktu 300 mili detikDoIf Pina.0=1 Then

120M1 = 0M2 = 0End IfLoopIncr Sensor_pintu // perintah untuk menambah 1 padadata yang ditunjukkan.Elseif Sensor_air < Sensor_pintu ThenM1 = 1M2 = 0Waitms 300DoIf Pina.0=1 ThenM1 = 0M2 = 0End IfLoopDecr Sensor_pintu // perintah untuk mengurangi 1 padadata ditunjukkan.End IfData_pintu = Sensor_pintuWaitms 200LoopEnd//'end prosesReturnMotor_run:If Motor = Naik ThenM1 = 0M2 = 1Elseif Motor = Turun ThenM1 = 1

121M2 = 0Elseif Motor = Berhenti ThenM1 = 0M2 = 0End IfReturnCek_sensor:Select Case Pinc //Pernyataan ini digunakanuntuk melakukan pengambilan keputusan terhadap banyakkondisi.Case &B11111111 : Sensor_air = 0Case &B11111110 : Sensor_air = 1Case &B11111100 : Sensor_air = 2Case &B11111000 : Sensor_air = 3Case &B11110000 : Sensor_air = 4Case &B11100000 : Sensor_air = 5Case &B11000000 : Sensor_air = 6Case &B10000000 : Sensor_air = 7Case &B00000000 : Sensor_air = 8End SelectReturnTampilan:Lcd "Level Air : " ; Sensor_air ; " m"Lowerline'Lcd Nilai_adcLcd "Pintu Air : " ; Sensor_pintu ; " m"Return RaangkaaianKKesel DIP TOOTOK S uruh an DIG SSAFRUDIN DIST TOTOK S A33 NIM.0950 07131011No.1 1122123 LAYOUTDANPCBWLC No.2 SKALA: DIG:SAFRUDIN DIP.TOTOKS DIST.TOTOKS NIM.09507131011

124 LAYOUTDANPCBFREKUENSIMETER LAYOUTDANPCBHBRIDGEMOTORDC SKALA: DIG:SAFRUDIN No.3 DIP.TOTOKS DIST.TOTOKS NIM.09507131011

125 NIM.09507131011 No.4 DIG:SAFRUDIN DIST.TOTOKS LAYOUTDANPCBRANGKAIANATMEGA16 SKALA: DIP.TOTOKS 126Lampiran 10 . Panduan Pengoperasian Prototipe Pintu Bendungan Otomatis BerbasisMikrokontroler ATMega161.Pasangkan sensor ketinggian air (water level control), sensor cahaya dan motor di Portpada box yang sudah disediakan.2.Tekan saklar Power yang ada di bagian tutup pada alat ke posisi ON. Jika sudahON maka led indikator akan hidup berwarna biru dan pada LCD akan menampilkanSimulasi Pintu Air.3.Setelah saklar ON, masukkan air ke dalam bak penampungan yang disediakan sampaisensor terkena air, pintu akan bergerak membuka dan menutup sesuai dengan kondisi air.