DT-SENSE Gas Sensor
Trademarks & Copyright AT, IBM, and PC are trademarks of International Business Machines Corp. Windows is a registered trademark of Microsoft Corporation. Pentium is a trademark of Intel Corporation. CodeVisionAVR is copyright by Pavel Haiduc, HP InfoTech s.r.l. BASCOM-51 and BASCOM-AVR are copyright by MCS Electronics. I2C is a registered trademark of Philips Semiconductors. DT-51 is a trademark of Innovative Electronics.
Daftar Isi 1
Pendahuluan............................................................................................. 1.1 Spesifikasi.................................................................................................... 1.2 Sistem yang Dianjurkan............................................................................
3 3 3
2
Perangkat Keras....................................................................................... 2.1 Tata Letak Komponen............................................................................... 2.2 Konektor dan Pengaturan Jumper..........................................................
4 4 4
3
LED Indikator dan Fungsi Monitor............................................................
6
4
Perangkat Lunak....................................................................................... 4.1 Antarmuka UART TTL................................................................................. 4.2 Antarmuka I2C............................................................................................. 4.3 Command Set.............................................................................................. 4.3.1 Read Sensor................................................................................................ 4.3.2 Read VR....................................................................................................... 4.3.3 Read Upper Threshold.............................................................................. 4.3.4 Set Upper Threshold.................................................................................. 4.3.5 Read Lower Threshold............................................................................... 4.3.6 Set Lower Threshold................................................................................... 4.3.7 Read Mode.................................................................................................. 4.3.8 Set Mode..................................................................................................... 4.3.9 Read Output Delay................................................................................... 4.3.10 Set Output Delay....................................................................................... 4.3.11 Read Heater Setting.................................................................................. 4.3.12 Set Heater................................................................................................... 4.3.13 Set I2C Address........................................................................................... 4.3.14 Read I2C Address.......................................................................................
8 8 8 10 10 10 11 11 12 13 13 14 14 15 16 16 17 18
5
Prosedur Pengujian..................................................................................
18
6
Contoh Aplikasi dan Program..................................................................
18
Lampiran A.
Skematik DT-SENSE GAS SENSOR.........................................................
2
20
1.
PENDAHULUAN DT-SENSE GAS SENSOR merupakan sebuah modul sensor cerdas yang mampu memonitor perubahan konsentrasi gas LPG, iso-butana, propana, karbon monoksida (CO), karbon dioksida (CO2), metana (CH4), Alkohol, atau kualitas udara (tergantung dari sensor yang digunakan). Modul ini kompatibel dengan sensor gas MQ-3 (alkohol), MQ-4 (metana), MQ-6 (LPG, iso-butana, dan propana), MQ-7 (CO), MQ-135 (kualitas udara), dan MG-811 (CO 2). Selain itu, modul sensor cerdas ini dapat berfungsi sebagai kendali konsentrasi gas mandiri secara ON/OFF mengikuti setpoint yang kita tentukan. Modul sensor ini dilengkapi dengan antarmuka UART TTL dan I2C.
1.1.
SPESIFIKASI Spesifikasi DT-SENSE GAS SENSOR sebagai berikut: • Sumber catu daya menggunakan tegangan 5 Volt. • Kompatibel dengan sensor gas MQ-3, MQ-4, MQ-6, MQ-7, MQ-135, dan MG-811 • Menggunakan ADC dengan resolusi 10 bit. • Tersedia 1 jalur output kendali ON/OFF. • Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS. • Dilengkapi dengan antarmuka UART TTL dan I2C. • Jika menggunakan I2C, DT-SENSE GAS SENSOR dapat di-cascade hingga 8 modul.
1.2.
SISTEM YANG DIANJURKAN Sistem yang dianjurkan untuk penggunaan DT-SENSE GAS SENSOR adalah: Perangkat keras: • PC™ AT™ Pentium® IBM™ Compatible. • DT-51 Minimum System, DT-51 Low Cost Series, atau DT-AVR Low Cost Series. • DVD-ROM Drive dan Hard disk. Perangkat lunak: • Sistem operasi Windows® XP. • BASCOM-8051©, BASCOM-AVR©, atau CodeVisionAVR©. • File-file yang ada pada pada CD/DVD program: DATASHEET, CONTOH_I2C.C, CONTOH_I2C.HEX, CONTOH_UART.C, CONTOH_UART.HEX, dan MANUAL DT-SENSE GAS SENSOR.
3
2.
PERANGKAT KERAS
2.1.
TATA LETAK KOMPONEN
2.2.
KONEKTOR DAN PENGATURAN JUMPER Konektor INTERFACE (J3) berfungsi sebagai konektor untuk catu daya modul, antarmuka UART TTL, dan antarmuka I2C. Pin
Nama
Fungsi
1
GND
Titik referensi untuk catu daya input
2
VCC
Terhubung ke catu daya (5 Volt)
3
RX TTL
Input serial level TTL ke modul DT-SENSE
4
TX TTL
Output serial level TTL dari modul DT-SENSE
5
SDA
I2C-bus data input / output
6
SCL
I2C-bus clock input
Jumper SCL SDA (J1) berfungsi untuk mengaktifkan resistor pull-up untuk pin SDA dan SCL pada antarmuka I2C. Jumper SCL SDA (J1)
Fungsi Pull-up tidak aktif (jumper terlepas) Pull-up aktif (jumper terpasang)
Penting ! Apabila lebih dari satu modul dihubungkan pada I2C-bus maka jumper J1 (SCL/SDA) salah satu modul saja yang perlu dipasang. 4
Jumper RLOAD (J7) berfungsi untuk memilih resistor beban yang akan digunakan pada rangkaian pengkondisi sinyal modul DT-Sense. Oleh karena modul ini dapat digunakan untuk lebih dari 1 macam sensor dan karakteristik tiap sensor berbeda-beda. Jumper RLOAD (J7) 2
4
6 8
2
4
6 8
2
4
6 8
Nilai Resistor Beban dan Rekomendasi Sensor Nilai Resistor 2K2 Ohm Sensor MQ-4 dan MQ-135
1
Nilai Resistor 3K3 Ohm Sensor MQ-3 dan MQ-7
1
Nilai Resistor 5K1 Ohm Sensor MQ-6
1 2
4
6 8 Nilai Resistor 100K Ohm Sensor MG-811
1
Soket SR-5 (J4) sebagai konektor untuk sensor gas yang digunakan. Pin
Nama
Koneksi
1
A
Terhubung dengan tegangan catu daya 5 Volt
2
H
Terhubung dengan tegangan catu daya 5 Volt
3
A
Terhubung dengan tegangan catu daya 5 Volt
4
B
Terhubung dengan rangkaian pengkondisi sinyal
5
H
Terhubung dengan rangkaian pengendali heater
6
B
Terhubung dengan rangkaian pengkondisi sinyal
Konektor OUTPUT (J5) sebagai konektor untuk output open collector. Pin
Nama
Fungsi
1
GND
Terhubung dengan titik referensi catu daya
2
VCC
Terhubung dengan tegangan catu daya 5 Volt
3
OC-OUT
Pin output kendali ON/OFF bersifat Open Collector
5
Jumper T.HOLD SELECT (J6) berfungsi untuk memilih sumber nilai batas yang digunakan (dari variabel resistor T.HOLD ADJUST atau dari EEPROM modul) untuk kendali ON/OFF.
3.
Jumper T.HOLD SELECT (J6)
Sumber Nilai Batas
(Jumper J6 terpasang)
Nilai batas menggunakan variabel resistor (R10) pada modul DT-Sense
(Jumper J6 dilepas)
Nilai batas menggunakan nilai yang tersimpan pada EEPROM modul DT-Sense
LED INDIKATOR DAN FUNGSI MONITOR Pada modul DT-SENSE GAS SENSOR terdapat 2 buah LED indikator yaitu LED indikator merah dan LED indikator hijau. Pada saat power-up, LED merah akan berkedip sesuai dengan alamat I2C modul. Jika alamat I2C adalah 0xE0 maka LED indikator akan berkedip 1 kali. Jika alamat I2C adalah 0xE2 maka LED indikator akan berkedip 2 kali. Jika alamat I2C adalah 0xE4 maka LED indikator akan berkedip 3 kali dan demikian seterusnya sampai alamat I2C 0xEE maka LED indikator akan berkedip 8 kali. Pada saat power-up, LED hijau akan berkedip dengan cepat sampai kondisi pemanasan sensor dan hasil pembacaan sensor sudah stabil. Waktu yang diperlukan untuk mencapai kondisi stabil berbeda-beda untuk tiap sensor yang digunakan tergantung pada kecepatan respon sensor dan kondisi heater pada sensor. Jika kondisi stabil sudah tercapai, maka LED hijau akan menyala tanpa berkedip. Pada kondisi operasi normal (setelah kondisi power-up), LED merah akan menyala atau padam sesuai dengan hasil pembacaan sensor dan mode operasi yang dipilih. Sedangkan selama hasil pembacaan sensor stabil, LED hijau akan tetap menyala dan hanya berkedip pelan (tiap 1 detik) jika ada perubahan konsentrasi gas. Modul DT-SENSE GAS SENSOR juga memiliki 1 pin output open collector yang status logikanya akan berubah-ubah, sesuai dengan hasil pembacaan sensor gas dan batas atas serta batas bawah yang telah ditentukan. Pin output ini dapat dihubungkan dengan aktuator (exhaust atau alarm) sehingga modul DTSENSE ini dapat berfungsi sebagai pemonitor konsentrasi gas secara mandiri. Modul DT-SENSE akan membaca nilai konsentrasi gas secara otomatis, membandingkan dengan batas-batas nilai yang telah diatur dan kemudian mengubah status logika pin output kendali ON/OFF sesuai dengan mode operasi yang digunakan. Ada 2 mode operasi yang dapat tersedia, yaitu mode operasi Hysterisis dan mode operasi Window. Pada mode operasi Hysterisis : 1. Jika nilai sensor hasil konversi ADC lebih kecil daripada batas bawah, maka pin output akan Off (Transistor Open Collector berada pada keadaan Cut-off dan LED indikator merah tidak menyala). 6
2. Jika nilai sensor hasil konversi ADC lebih besar daripada batas atas, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala). 3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan batas bawah, maka logika pin output tidak berubah (jika sebelumnya Off, maka akan tetap Off atau jika sebelumnya On akan tetap On). Pada mode operasi Window : 1. Jika nilai sensor hasil konversi ADC lebih kecil daripada batas bawah, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala). 2. Jika nilai sensor hasil konversi ADC lebih besar daripada batas atas, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala). 3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan batas bawah, maka logika pin output akan Off (Transistor Open Collector berada pada keadaan Cut-off dan LED indikator merah tidak menyala). Jika sumber nilai batas yang dipilih adalah menggunakan variabel resistor pada modul DT-SENSE GAS SENSOR (untuk pemilihan sumber nilai batas dapat dilihat pada bagian 2), maka mode operasi yang bisa berlaku hanya mode operasi Hysterisis. Nilai variabel resistor akan digunakan sebagai nilai batas atas. Sedangkan nilai batas bawah akan selalu bernilai 50 poin di bawah nilai batas atas. Jika sumber nilai batas yang dipilih adalah menggunakan nilai yang tersimpan pada EEPROM modul DT-SENSE GAS SENSOR, maka mode operasi yang bisa berlaku adalah mode operasi Hysterisis dan mode operasi Window. Nilai batas atas, nilai batas bawah, dan mode operasi, dapat diatur melalui antarmuka UART TTL atau I2C dengan menggunakan perintah-perintah yang akan dibahas pada bagian 4. Berikut ini ilustrasi cara kerja kendali ON/OFF menggunakan modul DT-SENSE GAS SENSOR dengan nilai batas atas sebesar 450 dan nilai batas bawah sebesar 350.
7
Kendali ON/OFF
Batas Atas
600
Nilai Konsentrasi Gas
550 500 450 400 350 300
Nilai hasil pembacaan sensor
250 200
Batas Bawah
150 100 50 0 0
4
8
12
16
20
Waktu (detik)
Off Mode Operasi Hysterisis
On
Off Mode Operasi Window
On
0
4
8
12
16
20
4.
PERANGKAT LUNAK DT-SENSE GAS SENSOR memiliki antarmuka UART TTL dan I 2C yang dapat digunakan untuk menerima perintah atau mengirim data.
4.1.
ANTARMUKA UART TTL Parameter komunikasi UART TTL adalah sebagai berikut: • 38400 bps • Tanpa bit parity • 8 bit data • Tanpa flow control • 1 bit stop Semua perintah yang dikirim melalui antarmuka UART TTL dimulai dengan mengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) 1byte data parameter perintah. Perintah dan parameternya yang bisa digunakan dapat dilihat pada bagian 4.3. Jika perintah yang telah dikirimkan merupakan perintah yang meminta data dari modul DT-SENSE GAS SENSOR, maka DT-SENSE GAS SENSOR akan mengirimkan data melalui jalur TX TTL.
4.2.
ANTARMUKA I2C Modul DT-SENSE GAS SENSOR memiliki antarmuka I2C. Pada antarmuka I2C ini, modul DT-SENSE GAS SENSOR bertindak sebagai slave dengan alamat 8
sesuai dengan telah ditentukan sebelumnya. Alamat default DT-SENSE adalah 0xE0 dan dapat diganti menggunakan salah satu perintah yang dijelaskan pada bagian 4.3 menggunakan jalur komunikasi UART. Antarmuka I2C pada modul DT-SENSE GAS SENSOR mendukung bit rate sampai dengan maksimum 100 kHz. Semua perintah yang dikirim melalui antarmuka I 2C diawali dengan start condition dan kemudian diikuti dengan pengiriman 1 byte alamat modul DTSENSE GAS SENSOR. Setelah pengiriman alamat, selanjutnya master harus mengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) 1byte data parameter perintah. Selanjutnya, setelah seluruh parameter perintah telah dikirim, urutan perintah diakhiri dengan stop condition. Berikut urutan yang harus dilakukan untuk mengirimkan perintah melalui antarmuka I2C. Start
+
1
1
1
0
X
X
X
0
+
X
X
X
Alamat Tulis X
X
X
X
X
X
X
X
+
Command X
X
X
X
X
X
X
X
X
X
+
Parameter 1 (jika ada) X
X
X
+
Stop
Parameter 2 (jika ada) Jika perintah yang telah dikirimkan merupakan perintah yang meminta data dari modul DT-SENSE GAS SENSOR, maka data-data tersebut dapat dibaca dengan mengunakan urutan perintah baca. Berikut urutan yang harus dilakukan untuk membaca data dari DT-SENSE GAS SENSOR: Start
+
1
1
1
0
X
X
X
1
+
X
X
X
Alamat Baca X
X
X
X
X
X
X
X
+
Data 1 (jika ada)
X
X
X
X
X
+
Data 2 (jika ada)
Stop Sebuah data/parameter yang memiliki range lebih besar dari 255 desimal (lebih besar dari 1 byte) dikirim secara dua tahap. Satu byte data MSB dikirim lebih dahulu kemudian diikuti dengan data LSB. Misalnya parameter
yang memiliki range 0 – 1023. Jika bernilai 1000 maka byte MSB yang dikirim adalah 3 dan byte LSB yang dikirim adalah 232 (0xE8). Perintah dan parameternya yang bisa digunakan dapat dilihat pada bagian 4.3. 9
4.3.
COMMAND SET Berikut ini daftar lengkap perintah-perintah dalam antarmuka UART dan I2C.
4.3.1. READ SENSOR Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Baca nilai sensor 0x41 0 – 1023 data hasil konversi ADC 10 µs -
Contoh dengan antarmuka UART untuk memperoleh nilai hasil pembacaan sensor: User : 0x41 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x41); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Sensor” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); temp1 = i2c_read(1); temp2 = i2c_read(0); i2c_stop();
// // // // //
Start Condition Baca ke modul DT-SENSE Data Sensor MSB Data Sensor LSB Stop Condition
Sensor = (temp1 x 256) + temp2 4.3.2. READ VR Fungsi Perintah Parameter Respon
Baca nilai resistor variabel 0x42 0 – 1023 data hasil konversi ADC 10 µs
Delay antara Command dan Respon Keterangan -
Contoh dengan antarmuka UART untuk memperoleh nilai hasil pengaturan resistor variabel: User : 0x42 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0);
// Start Condition // Tulis ke modul DT-SENSE
10
i2c_write(0x42); i2c_stop();
// Perintah “Read VR” // Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); temp1 = i2c_read(1); temp2 = i2c_read(0); i2c_stop();
// // // // //
Start Condition Baca ke modul DT-SENSE Data VR MSB Data VR LSB Stop Condition
NilaiVR = (temp1 x 256) + temp2 4.3.3. READ UPPER THRESHOLD Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Baca nilai batas atas 0x43 0 – 1023 pengaturan batas atas 10 µs -
Contoh dengan antarmuka UART untuk membaca data batas atas yang telah tersimpan di EEPROM: User : 0x43 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x43); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Upper Threshold” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); temp1 = i2c_read(1); temp2 = i2c_read(0); i2c_stop();
// // // // //
Start Condition Baca ke modul DT-SENSE Data Batas Atas MSB Data Batas Atas LSB Stop Condition
BatasAtas = (temp1 x 256) + temp2 4.3.4. SET UPPER THRESHOLD Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Atur nilai batas atas 0x44 0 – 1023 pengaturan batas atas Agar nilai batas atas dianggap valid dan tersimpan ke EEPROM, maka nilai batas atas harus lebih besar dari nilai batas bawah. 11
Contoh dengan antarmuka UART untuk mengatur agar batas atas bernilai 450 (0x01C2): User : 0x44 0x01 0xC2 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x44); i2c_write(0x01); i2c_write(0xC2); i2c_stop();
// // // // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Set Upper Threshold” Data Batas Atas MSB Data Batas Atas LSB Stop Condition
4.3.5. READ LOWER THRESHOLD Fungsi Perintah Parameter Respon
Baca nilai batas bawah 0x45 0 – 1023 pengaturan batas bawah 10 µs
Delay antara Command dan Respon Keterangan -
Contoh dengan antarmuka UART untuk membaca data batas bawah yang telah tersimpan di EEPROM: User : 0x45 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x45); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Lower Threshold” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); temp1 = i2c_read(1); temp2 = i2c_read(0); i2c_stop();
// // // // //
Start Condition Baca ke modul DT-SENSE Data Batas Bawah MSB Data Batas Bawah LSB Stop Condition
BatasBawah = (temp1 x 256) + temp2
12
4.3.6. SET LOWER THRESHOLD Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Atur nilai batas bawah 0x46 0 – 1023 pengaturan batas bawah Agar nilai batas atas dianggap valid dan tersimpan ke EEPROM, maka nilai batas bawah harus lebih kecil dari nilai batas atas.
Contoh dengan antarmuka UART untuk mengatur agar batas bawah bernilai 350 (0x015E): User : 0x46 0x01 0x5E DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x46); i2c_write(0x01); i2c_write(0x5E); i2c_stop();
// // // // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Set Lower Threshold” Data Batas Bawah MSB Data Batas Bawah LSB Stop Condition
4.3.7. READ MODE Fungsi Perintah Parameter Respon
Baca mode operasi 0x47 <Mode> 1 Mode Operasi Hysterisis 2 Mode Operasi Window 10 µs
Delay antara Command dan Respon Keterangan -
Contoh dengan antarmuka UART untuk membaca mode operasi yang telah tersimpan di EEPROM: User : 0x47 DT-SENSE : <Mode> Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x47); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Mode” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); mode = i2c_read(0);
// Start Condition // Baca ke modul DT-SENSE // Data Mode Operasi
13
i2c_stop();
// Stop Condition
4.3.8. SET MODE Fungsi Perintah Parameter
Atur mode operasi 0x48 <Mode> 1 Mode Operasi Hysterisis 2 Mode Operasi Window -
Respon Delay antara Command dan Respon Keterangan -
Contoh dengan antarmuka UART untuk mengatur mode operasi ke mode Hysterisis: User : 0x48 0x01 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x48); i2c_write(0x01); i2c_stop();
// // // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Set Mode” Mode Hysterisis Stop Condition
4.3.9. READ OUTPUT DELAY Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Baca waktu tunda output 0x49 <delayOut> 1 – 255 Besarnya waktu tunda output 10 µs ●
●
Waktu tunda ini berfungsi untuk membatasi seberapa cepat pin output boleh berubah dari ON menjadi OFF atau sebaliknya. Berguna bila peralatan yang kendalikan oleh pin output tidak boleh dinyalakan dan dimatikan dengan cepat untuk mencegah rusaknya peralatan tersebut. Tiap kenaikan 1 angka lebih kurang setara dengan waktu 1 detik. Jadi waktu tunda maksimum sekitar 255 detik.
Contoh dengan antarmuka UART untuk membaca waktu tunda output yang telah tersimpan di EEPROM: User : 0x49 DT-SENSE : <delayOut> Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): 14
i2c_start(); i2c_write(0xE0); i2c_write(0x49); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Output Delay” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); delayOut = i2c_read(0); i2c_stop();
// // // //
Start Condition Baca ke modul DT-SENSE Data Waktu Tunda Output Stop Condition
4.3.10. SET OUTPUT DELAY Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Atur waktu tunda output 0x50 <delayOut> 1 – 255 Besarnya waktu tunda output ●
●
Waktu tunda ini berfungsi untuk membatasi seberapa cepat pin output boleh berubah dari ON menjadi OFF atau sebaliknya. Berguna bila peralatan yang kendalikan oleh pin output tidak boleh dinyalakan dan dimatikan dengan cepat untuk mencegah rusaknya peralatan tersebut. Tiap kenaikan 1 angka lebih kurang setara dengan waktu 1 detik. Jadi waktu tunda maksimum sekitar 255 detik.
Contoh dengan antarmuka UART untuk mengatur waktu tunda output sekitar 5 detik: User : 0x50 0x05 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x50); i2c_write(0x05); i2c_stop();
// // // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Set Output Delay” Data Waktu Tunda Output Stop Condition
15
4.3.11. READ HEATER SETTING Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Baca pengaturan heater 0x51 1 – 255 Besarnya pengaturan heater 10 µs ●
●
Nilai 1 berarti heater pada sensor dimatikan. Sedangkan nilai 255 berarti heater dinyalakan maksimal. Makin panas heater, secara umum memungkinkan respon sensor yang lebih cepat, tetapi lebih boros daya.
Contoh dengan antarmuka UART untuk membaca pengaturan heater yang telah tersimpan di EEPROM: User : 0x51 DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x51); i2c_stop();
// // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Read Heater Setting” Stop Condition
delay_us(10);
// delay 10 us
i2c_start(); i2c_write(0xE1); heater = i2c_read(0); i2c_stop();
// // // //
Start Condition Baca ke modul DT-SENSE Data Pengaturan Heater Stop Condition
4.3.12. SET HEATER Fungsi Perintah Parameter Respon Delay antara Command dan Respon Keterangan
Atur heater 0x52 1 – 255 Besarnya pengaturan heater ●
●
Nilai 1 berarti heater pada sensor dimatikan. Sedangkan nilai 255 berarti heater dinyalakan maksimal. Makin panas heater, secara umum memungkinkan respon sensor yang lebih cepat, tetapi lebih boros daya.
Contoh dengan antarmuka UART untuk menyalakan heater secara maksimal: User : 0x52 0xFF DT-SENSE : Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): 16
i2c_start(); i2c_write(0xE0); i2c_write(0x52); i2c_write(0xFF); i2c_stop();
// // // // //
Start Condition Tulis ke modul DT-SENSE Perintah “Set Heater” Data Pengaturan Heater Stop Condition
4.3.13. SET I2C ADDRESS Fungsi Perintah Parameter Respon Keterangan
Mengubah alamat I2C 0x53 <0xAA> <0x55> ● Perintah ini hanya dapat dilakukan dengan menggunakan jalur komunikasi UART. 2 ● Modul DT-SENSE akan menggunakan alamat I C yang baru setelah melalui siklus power off. 2 ● Alamat I C yang diperbolehkan dapat dilihat pada tabel berikutnya. ● Jika alamat baru yang diberikan tidak sesuai, maka alamat I2C tidak akan diubah (tetap alamat sebelumnya). 2 ● Alamat I C default adalah 0xE0. 2 ● Data alamat I C disimpan di EEPROM sehingga tidak akan hilang saat power off. Alamat I2C Alamat Tulis I2C Alamat Baca I2C 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF
Contoh dengan antarmuka UART untuk mengganti alamat I 2C dari 0xE0 menjadi 0xE2: User
:
0x53 0xAA 0x55 0xE2
17
4.3.14. READ I2C ADDRESS Fungsi Perintah Parameter Respon Keterangan
Membaca alamat I2C sekarang 0x54 ● Perintah ini hanya dapat dilakukan dengan menggunakan jalur komunikasi UART. 2 ● Alamat I C modul DT-SENSE juga dapat diketahui melalui jumlah kedip LED indikator warna merah saat modul DTSENSE baru power on. 2 ● Jika alamat I C adalah 0xE0 maka LED indikator merah akan berkedip 1 kali. Jika alamat I2C adalah 0xE2 maka LED indikator merah akan berkedip 2 kali. Jika alamat I2C adalah 0xE4 maka LED indikator merah akan berkedip 3 kali dan demikian seterusnya sampai alamat I2C 0xEE maka LED indikator merah akan berkedip 8 kali.
Contoh dengan antarmuka UART: User Modul SPC
: :
0x54
5.
PROSEDUR PENGUJIAN 1. Hubungkan sensor yang akan digunakan ke soket SR-5 (J4) modul DTSENSE GAS SENSOR. Sesuaikan pengaturan jumper RLOAD (J7) dengan sensor yang digunakan. 2. Hubungkan catu daya 5 Volt ke konektor INTERFACE (J3) pin 1 dan 2. 3. Jika modul DT-SENSE GAS SENSOR berhasil melakukan power-up reset dengan baik, maka LED merah akan berkedip minimal 1 kali dan kemudian LED hijau akan berkedip dengan cepat. 4. Kirimkan perintah “Read Sensor” melalui antarmuka UART TTL. 5. Modul DT-SENSE GAS SENSOR akan mengambil data sensor dan mengirimkan hasilnya melalui antarmuka UART TTL.
6.
CONTOH APLIKASI DAN PROGRAM Sebagai contoh aplikasi, misalkan 1 buah modul DT-SENSE GAS SENSOR digunakan untuk memantau konsentrasi gas LPG dengan antarmuka I 2C dan UART. DT-AVR Low Cost Micro System (LCMS) berfungsi sebagai master yang bertugas mengirimkan perintah pembacaan dan menampilkan ke LCD. Berikut koneksi antara modul-modul yang digunakan: DT-SENSE GAS SENSOR
DT-AVR LCMS
GND (J3 Pin 1)
GND (J13 Pin 1)
VCC (J3 Pin 2)
VCC (J13 Pin 2)
RX TTL (J3 Pin 3)
PORTD.1 (J13 Pin 4)
TX TTL (J3 Pin 4)
PORTD.0 (J13 Pin 3)
SDA (J3 Pin 5)
PORTD.2 (J13 Pin 5)
SCL (J3 Pin 6)
PORTD.3 (J13 Pin 6) 18
LCD KARAKTER
DT-AVR LCMS
GND (Pin 1)
GND (J12 Pin 1)
VCC (Pin 2)
VCC (J12 Pin 2)
RS (Pin 4)
PORTC.0 (J12 Pin 3)
RD (Pin 5)
PORTC.1 (J12 Pin 4)
EN (Pin 6)
PORTC.2 (J12 Pin 5)
DB4 (Pin 11)
PORTC.4 (J12 Pin 7)
DB5 (Pin 12)
PORTC.5 (J12 Pin 8)
DB6 (Pin 13)
PORTC.6 (J12 Pin 9)
DB7 (Pin 14)
PORTC.7 (J12 Pin 10)
SCL SDA
RXD
DT-SENSE GAS SENSOR (alamat = 0xE0)
MQ-06
DT-AVR LCMS
LCD
TXD
RXD (PORTD.0) TXD (PORTD.1)
PORT C
SDA (PORTD.2) SCL (PORTD.3) Sebagai contoh program untuk aplikasi di atas, pada CD/DVD yang disertakan pada saat pembelian DT-SENSE GAS SENSOR terdapat program contoh_i2c.c dan contoh_uart.c yang ditulis dengan menggunakan CodeVisionAVR 2.03.9 versi evaluasi. Pada program tersebut, DT-AVR LCMS akan mengirimkan perintah Read Sensor ke DT-SENSE (alamat 0xE0 untuk contoh dengan antarmuka I 2C). Setelah data sensor diperoleh, maka DT-AVR LCMS akan menampilkan data tersebut di LCD. ♦ Terima Kasih atas kepercayaan Anda menggunakan produk kami. Bila ada kesulitan, pertanyaan, atau saran mengenai produk ini silahkan menghubungi technical support kami : [email protected] 19
LAMPIRAN A. Skematik DT-SENSE GAS SENSOR
20