Proposal Proyek Akhir
ABSTRAK Mesin penetas telur yang ada dipasaran saat ini adalah mesin penetas yang bekerja secara konvensional, artinya pengaturan suhu dan kelembaban udara ruang penetas dilakukan oleh manusia. Kelemahan sistem yang masih melibatkan manusia adalah kemungkinan manusia melakukan kesalahan dan lupa. Untuk menggantikan tugas manusia dalam sistem tersebut maka dalam proyek akhir ini akan dibuat mesin penetas telur otomatis, yang dilengkapi sensor suhu dan kelembaban. Suhu ruang penetas telur harus dijaga sebesar 38ºC-40ºC(102103ºF) Dan kelembabannya sebesar 60-70%. Selain itu sistem juga akan dilengkapi dengan mekanisme pembalik telur secara otomatis, hal ini diperlukan untuk mencegah embrio agar tidak melekatkan pada kulit/kerabang telur dan mencegah kuning telur tidak melekat padaakhir penetasan pemuataran telur. Proses pengaturan sistem dilakukan oleh mikrokontroler ATMega 8535 sebagai otak dari sistem. Sedangkan pemanas ruang penetas adalah berupa lampu. Untuk menjaga suhu dan kelembaban ruang, sistem juga dilengkapi mekanisme penyemprot air. Selain itu sistem juga dilengkapi dengan kipas untuk meratakan suhu dan kelembaban udara serta ventilasi untuk menjaga sirkulasi udara dalam ruang penetas. Dengan sistem tersebut diharapkan proses penetasan telur memiliki tingkat keberhasilan 100%. Katakunci: AT-Mega8535 ,kelembaban, temperature, SHT11 ,mikrokontroler , incubator.
Proposal Proyek Akhir
MESIN PENETAS TELUR OTOMATS 1. PENDAHULUAN 1.1 Latar Belakang Secara alami semua jenis hewan melakukan perbanyakan populasi dengan cara perkawinan antara hewan jantan dan betina, khusus unggas setelah perkawinan dilanjutkan dengan poses bertelur oleh unggas betina. “Untuk menetaskan telur-telur tersebut maka induk betina akan melakukan proses pengeraman dalam waktu tertentu, misal telur ayam harus dierami selama 20-21 hari “(Imanah dkk,1994,hal.41). Saat ini proses pengeraman oleh induk ayam tersebut dapat digantikan oleh mesin penetas telur. Mesin penetas telur merupakan mesin yang dibuat oleh manusia dengan meniru proses pengeraman yang dilakukan oleh induk betina. Mesin ini mengadopsi proses pengaturan suhu, kelembaban dan pembalikan telur-telur yang dilakukan oleh induk betina. Mesin penetas telur yang ada dipasaran saat ini adalah mesin penetas yang bekerja secara konvensional, artinya pengaturan suhu dan kelembaban udara ruang penetas dilakukan oleh manusia. Kelemahan sistem yang masih melibatkan manusia adalah kemungkinan manusia melakukan kesalahan dan lupa. Untuk menggantikan tugas manusia dalam sistem tersebut maka dalam proyek akhir ini akan dibuat mesin penetas telur otomatis, yang dilengkapi sensor suhu dan kelembaban. “Suhu ruang penetas telur harus dijaga sebesar 38ºC-40ºC(102103ºF) Dan kelembabannya sebesar 60-70%”( Imanah dkk,1994,hal.40). Selain itu sistem juga akan dilengkapi dengan mekanisme pembalik telur secara otomatis, hal ini diperlukan untuk “mencegah embrio agar tidak melekatkan pada kulit/kerabang telur dan mencegah kuning telur tidak melekat padaakhir penetasan pemuataran telur”(Rasyaf,1987,hal.34). Induk ayam yang sedang mengerami telurnya, membalik-balikan telurnya secara teratur dengan paruhnya. Ini dilakukan karena kuning telur cederung mengambang dan menempel pada kulit kerabang. Jika telur terlalu lama berada pada posisi tersebut dan tidak segera dibalikan, kuning telur akan terpisah dari putih telur dan embrio yang menempel
Proposal Proyek Akhir
pada kuning telur akan tertekan langsung pada kulit kerabang sehingga bisa mengakibatkan kematian embrio. Induk ayam menghindari hal ini dengan membalik-balikkan posisi letak telur. Dalam sistem ini, proses pengaturan dilakukan oleh mikrokontroler ATMega 8535 sebagai otak dari sistem. Sedangkan pemanas ruang penetas adalah berupa lampu. Untuk menjaga suhu dan kelembaban ruang, sistem juga dilengkapi mekanisme penyemprot air. Selain itu sistem juga dilengkapi dengan kipas untuk meratakan suhu dan kelembaban udara serta ventilasi untuk menjaga sirkulasi udara dalam ruang penetas.
Dalam proyek akhir ini sistem akan lebih spesifik
digunakan untuk contoh kasus penetasan telur ayam. Dengan sistem tersebut diharapkan proses penetasan telur memiliki tingkat keberhasilan 100%. 1.2
Tujuan Tujuan yang akan dicapai adalah membuat mesin penetas telur yang dapat
bekerja secara otomatis dalam menjaga suhu, kelembaban udara, serta dapat melakukan mekanisme pembalikan telur. Dalam hal ini contoh kasus adalah proses penetasan telor ayam.
2. PERUMUSAN MASALAH DAN RUANG LINGKUP Dalam pembuatan Alat penetas telur Ayam otomatis ini, terdapat beberapa perumusan masalah dan ruang lingkup yang akan dibahas. Berikut ini adalah perumusan masalah dan ruang lingkup yang akan dibahas : 2.1
Perumusan Masalah Permasalahan yang diangkat dalam tugas akhir yang penulis buat ini
adalah sebagai berikut: 1. Syarat – syarat apa saja yang dibutuhkan telur sehingga dapat menetas tanpa dierami induk ayam. 2. Merancang dan membuat mekanik ruang penetas telor yang kontruksi dan ukuranya sesuai untuk menetaskan telur Ayam.
Proposal Proyek Akhir
3. Membuat rangkaian sensor yag dapat mendeteksi kondisi suhu dan kelembaban pada ruang penetas telor (inkubator). 4. Merancang dan Membuat mekanisme pembalikan telor. 5. Membuat program yang dapat mengatur suhu dan kelembaban di incubator serta mekanisme pembalikan telor. 6. Membuat program untuk pemilihan menu melalui dan tampilanya pada LCD. Pemilihan menu meliputi: Set point temperature dan kelembaban, jam digital, dan hari keberapa. 7. Bagaiman cara agar suhu dan kelembaban
ruang inkubator secara
otomatis dapat dijaga sesuai dengan set point, dalam hal ini melibatkan perangkat berupa: lampu, mekanisme penyemprot air, kipas, dan ventilasi.
2.2
Ruang Lingkup Ruang lingkup dalam proyek akhir ini meliputi: 1. Dimensi alat 1x0,5x1 meter. 2. Jumlah telur yang dapat ditetaskan dalam 1 kali proses maksimal 15 butir. 3. Bentuk telur bulat atau oval. 4. Sumber listrik diperoleh dari jala-jala PLN, dan tidak dilengkapi UPS, sehingga saat lampu mati sistem tidak dapat berjalan. 5. Untuk mengetahui kinerja sistem, saat pengujian telur yang akan ditetaskan sudah dipastikan memiliki kwalitas yang baik.
3. MANFAAT Manfaat dari pembuatan proyek akhir ini untuk membuat alat tepat guna yang bisa dipakai secara langsung oleh masyarakat terutama bagi kalangan peternak ayam. Alat penetas telur otomatis ini mempunyai banyak kelebihan dibandingkan dengan penetas konvensional yang di jual di pasar yang hanya mengatur suhu dan kelembaban secara manual/semiotomatis padahal hal tersebut dapat mengurangi daya tetas mesin.
Proposal Proyek Akhir
4. TINJAUAN PUSTAKA Telah dijelaskan sebelumnya bahwa alat penetas telur otomatis dapat memonitoring dan menjaga suhu incubator agar tetap stabil sesuai dengan kondisi yang diinginkan. Untuk menjaga kondisi tersebut digunakan perangkat berupa sensor untuk membaca suhu dan kelembaban, dan diperlukan beberapa aktuator berupa motor, blower, heater dan water pump.
Selain dapat menjaga suhu dan
kelembaban alat tersebut juga secara otomatis dapat menggerakkan posisi telur/melakukan mekanisme pembalikan. Untuk merealisasikan alat tersebut diperlukan komponen-komponen sebagai berikut: 4.1 Sensor Suhu dan Kelembaban SHT 11 SHT 11 adalah sebuah single chip sensor suhu dan kelembaban relatif dengan multi modul sensor yang outputnya telah dikalibrasikan secara digital. Dibagian dalamnya terdapat kapasitif polimer sebagai elemen untuk sensor kelembaban relative dan sebuah pita regangan yang digunakansebagai sensor temperatur. Output kedua sensordigabungkan dan dihubungkan pada ADC 14 bit dan sebuah interface serial pada satu chip yang sama. Sensor ini menghasilkan sinyal keluaran yang baik dengan waktu respon yang cepat. SHT11 dikalibrasi pada ruangan dengan kelembaban yang teliti menggunakan hygrometer sebagai referensinya. Koefisien kalibrasinya telah di programkan kedalam OTP memory. Koefisientersebut akan digunakan untuk mengkalibrasi keluaran dari sensor selama proses pengukuran. 2- wire alat penghubung serial dan regulasi tegangan internal membuat lebih mudah dalam pengintegrasian sistem. Ukurannya yang kecil dan konsumsi daya yang rendah membuat sensor ini adalah pilihan yang tepat, bahkan untuk aplikasi yang paling menuntut. Didalam piranti SHT 11 terdapat suatu surface-mountable LLC (Leadless Chip Carrier) yang berfungsi sebagai suatu pluggable 4-pin single-in-line untuk jalur data dan clock, blok diagram chip SHT 11 dapat dilihat pada Gambar 4.2
Proposal Proyek Akhir
Gambar 4.4 Blok diagram pada chip SHT 11 SHT 11 membutuhkan supply tegangan 2.4 dan 5.5 V. SCK (Serial Clock Input) digunakan untuk mensinkronkan komunikasi antaramikrokontroller dengan SHT 11. Data(SerialData) digunakan untuk transfer data dari dan keSHT 11. [Budiharto & Jepri,2007,hal.77 sampai hal.79] 4.2 Mikrokontroler ATMega 8535 Data suhu dan kelembaban yang dibaca oleh sensor SHT 11 kemudian akan diolah dalam mikrokontroler 8535. Mikrokontroler Atmega 8535 berfungsi sebagai otak yang akan mengendalikan semua sistem pada mesin penetas telur
secara otomatis. Mikrokontroler ATMega8535 adalah
mikrokontroler berjenis Reduced Instruction Set Computing (RISC) 8 bit dengan delapan kilobyte flash memori, high performance dan low power. Piranti ini dapat diprogram secara in-system programming (ISP) dan dapat diprogram berulang-ulang selama 10.000 kali baca/tulis (read/write) didalam sistem. Gambar berikut menunjukkkan konfigurasi pin ATMega8535
Proposal Proyek Akhir
Gambar 4.1 ATmega 8535 Pin-pin pada ATmega8535 memiliki beberapa fungsi, namun umumnya fungsi yang digunakan hanyalah fungsi sebagai Input dan Output. Beberapa konfigurasi pin ATmega8535 dapat dijelaskan secara fungsional sebagai berikut: 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya 2. GND merupakan pin ground 3. Port A (PA0..PA7) merupakan pin I/O yang dan pin masukan ADC 4. Port B (PB0..PB7) merupakan pin I/O dan pin fungsi khusus, yaitu Timer/Counter, komparator analog, dan SPI 5. Port C (PC0..PC7) merupakan pin I/O dan pin fungsi khusus, yaitu Two Wire Interface (TWI), komparator analog dan Timer Oscilator 6. Port D (PD0..PD7) merupakan pin I/O dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal 9. AVCC merupakan pin masukan tegangan untuk ADC 10. AREF merupakan pin masukan tegangan referensi ADC. (Heryanto & wisnu,2008,hal.1 sampai hal.3).
Proposal Proyek Akhir
Register register yang akan dipakai antara lain:
PWM PWM (Pulse Width Modulation) merupakan salah satu keunggulan yang dimiliki oleh ATmega8535. Ketiga Timer/Counter ATMega8535 mampu menghasilkan sinyal PWM. Pengaturan PWm dilakukan dengan mengatur nilai OCR pada timer yang bersangkutan. Mode PWM ATMega8535 mempunyai 2 tipe output, yaitu noninverting dan inverting PWM seperti gambar 5.6 dan gambar 5.7
Gambar 5.6 Non-inverting dan inverting PWM
Proposal Proyek Akhir
5.7 Gambar Glitch Free PWM I2C Pada dasarnya, pada sistem I2C terbagi atas dua bagian, yaitu suatu device yang bertindak sebagai pengontrol atau Master dan suatu device yang dikontrol atau Slave. Master dan slave saling berkomunikasi melalui jalur data bus I2C. Alat yang mengendalikan komunikasi data disebut Master dan alat yang dikendalikan oleh Master dikenal sebagai slave. Pada satu jalur data I2C yang sama dapat terdapat slave lebih dari satu oleh karena itu I2CBus harus dikendalikan Master yang dapat membangkitkan serial clock (SCL), mengontrol sistem komunikasi data (SDA), dan dapat menghasilkan kondisi-kondisi “start” dan “stop”... Pada jalur data bus I2C hanya terdapat 2 buah jalur yang digunakan yaitu Clock (SCL) dan Data (SDA).Terdapat beberapa macam jenis kondisi pada jalur data I2C, jenis kondisi tersebut adalah: 1. Bus not busy: Jalur data (SDA) dan clock (SCL) berlogika high
Proposal Proyek Akhir
2. Start data transfer: Suatu perubahan kondisi pada jalur data, dari logika high ke logika low, ketika jalur data sedang berlogika high, menandakan kondisi start. 3. Stop data transfer: Suatu perubahan kondisi pada jalur data, dari logika low ke logika high, ketika jalur data sedang berlogika high, menandakan kondisi stop. 4. Data valid: Suatu kondisi ketika jalur data menandakan data valid,yaitu ketika setelah kondisi start, jalur data tetap stabil selama periode high sinyal clock. Data pada jalur data harus berubah selama periode low dari sinyal clock. Terdapat satu pulsa clock untuk setiap bit data. Setiap proses pengiriman data dimulai dengan kondisi start dan diakhiri dengan kondisi stop. Banyaknya jumlah byte data yang ditransfer diantara kondisi start dan stop tersebut tidak terbatas, dan diatur oleh Master. 5. Acknowledge: Setiap device yang dituju telah menerima data dengan benar akan membangkitkan kondisi Acknowledge setiap menerima byte data. Device yang membangkitkan Acknowledge harus membangkitkan logika low pada jalur SDA selama sebuah pulsa clock. Untuk mengakhiri suatu proses pengiriman data Master harus memberikan suatu tanda dengan tidak memberikan tanda acknowledge melainkan memberikan tanda stop pada slave. EEPROM EEPROM (Electrically Erasable
Programmable Read Only Memory) adalah
salah satu dari tiga tipe memori pada AVR (dua yang lain adalah memori Flash dan SRAM). Sifat EEPROM tetap dapat menyimpan data saat tidak ada suplai dan juga dapat diubah saat program sedang berjalan. Oleh karena itu, EEPROM sangat berguna jika sistem yang kita bangun memerlukan penyimpanan data meskipun suplai dimatikan. Dengan Codevision AVR, untuk menyetting register bisa dilakukan langsung pada saat pembuatan program project.
RTC DS1302 RTC kepanjangan dari Real Time Clock yaitu sebuah devais yang berfungsi sebagai pewaktu digital berupa time dan date yang dilengkapi dengan batteray backup sehingga apabila catu daya tidak diberikan devais ini akan dicatu dengan batteray backup ini, sehingga devais akan tetap bekerja. RTC biasanya digunakan dalam aplikasi jam digital dan sebuah sistem monitoring yang memerlukan data
Proposal Proyek Akhir
waktu. RTC ada dua macam dalam pengaksesan data, yaitu secara parallel dan secara serial. Pada project akhir ini RTC yang digunakan adalah RTC yang diakses secara serial atau lebih dikenal dengan I2C. Untuk mengakses devais ini hanya diperlukan dua jalur yaitu SCK dan SDA, jalur SCK digunakan sebagai jalur clock dan SDA sebagai jalur data. RTC DS1302 dapat menghitung detik, menit, jam, tanggal, builan, hari dan tahun. Memiliki 31 x 8 RAM dan dalam transfer datanya baik proses baca atau tulis dapat dilakukan secara singlebyte maupun multiple-byte. Konfigurasi pin DS1302 dapat dilihat pada gambar 1.
Gambar . Pin DS1302 Adapun penjelasan dari pin diatas adalah sebagai berikut: VCC2 : dihubungkan dengan catu daya utama, sistem catu daya DS1302 dilihat perbandingan VCC1 dan VCC2, jika VCC2 > VCC1+0,2V maka IC dicatu oleh VCC2 tapi jika VCC2 lebih kecil dari VCC1, maka yang mencatu adalah VCC1 • X1 dan X2 : dihubungkan dengan kristal sebesar 32,768KHz. • GND : dihubungkan ke Ground • VCC1 : dihubungkan ke catu daya backup seperti batteray • SCLK : sebagai jalur clock, dihubungkan dengan mikrokontroller • I/O : sebagai jalur data, dihubungkan dengan mikrokontroller • CE : chip enable, berfungsi untuk meaktifkan IC, bisa dihubungkan dengan mikrokontroller. IC DS1302 akan mengupdate data detik,menit sampai tahun pada register yang terdapat didalamnya, jadi seorang programmer harus dapat mengerti alamat dari masing-masing register detik, menit sampai tahun. Selain register detik, menit sampai tahun terdapat register yang berfungsi untuk mensetting besarnya arus charger ke VCC1. Untuk lebih jelasnya bisa dilihat pada gambar 2. •
Gambar . Alamat register detik,menit..tahun
Proposal Proyek Akhir
Pada gambar diatas terdapat perbedaan alamat register antara proses baca maupun tulis. Proses tulis dimaksudkan untuk mensetting DS1302 seperti mensetting detik, menit, jam,,sampai tahun. Adapun proses baca adalah membaca data detik, menit,sampai tahun. Seperti dijelaskan sebelumnya, bahwa RTC DS1302 diakses dengan format I2C sehingga dalam pembuatan program harus mengikuti format I2C . Dalam I2C terdapat format paket data yang harus diperhatikan yaitu seperti pada gambar 3.
Gambar 3. Format paket data 4.3 Motor DC Sebagai Penggerak dalam Mekanisme Pembalikan Telur Motor DC terdiri dari stator berupa magnet tetap dan rotor berupa koil. Apabila koil rotor dialiri arus listrik maka akan timbul medan magnet yang akan bereaksi dengan medan magnet stator sehingga mengakibatkan rotor berputar. Putaran motor DC ini bisa searah jarum jam atau berlawanan arah jarum jam tergantung pada aliran arus yang diberikan. Apabila terminal sumber tegangan yang diberikan sama dengan terminal pada motor DC maka arah putaran motor searah putaran jarum jam dan sebaliknya.
Gambar 4.2 Motor DC
Proposal Proyek Akhir
Motor dc ini digunakan sebagai actuator yang akan memutar posisi rak telur sampai sudut 45 derajat terhadap sumbu vertikal. Pada pembuatan alat ini berat beban yang akan digerakan sebesar 4 Kg yang sudah termasuk didalamnya berat beban 15 butir telur dan berat wadah rak telur tersebut. Untuk Pemilihan torsi motor yang akan digunakan harus disesuaikan dengan berat beban dan perbandingan roda gigi yang digunakan. Penentuan jari jari roda gigi didapatkan dengan rumus yaitu ½ dari diameter roda gigi, sedangkan roda gigi yang akan digunakan memiliki diameter 4 cm sehingga di dapatkan jari-jari roda gigi sebesar 2 cm. Setelah itu, dapat dicari berapa torsi yang seharusnya digunakan. Telah diketahui bahwa rumus torsi sama dengan berat beban yang akan digerakkan dikalikan dengan jari-jari roda gigi. Maka, torsi adalah 4Kg dikali 2 cm sama dengan 8 Kg-cm. Satuan rumus torsi ini disesuaikan dengan satuan torsi yang tercantum pada karakteristik motor yang digunakan. Motor DC dikontrol menggunakan Driver. Penentuan gerakan CCW dan CW ditentukan dari keluaran Portc.5 dan Portc.6. Pengaktifan Portc.5 dan Portc.6 berasal dari program yang telah di masukkan kedalam mikrokontroler. Jika keluaran Portc.5 berlogika 1 dan Portc.6 berlogika 0 maka motor akan bergerak CW, dan apabila Portc.5 berlogika 0 dan Portc.6 berlogika 1 maka motor akan bergerak CCW. Untuk menggerak kan motor DC menjad 4.4 Heater, Blower dan Water Pump untuk Menjaga Suhu dan Kelembaban Ruang Inkubator. Heater akan aktif apabila suhu dan kelembaban dibawah set Point. Blower dan water Pump akan aktif apabila suhu dan kelembaban diatas set point. Pengaktifan heater, Blower dan Water Pump dikontrol dari program yang telah tersimpan di dalam mikrokontroler. Mikrokontroler akan memberikan keluaran logika 1 ke setiap pin port yang terhubung ke heater, blower, water pump untuk mengaktifkanya dan mematikanya dengan memberikan keluaran Logika 0 setiap pin port tersebut.
Proposal Proyek Akhir
4.5 Display Berupa Liquid Crystal Display (LCD) Untuk mengetahui semua proses yang sedang berlangsung pada mesin tetas telur seperti kadar suhu,kelembaban, lama pengeraman,dan jumlah pembalik telur/hari maka dibutuhkan LCD. Liquid crystal display (LCD) adalah sebuah modul penampilan yang banyak digunakan. Tampilan LCD yang digunakan dalam tugas akhir ini yaitu modul LCD dengan konfigurasi 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Urutan pin (1), umumnya dimulai dari sebelah kiri (terletak di pojok kiri atas) dan untuk LCD yang memiliki 16 pin, 2 pin terakhir (15 & 16) adalah anoda dan katoda untuk back-lighting. Berikut adalah contoh LCD (2×16) yang umum digunakan :
Gambar 4.3 Pin out LCD Tabel 3 konfigurasi pin out LCD no 1 2 3 4 5 6 7 8 9 10
Nama pin VCC GND VEE RS R/W E D0 D1 D2 D3
Deskripsi +5V 0V Tegangan kontras LCD Register select, 0=Register perintah, 1=Register data 1=Read, 0=Write Enable clock Data I/O pins Data I/O pins Data I/O pins Data I/O pins
Proposal Proyek Akhir
11 12 13 14 15 16 5.
D4 D5 D6 D7 Anode Katode
Data I/O pins Data I/O pins Data I/O pins Data I/O pins Tegangan positif backlight Tegangan negatif backlight
METODOLOGI Dilakukan beberapa metodologi dalam pembuatan Alat penetas telur
Ayam otomatis. Metodologi yang dilakukan adalah : 5.1
Study literatur 1. Penggunaan sensor 2. Komunikasi sensor dengan microkontroler 3. Pemrograman microkontroler mencakup input dari keypad dan output pada LCD. 4. Data sheet sensor,AVR At-mega8535,LCD.
5.2
Perancangan Blok diagram sistem secara umum adalah sebagai berikut: Display Motor DC
SHT11
Mikrokontroler
Blower
Heater
Tombol Setting Water Pump
Gambar 5.4 Blok diagram Sistem utama pada mesin penetas telur otomatis ini diatur oleh mikrokontroler. Tombol Setting yang akan digunakan adalah Keypad. Set point suhu dan kelembaban dan juga jam digital di input dari keypad. Setalah itu input
Proposal Proyek Akhir
mikrokontroler yang diperoleh dari sensor SHT 11 berupa nilai suhu dan kelembaban ditampilkan pada LCD. Ketika suhu terlalu tinggi artinya nilai suhu dan kelembaban yang terbaca leh sensor SHT11 lebih besar dibandingkan nilai setpoint, maka kipas akan menyala dan lampu akan mati, sedangkan jika suhu lebih rendah dari set point maka lampu menyala kembali dan kipas akan mati. Disamping itu Water Pump akan menyemprotkan air ke busa/spons jika nilai kelembabannya lebih rendah dari set point untuk menjaga kelembaban telur agar telur tidak kering dan keras karena hal tersebut bisa menghambat dalam penetasan telur ayam. Jika kelembaban terlalu tinggi, maka kipas akan menyala untuk menurunkan tingkat kelembaban dan kipas akan mati jika kelembaban sudah normal kembali. Untuk merealisasikan blok diagram tersebut, dilakukan perancangan yang dibagi menjadi perancangan elektronik dan pemrograman mikrokontroler.
5.2.1
Perancangan Software
1.Flow chart
Proposal Proyek Akhir
START
Inisialisasi
•
•
• • •
Input setting minimumdan maksimumuntuk suhu dan kelembaban Input setting Jam Digital
Tampilkan di LCDSuhu dan Kelembaban Tampilkan JamDigital Tampilkan sistemyang sedang bekerja
Lampu Di hidupkan
Tidak CekSuhu dan Kelembaban Ya
Suhu Dan Kelembaban > Sett Point
Tidak
Kipas On and Water Pump ON
Ya Lampu Off
Suhu Dan Kelembaban Sett Point
<
Lampu On
Motor Berputar 4 kali dalamsatu hari satu malamdimulai dari hari pertama sampai hari ke 18 dan hari ke 19 sampai 20 motor off
END
Gambar 5.5 Flowchart secara keseluruhan. Penjelasan Flow Chart:
Proposal Proyek Akhir
Semua sistem di atas di kontro oleh Mikrokontloer yang sudah terprogram menggunakan Codevision AVR. Pertama kali yang harus dilakukan sebelum telur dimasukkan ke dalam ruang incubator adalah menginput set point dari keypad. Set point yang harus di input adalah suhu dan kelembaban maksimum dan suhu minimum yang dibutuhkan untuk ruang inkubator
dan
waktu pada saat
memasukkan telur ke inkibator . Setelah itu, Beberapa telur dimasukkan dan lampu dihidupkan. Mikrokontroler akan menjalankan perintah yang telah di inputkan tadi. Seluruh sistem yang digunakan akan dikontrol oleh mikrokontroler . Apabila Suhu dan kelembaban yang terukur oleh Sensor suhu dan kelembaban diatas sett point maka mikrokontroler akan mematikan Heater yang merupakan sumber panas dan mengaktifkan Blower dan Water Pump untuk menurunkan suhu dan kelembaban ruang incubator. Apabila suhu yang terukur dibawah sett point. maka mikrokontroler akan mengaktifkan kembali heater untuk manikkan suhu ruangan. Sett point waktu digunakan sebagai panduan pengaktifan motor untuk memutar rak telur ke posisi atau sudut yang telah ditentukan. Rak telur harus di putar sebanyak 4 kali dalam sehari dan didalam mikro sudah terdapat perintah kapan waktu rak telur akan diputar. Kadar Panas yang di hasilkan oleh Heater untuk menaikkan suhu dan kelembaban di dalam ruang inkubator ditentukan dari hasil eksperimen pada saat pembuatan alat. Komposisi antara kadar dan kecepatan angin dan banyaknya air yang harus di semprotkan oleh Water Pump untuk menurunkan Suhu dan Kelembaban ruang Inkubator ditentukan dari hasil eksperimen pada saat pembuatan alat.
2
Codevision AVR Pembuatan alat ini membutuhkan program yang bertujuan untuk
mengendalikan semua sistem yang digunakan. Pembuatan program menggunakan Codevision AVR C Compiler (CVAVR). Program yang telah di buat akan disimpan kedalam ATMega 8535 yang merupakan pengendali seluruh aktifitas pengontrolan sistem. Code Vision AVR C Complier (CVAVR) merupakan
Proposal Proyek Akhir
compiler bahasa C untuk AVR yang sudah didukung berbagai fitur yang sangat membantu dalam pembuatan software untuk keperluan pemrograman. Selain itu CVAVR juga tidak memerlukan software tambahan dalam mekakukan download program ke ATMega8535 karena di CVAVR sendiri sudah ada fitur khusus tersebut. Code Vision AVR yang digunakan adalah versi 1.2.1 Evaluation (CVAVReval). Tampilan CodeVisionAVR Eval
Gambar Tampilan Code Vision AVR Kompilasi Dan Download Ke AVR Kelebihan Codevision AVR dibandingkan Compiler AVR yang lain adalah tidak membutuhkan tool tambahan untuk mendowload program ke ATMega-8535. Karena sudah tersedia di dalam Codevision sendiri.
5.2.2
Perancangan Elektronik
Proposal Proyek Akhir
LCD1
4
5
6
C
1
2
3
ON
0
=
+
3
4
C 1
D
1 2 3
1k
D0 D1 D2 D3 D4 D5 D6 D7
B
7 8 9 10 11 12 13 14
9
RS RW E
8
4 5 6
7
LM016L
VSS VDD VEE
A
2
RV1
U1 13 12 9
R1
1k
R2
1k
R3
1k
R4
1k
R5
1k
R6
1k
R7
1k
R8
1k
1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21
XTAL1 XTAL2 RESET PB0/T0 PB1/T1 PB2/AIN0 PB3/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP PD7/OC2
PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0 PC1 PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2 AREF AGND AVCC
40 39 38 37 36 35 34 33
VDD
22 23 24 25 26 27 28 29
SHT11
32 31 30
AT90S8535
R9 4,7k
Gambar Perancangan Elektronika 1. Rangkaian Sensor SHT 11 SHT11 adalah sensor digital untuk temperatur sekaligus kelembaban pertama di dunia yang diklaim oleh pabrik pembuatnya, Sensirion Corp. Mempunyai kisaran pengukuran dari 0-100% RH, dan akurasi RH absolute +/- 3% RH. Sedangkan akurasi pengukuran temperatur +/-.0.4°C @ 25°C. Sensor ini bekerja dengan interface 2-wire. Aplikasi sensor ini pada data logging, pemancar, automotive, perangkat instrumentasi dan lain sebagainya. Untuk menghubungkan sensor 2 wire dengan mikrokontroler. Gambar 3.8 berikut merupakan rangkaian sensor kelembaban tipe SHT 11. Sensor SHT 11 ini dikoneksikan pada Port C.1 sebagai transfer data dan pada Port C.2 sebagai clock.
Proposal Proyek Akhir
Gambar 5.8 SHT 11 6. Rangkaian Downloader Rangkaian Downloader ini berfungsi sebagai media untuk memasukan program yang sudah dibuat di Codevision Avr ke mikrokontroler ATMega8535 . Diagram skematik rangkaian Downoader ATMega8535 dapat dilihat pada Gambar 5.1
Gambar 5.9 Rangkaian Downloader.
7.
Rangkaian Tombol Setting Keypad diperlukan untuk berinteraksi dengan sistem. Pada saat dilakukan
penyetingan set-point suhu dan temperatur dan juga setting Jam Digital. Keypad 4x4 paling sering digunakan dalam pemrograman. Selain hardwarenya mudah, softwarenya juga tidak terlalu susah. Pada dasarnya keypad 4x4 adalah 16 pushbutton yang dirangkai secara matriks. 8. Rangkaian Display LCD LCD digunakan untuk menampilkan menu pilihan diantaranya adalah set point temperatur dan kelembaban, jam digital yang di inputkan dari keypad, dan penghitungan jumlah hari selama penetasan telur. LCD juga digunakan untuk menampilkan sistem yang sedang bekerja bekerja dan hari yang keberapa.
Proposal Proyek Akhir
5.3
Realisasi Proses realisasi sistem ini dimulai dari pembuatan mekanik yaitu
pembuatan Inkubator dan Pembuatan Elektronik yaitu pembuatan rangkaian elektronik yang meliputi single chip AT-Mega 8535 dan Rangkaian Pengontrol Temperature dan Kelembaban. 5.4
Metode Pengujian Pengujian yang akan dilakukan meliputi pengujian seluruh perangkat
elektronik dan mekanik. 8.2
Pengujian Terhadap Sensor SHT 11 Sensor SHT 11 merupakan sensor yang telah terkalibrasi dengan akurasi
±3,5 %. Pengujian SHT 11 direncanakan akan dibandingkan dengan hasil pengukuran alat pengukuran temperature dan kelembaban. rata-rata temperatur 0,23 8.3
Pengujian Pada Mekanisme Proses Mempertahankan Suhu dan
Kelembaban Ruang Inkubator. Lampu merupakan sumber energi panas yang akan meningkatkan suhu dan kelembaban ruang inkubator. Apabila sensor mendeteksi panas yang di hasilkan lampu melebihi dari suhu dan kelembaban yang di inginkan atau set point maka lampu akan di non aktifkan. Suhu dn kelembaban yang tinggi ditunkan dengan menggunakan blower dan water pump sampai suhu dan ruang inkibator telah sesuai dengan set point, kemudian blower dan water di nonaktifkan kembali. Keberhasilan sensor suhu dan kelembaban
dalam
mendeteksi suhu dan kelembaban ruang inkubator bisa dilihat dari persentase kegagalan penetasan telur. Jika persentase kegagalan penetasan dibawah 20% artinya sensor suhu dan kelembaban berhasil sebagai indukator untuk mempertahankan suhu dan kelembaban ruang inkubator. 8.4
Pengujian Pada Mekanisme Pembalikan Telur
Proposal Proyek Akhir
Pembalikan telur di lakukan 4 kali dalam satu hari. Motor akan aktif untuk membalikan posisi rak telur menuju 45 derajat dri posisi semula. Waktu pengaktifan motor dirancang dalam bentuk program yaitu pada pukul 06.00 wib, 12.00 wib, 18.00 wib dan 24.00 wib. Pengujian pembalikan telur bisa di lihat dari jumlah telur yang menetas. Diharapkan dengan dilakukan pembalikan telur 4 kali dalam sehari bisa menghasilkan persentase keberhasilan penetasan di atas 80% dari total jumlah telur yang akan ditetaskan yaitu 64 telur.
8.5
Pengujian Sistem Secara Keseluruhan Pengujian alat dilakukan dalam 3 tahap. Tahap pertama sampai tehap
ketiga jumlah telur yang akan ditetaskan berjumlah 18 telur. Jadi, total keseluruhan telur yang akan ditetaskan adalah 64 telur. Persentase kegagalan dari Tiga tahapan tersebut di harapakan di bawah 20% dari total telur yang akan ditetaskan. Jika persentase kegagalan telur diatas 20%, maka pengujian alat tidak berhasil. 5.5
Analisa dan Evaluasi Hal-hal yang akan dianalisa dan dievaluasi adalah sebagai berikut: 1. Kinerja Sensor SHT11 2. Kinerja Mekanisme Mempertahankan Suhu Ruangan 3. Kinerja Mekanisme Pembalikan Telur 4. Kinerja Alat Secara Keseluruhan (Berkaitan dengan tingkat keberhasilan alat dalam proses penetasan telur).
6.
JADWAL No
KEGIATAN
BULAN Ju Jan Feb Mar Apr Mei n
1 2
Studi literature Pembuatan proposal
Jul
Proposal Proyek Akhir
3 4 5 6
Perancangan system Pengajuan Proposal Seminar proposal Pembuatan alat
7 8 9 10 11
Pengukuran/pengujian Perbaikan/penyempurnaan Pembuatan laporan PA Pengajuan sidang akhir Sidang Akhir
Daftar Pustka (1) Rasyaf, M.(1987). Pengelolaan Penetasan. Yogyakarta : Penerbit Kanisius. (2) Imanah dkk. (1994). Pembuatan Mesin Tetas Dengan Cahaya Matahari dan Pemiliharaan Ayam. Pekalongan : CV. Bahagia Batang. (3) Heryanto, M, & Adi P,wisnu.(2008).Pemrograman Bahasa C untuk Mikrokontroler ATMEGA 8535.Yogyakarta:Penerbit Andi. (4) Budiharto,W, & Jefri, T.(2007).12 proyek SISTEM AKUISISI DATA.Jakarta:PT Elex Media Komputindo.
Mekanisme Pengaturan Suhu dan Kelembaban Semua sistem di atas di kontrol oleh Mikrokontloer yang sudah terprogram. Pertama kali yang harus dilakukan sebelum telur dimasukkan ke dalam ruang incubator adalah menginput set point dari keypad. Set point yang harus di input adalah suhu dan kelembaban maksimum dan suhu minimum yang dibutuhkan untuk ruang inkubator dan waktu pada saat memasukkan telur ke inkibator . Setelah itu, Beberapa telur dimasukkan dan lampu dihidupkan. Mikrokontroler akan menjalankan perintah yang telah di inputkan tadi. Seluruh sistem yang digunakan akan dikontrol oleh mikrokontroler .
Proposal Proyek Akhir
Apabila Suhu ruangan inkubator yang terbaca oleh SHT 11 dibawah 38°C maka Waterpump dan Blower akan aktif sampai suhu kembali normal yaitu 38°C40°C. Dan sebaliknya, jika suhu yang terbaca oleh SHT11 mlebihi 40°C, maka Heater akan aktif sampai suhu kembali normal.Kelembaban ruangan inkubator yang terbaca oleh SHT 11 di bawah 60% maka Waterpump dan Blower akan aktif sampai kelembaban kembali normal yaitu 60% - 70%. Dan sebaliknya, jika kelembaban yang terbaca oleh SHT11 mlebihi 70%, maka Heater akan aktif dan katup Pasir silika akan terbuka sampai kelembaban kembali normal. SHT11 akan terus mengecek setiap perubahan suhu dan kelembaban yang terjadi didalam ruang inkubator. Set point waktu digunakan sebagai panduan pengaktifan motor untuk memutar rak telur ke posisi atau sudut yang telah ditentukan. Rak telur harus di putar sebanyak 4 kali dalam sehari dan didalam mikro sudah terdapat perintah kapan waktu rak telur akan diputar. Pemutaran rak telur berlangsung sampai hari ke-18 setelah itu, motor di non-aktifkan. Kadar Panas yang di hasilkan oleh Heater untuk menaikkan suhu dan kelembaban di dalam ruang inkubator ditentukan dari hasil eksperimen pada saat pembuatan alat. Komposisi antara kadar dan kecepatan angin dan banyaknya air yang harus di semprotkan oleh Water Pump untuk menurunkan Suhu dan Kelembaban ruang Inkubator ditentukan dari hasil eksperimen pada saat pembuatan alat.
1. Rangkaian Sensor SHT 11 SHT11 adalah sensor digital untuk temperatur sekaligus kelembaban pertama di dunia yang diklaim oleh pabrik pembuatnya, Sensirion Corp. Mempunyai kisaran pengukuran dari 0-100% RH, dan akurasi RH absolute +/- 3% RH. Sedangkan akurasi pengukuran temperatur +/-.0.4°C @ 25°C. Sensor ini bekerja dengan interface 2-wire. Aplikasi sensor ini pada data logging, pemancar, automotive, perangkat instrumentasi dan lain sebagainya. Untuk menghubungkan sensor 2 wire dengan mikrokontroler. Sensor SHT 11 ini dikoneksikan pada Port C.3 sebagai transfer data dan pada Port C.4 sebagai clock.
Proposal Proyek Akhir
“Antarmuka yang digunakan oleh sensor SHT-11 adalah serial interface (Bidirectional 2-wire). Antarmuka bidirectional 2-wire yang dimiliki oleh sensor SHT-11 tidak kompatibel dengan antarmuka I2C. Perbedaannya terletak pada sekuen start/stop (transisi start). Jika pada jalur I2C jalur SCL dan SDA dapat digunakan bersama maka pada antarmuka SHT-11 hanya diijinkan pemakaian bersama untuk jalur SCK sedangkan untuk jalur DATA tidak disarankan untuk digunakan bersama (dedicated DATA line)”
Penjelasan dari Support Team
Digiware”. 2. Rangkaian Tombol Setting Keypad diperlukan untuk berinteraksi dengan sistem. Pada saat dilakukan penyetingan set-point suhu dan temperatur dan juga setting Jam Digital. Keypad 4x4 paling sering digunakan dalam pemrograman. Selain hardwarenya mudah, softwarenya juga tidak terlalu susah. Pada dasarnya keypad 4x4 adalah 16 pushbutton yang dirangkai secara matriks. Scanning Keypad Keypad 4 x 4 tersusun dari 16 tombol yang terbagi dalam 4 kolom dan 4 baris. Tiap-tiap tombol yang ada di dalam keypad menghubungkan 1 buah kolom dengan 1 buah baris. Sebuah Keypad 4x4 ditunjukkan dalam Gambar 6.1.
Contoh: Tombol 6 _ menghubungkan kolom 3 dengan baris 2 Tombol 8 _ menghubungkan kolom 2 dengan baris 3 Tombol * _ menghubungkan kolom 1 dengan baris 4 Keypad sering digunakan sebagi suatu input pada beberapa peralatan yang berbasis mikroprosessor atau mikrokontroller. Keypad sesungguhnya terdiri dari
Proposal Proyek Akhir
sejumlah saklar, yang terhubung sebagai baris dan kolom dengan susuan seperti yang ditunjukkan pada gambar 6.2.
Agar mikrokontroller dapat melakukan scan keypad, dilakukan cara berikut: • Pemasangan keypad diletakkan pada satu port. • Port tersebut dibagi menjadi dua bagian, 4 bit output (untuk baris) dan 4 bit input (untuk kolom). • Mikrokontroler mengeluarkan logika low “1” ke salah satu bit dari 4 bit yang terhubung pada kolom. • Mikrokontroler membaca 4 bit pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut. • Sebagai konsekuensi, selama tidak ada tombol yang ditekan, maka mikrokontroller akan melihat sebagai logika low “0” pada setiap pin yang terhubung ke baris. • Tetapi jika ada penekanan pada salah satu tombol, maka akan pada salah satu baris akan berlogika High “1”. Sumber
:
http://anandaekasetiawan.comoj.com/web_documents/6._keypad.pdf
diambil pada tanggal 30 – 06 – 2010.
A. I2C Pada dasarnya, pada sistem I2C terbagi atas dua bagian, yaitu suatu device yang bertindak sebagai pengontrol atau Master dan suatu device yang dikontrol atau Slave. Master dan slave saling berkomunikasi melalui jalur data bus I2C. Alat yang mengendalikan komunikasi data disebut Master dan alat yang dikendalikan oleh Master dikenal sebagai slave. Pada satu jalur data I2C yang sama dapat terdapat slave lebih dari satu oleh karena itu I2CBus harus dikendalikan Master yang dapat membangkitkan serial clock (SCL), mengontrol
Proposal Proyek Akhir
sistem komunikasi data (SDA), dan dapat menghasilkan kondisi-kondisi “start” dan “stop”... Pada jalur data bus I2C hanya terdapat 2 buah jalur yang digunakan yaitu Clock (SCL) dan Data (SDA).Terdapat beberapa macam jenis kondisi pada jalur data I2C, jenis kondisi tersebut adalah: 1. Bus not busy: Jalur data (SDA) dan clock (SCL) berlogika high 2. Start data transfer: Suatu perubahan kondisi pada jalur data, dari logika high ke logika low, ketika jalur data sedang berlogika high, menandakan kondisi start. 3. Stop data transfer: Suatu perubahan kondisi pada jalur data, dari logika low ke logika high, ketika jalur data sedang berlogika high, menandakan kondisi stop. 4. Data valid: Suatu kondisi ketika jalur data menandakan data valid,yaitu ketika setelah kondisi start, jalur data tetap stabil selama periode high sinyal clock. Data pada jalur data harus berubah selama periode low dari sinyal clock. Terdapat satu pulsa clock untuk setiap bit data. Setiap proses pengiriman data dimulai dengan kondisi start dan diakhiri dengan kondisi stop. Banyaknya jumlah byte data yang ditransfer diantara kondisi start dan stop tersebut tidak terbatas, dan diatur oleh Master. 5. Acknowledge: Setiap device yang dituju telah menerima data dengan benar akan membangkitkan kondisi Acknowledge setiap menerima byte data. Device yang membangkitkan Acknowledge harus membangkitkan logika low pada jalur SDA selama sebuah pulsa clock. Untuk mengakhiri suatu proses pengiriman data Master harus memberikan suatu tanda dengan tidak memberikan tanda acknowledge melainkan memberikan tanda stop pada slave.
Protokol I2C (2-Wire) I2C singkatan dari Inter Integrated Circuit, adalah sebuah protokol untuk komunikasi serial antar IC, dan sering disebut juga Two Wire Interface (TWI). Bus yang digunakan untuk komunikasi antara mikrokontroler dan divais periferal seperti memori, sensor temperatur dan I/O expander. Komunikasi dilakukan melalui dua jalur: SDA (serial data) dan SCL (serial clock). Setiap divais I2C
Proposal Proyek Akhir
memiliki 7-bit alamat yang unik. MSB adalah fix dan ditujukan untuk kategori divais. Sebagai contoh, 1010 biner ditujukan untuk serial EEPROM. Tiga bit berikutnya memungkinkan 8 kombinasi alamat I2C, yang berarti, dimungkinkan 8 divais dengan tipe yang sama, beroperasi pada bus I2C yang sama. Pengalamatan 7-bit memungkinkan 128 divasi pada bus yang sama. Alamat I2C dikirim dalam byte pertama. LSB dari byte ini digunakan untuk menunjukkan bila master akan melakukan penulisan (0) atau pembacaan (0) terhadap slave. Divais yang mengirim data sepanjang bus disebut master, divais yang menerima data disebut slave. Master memulai transmisi dengan sebuah sinyal start, dan menghentikan transmisi dengan sebuah sinyal stop pada jalur SDA. Selama sinyal start dan stop, jalur SCL harus dalam keadaan high. Setelah master memulai pengiriman data dengan sebuah sinyal start, master menulis satu byte alamat divais kepada slave. Setiap byte data harus memiliki panjang 8-bit. Slave harus memberikan konfirmasi dari byte data yang diterimanya dengan sebuah bit acknowledge (ACK). Compiler BASCOM-AVR dapat digunakan untuk membuat program yang dapat melakukan penulisan dan pembacaan ke dan dari EEPROM. BASCOM-AVR memiliki beberapa perintah terkait dengan pengendalian bus I2C. •
Config SDA : meng-konfigurasi jalur SDA
•
Config SCL : meng-konfigurasi jaluar SCL
•
I2cstart : menghasilkan sebuah kondisi start
•
I2cstop : menghasilkan sebuah kondisi stop
•
I2cwbyte : menulis satu byte pada divais target
•
I2crbyte : membaca satu byte dari divais target
Dalam BASCOM-AVR, pertama kita harus meng-konfigurasi port yang digunakan untuk jalur SDA dan SCL dari bus I2C. Selanjutnya, kita kirimkan alamat divasi untuk memilih EEPROM yang terhubung dengan bus I2C. Setelah itu kita kirimkan dua byte ke EEPROM untuk memilih alamat dalam EEPROM dimana kita akan menuliskan data. Byte terakhir yang dikirim dalam rangkaian penulisan adalah byte data.
Proposal Proyek Akhir
Sumber: http://christiantotjahyadi.wordpress.com/2008/08/30/komunikasi-i2c/ di ambil pada tanggal 30 Juli 2010. Prosess Read and Write pada I2C (2-Wire) Master terlebih dahulu menginisialisasi sebelum memulai transfer data antara slave-nya. Inisialisasi diawali dengan sinyal START (transisi high ke low pada jalur SDA dan kondisi high pada jalur SCL, lambang S pada gambar 2), lalu transfer data dan sinyal STOP (transisi low ke high pada jalur SDA dan kondisi high pada jalur SCL, lambang P pada gambar 2) untuk menandakan akhir transfer data.
Gambar 2. Sinyal untuk START dan STOP (sumber: UM10204 I2C-bus specification and user manual) Banyaknya byte yang dapat dikirimkan dalam satu transfer data itu tidak ada aturannya. Jika transfer data yang ingin dilakukan sebesar 2 byte, maka pengiriman pertama adalah 1 byte dan setelah itu 1 byte. Setiap byte yang di transfer harus diikuti dengan bit Acknowledge (ACK) dari si penerima, menandakan data berhasil diterima. Byte yang dikirim dari pengirim diawali dari bit MSB. Saat bit dikirim, pulsa clock (SCL) di set ke HIGH lalu ke LOW. Bit yang dikirim pada jalur SDA tersebut harus stabil saat periode clock (SCL) HIGH. Kondisi HIGH atau LOW dari jalur data (SDA) hanya dapat berubah saat kondisi sinyal SCL itu LOW.
Gambar 3. Transfer bit pada jalur I2C (sumber: UM10204 I2C-bus specification and user manual)
Proposal Proyek Akhir
Setiap pulsa clock itu dihasilkan (di jalur SCL) untuk setiap bit (di jalur SDA) yang ditransfer. Jadi untuk pengiriman 8 bit akan ada 9 pulsa clock yang harus dihasilkan (1 lagi untuk bit ACK). Kronologi sebelum perangkat penerima memberikan sinyal ACK adalah sebagai berikut: saat pengirim selesai mengirimkan bit ke-8, pengirim melepaskan jalur SDA ke pull-up (ingat penjelasan open drain di atas) sehingga menjadi HIGH. Nah saat kondisi tersebut terjadi, penerima harus memberikan kondisi LOW ke SDA saat pulsa clock ke-9 berada dalam kondisi HIGH.
Gambar 4. Data (byte) transfer pada jalur I2C (sumber: UM10204 I2C-bus specification and user manual) Jika SDA tetap dalam kondisi HIGH saat pulsa clock ke-9, maka ini didefinisikan sebagai sinyal Not Acknowledge (NACK). Master dapat menghasilkan sinyal STOP untuk menyudahi transfer, atau mengulang sinyal START untuk memulai transfer data yang baru. Ada 5 kondisi yang menyebabkan NACK: 1. Tidak adanya penerima dengan alamat yang diminta pada jalur, sehingga tidak ada perangkat yang merespon ACK. 2. Penerima tidak dapat menerima atau mengirim karena sedang mengeksekusi fungsi lain dan tidak siap untuk memulai komunikasi dengan master. 3. Pada saat transfer data, penerima mendapatkan data atau perintah yang tidak dimengerti oleh penerima. 4. Pada saat transfer data, penerima tidak dapat menerima lagi byte data yang dikirimkan. 5. Penerima-master perlu memberi sinyal pengakhiran transfer data ke penerima-slave. Penjelasan di atas adalah sekilas mengenai protokol sinyal yang diambil dari spesifikasi I2C. Bagaimana untuk pengalamatan pada perankat-perangkat yang terhubung dalam jalur I2C? Pengalamatan dalam I2C bisa 7 bit atau 10 bit. Pengalamatan 10 bit jarang digunakan. Semua perangkat (uC dan modul-modul) yang terhubung ke dalam jalur I2C yang sama dapat dialamati sebanyak 7 bit. Ini
Proposal Proyek Akhir
berarti sebuah jalur I2C dengan pengalamatan 7 bit dapat menampung 128 (2^7) perangkat. Saat mengirimkan data alamat (yang 7 bit itu), kita tetap mengirim data 1 byte (8 bit). 1 bit lagi digunakan untuk menginformasikan perangkat slave apakah master menulis (write) data ke slave atau membaca (read) data dari slave. Jika bit tersebut 0, maka master menulis data ke slave. Jika bit tersebut 1, maka master membaca data dari slave. Bit ini (untuk infomasi tulis/baca) merupakan LSB, sedangkan sisanya adalah data alamat 7 bit. Berikut adalah contoh sinyal yang dimulai dengan data alamat lalu data yang ingin ditransfer ke alamat tersebut:
Gambar 5. Sinyal alamat dan data (sumber: UM10204 I2C-bus specification and user manual) Sebaiknya saat mengalamati perangkat-perangkat dalam I2C anggap saja menggunakan 8-bit. Jika menggunakan 7 bit justru akan membingungkan. Misal diberikan alamat 0×14 (dalam penghitungan 7 bit), maka untuk menulis ke alamat 0×14 kita harus memberikan byte 0×28 dengan menggesernya 1 bit (bit 0 pada LSB berarti menulis). Contoh yang memudahkan adalah CMPS03 yang memiliki alamat 0xC0 (perhitugan 8 bit). Untuk menulis ke CMPS03 kita menggunakan 0xC0 dan untuk membaca dari CMPS03 kita menggunakan 0xC1. Saya rasa penjelasan di atas sudah dapat (sedikit) merepresentasikan protokol fisikal I2C. Bagaimana dari perangkat lunak (software) untuk mengimplementasikan protokol I2C di atas? Saya akan mengambil contoh dari rutin Peter Fleury dan dari rutin I2C CodeVisionAVR (yang menggunakan bahasa C). Hal yang pertama kali terjadi dalam komunikasi ini adalah server mengirimkan sinyal START (lihat gambar 2). Ini akan menginformasikan perangkat-perangkat slave yang terhubung dalam jalur I2C bahwa akan ada transfer data yang ingin dilakukan oleh master dan para slave harus siap memantau siapa yang akan dipanggil alamatnya. Selanjutnya master akan mengirimkan data berupa alamat slave yang ingin diakses. Perangkat slave yang sesuai dengan alamat yang diberikan master akan meneruskan transaksi data, slave lainnya dapat mengacuhkan transaksi tersebut dan menunggu sampai sinyal
Proposal Proyek Akhir
berikutnya. Setelah mendapatkan slave dengan alamat tersebut, saatnya master memberitahukan alamat internal atau nomor register yang ingin ditulis atau dibaca dari slave tersebut. Jumlah lokasi atau nomor register tersebut tergantung pada perangkat slave yang diakses. Ada beberapa yang memiliki dan ada beberapa yang tidak. Misal CMPS03, modul ini memiliki 16 lokasi dengan penomoran 015. Contoh lain adalah SFR08 (modul sensor ultrasonic) dengan 36 register internal yang bisa diakses. Setelah mengirim data berupa alamat slave dan kemudian data alamat internal register slave yang ingin diakses, kini saatnya master mengirim byte data. Master dapat melanjutkan mengirim byte data ke slave dan byte-byte akan ditampung di register setelahnya karena slave secara otomatis akan menaikkan alamat internal register setelah setiap byte. Ketika master selesai menulis semua data ke slave, master akan mengirim sinyal STOP untuk mengakhiri transaksi data. Jadi untuk menulis ke slave langkahnya adalah: 1. Mengirim sinyal START 2. Mengirim alamat slave serta operasi yang akan dilakukan (LSB) 3. Mengirim nomor internal register yang ditulis 4. Mengirim byte data 5. Mengirim sinyal STOP Misalkan kita memiliki SFR08 dengan alamat default dari pabrik 0xE0. Untuk mulai memancarkan gelombang ultrasonic SFR08 kita harus menulis data 0×51ke register command di alamat 0×00, seperti: 1. Mengirim sinyal START 2. Mengirim data 0xE0 (alamat I2C dari SFR08 dengan operasi tulis) 3. Mengirim data 0×00 (Alamat internal dari register command) 4. Mengirim data 0×51 (Perintah untuk mulai memancarkan) 5. Mengirim sinyal STOP Bagaimana untuk membaca? Ini agak sedikit ribet. Sebelum membaca data dari slave, master harus memberitahu alamat internal mana yang ingin dibaca. Jadi operasi baca dari slave sebenarnya dimulai dulu dengan operasi tulis. Ini sama seperti operasi tulis. Master mengirim sinyal START, alamat I2C slave dengan LSB utk operasi tulis/baca dan nomor internal register yang ingin ditulis. Setelah itu master mengirim sinyal START lagi (terkadang disebut ‘restart’) dan alamat I2C slave lagi - tapi kali ini set LSB ke 1 untuk operasi baca. Lalu master dapat mulai membaca banyak byte data yang diinginkan dan menyudahi transaksi
Proposal Proyek Akhir
dengan mengirimkan sinyal STOP. Misal untuk membaca data byte arah mata angin dari modul CMPS03: 1. Mengirim sinyal START 2. Mengirim data 0xC0 (alamat I2C dari CMPS03 dengan LSB 0 untuk operasi tulis) 3. Mengirim data 0×01 (alamat internal dari register untuk baca byte kompas) 4. Mengirim sinyal START lagi 5. Mengirim data 0xC1 (alamat I2C dari CMPS03 dengan LSB 1 untuk operasi baca) 6. Membaca byte data dari CMPS03 7. Mengirim sinyal STOP Rentetan bit untuk pembacaan CMPS03 kurang lebih seperti gambar di bawah ini:
Gambar 6. Pembacaan byte dari CMPS03 (sumber: http://www.robotelectronics.co.uk/images/i2c.GIF) Sejauh ini contoh di atas adalah komunikasi I2C secara sederhana, ada satu yang cukup ribet. Saat master membaca data dari slave, maka slave lah yang mengirimkan bit-bit di jalur SDA, tapi tetap master yang mengontrol pulsa clock di jalur SCL. Bagaimana jika slave belum siap mengirimkan data? Dengan perangkat semacam EEPROM, hal ini bukan masalah, tapi jika perangkat slave adalah microprocessor atau microcontroller yang juga mengeksekusi instruksi lainnya hal ini bisa menjadi masalah. uC yang merupakan perangkat slave perlu mengeksekusi rutin interrupt, menyimpan register kerja saat itu, mencari tahu alamat yang diminta master untuk dibaca, ambil data dari alamat tersebut dan memberikannya ke register pengirim. Hal ini membutuhkan beberapa uS untuk dapat terjadi, sementara master memberikan pulsa clock di jalur SCL yang mana slave belum bisa merepson. Protokol I2C menyediakan solusi untuk ini: Slave diperbolehkan untuk membuat jalur SCL LOW. Hal ini disebut dengan clock stretching. Ketika slave mendapatkan perintah baca dari master, slave dapat
Proposal Proyek Akhir
membuat jalur SCL LOW. Slave uC lalu mendapatkan data yang diminta, memberikannya ke register pengirim dan membiarkan kembali jalur SCL agar pull-up resistor kembali membuatnya HIGH. Dari sisi master, jalur SCL akan diberi sinyal HIGH lalu akan dibaca apakah jalur tersebut benar-benar HIGH. Jika masih dalam kondisi LOW maka itu adalah ulah slave dan master harus menunggu sampai kondisi HIGH kembali. Untungnya perangkat keras pada kebanyakan port I2C uC dapat menangani hal ini secara otomatis. Sumber: http://gedex.web.id/archives/2008/05/17/menggunakan-jalur-i2c/?cp=all diambil pada tanggal 30 – 06 – 2010.