Sabtu, 07 April 2012

Sensor dan Pengkonversi Data






Pendahuluan
Pengkonversi data pada elektronika ialah suatu devais yang mengubah besaran sinyal dari analog ke digital atau sebaliknya.  Umumnya sinyal analog berasal dari suatu sensor, sinyal dc/ac lemah yang biasanya diperkuat oleh OP-AMP dan dirubah menjadi sinyal digital oleh perangkat pengkonversi data (ADC), atau sinyal digital yang umumnya sekitar 8-32 bit yang dirubah menjadi sinyal analog (DAC) untuk tujuan tertentu.  Misalnya pemutar musik MP4 kualitas istimewa yang mengeluarkan sinyal analog ke speaker dengan kualitas stereo surround.

Sedangkan sensor ialah devais yang berfungsi sebagai pengukur suatu keadaan, misal pengukur temperatur, kelembaban, jarak, kualitas udara dan sebagainya.  80% aplikasi berbasis mikrokontroler menggunakan sensor sebagai sumber data untuk melakukan aksi.  Misal, suatu robot akan berhenti atau berbelok arah jika pada sensor jarak mendeteksi adanya penghalang, atau robot yang berusaha mencari sumber api untuk dipadamkan.

Sensor temperatur
LM 35/34
LM 35 ialah sensor temperatur paling banyak digunakan untuk praktek, karena selain harganya cukup murah, linearitasnya lumayan bagus.  LM35 tidak membutuhkan kalibrasi eksternal yang menyediakan akurasi  ±¼°C  pada temperatur  ruangan dan ±¾°C pada  kisaran  -55 to +150°C.  LM35  dimaksudkan untuk beroperasi pada -55° hingga +150°C, sedangkan  LM35C pada  -40°C hingga +110°C, dan LM35D pada kisran 0-100°C. LM35D juga tersedia pada paket 8 kaki  dan paket  TO-220. Sensor LM35 umunya akan naik sebesar 10mV setiap kenaikan 1°C (300mV pada 30 °C).
            Gambar 10.1   Bentuk Fisik LM 35

Untuk menggunakan LM35, Anda cukup menyadap keluaran dari pin Vout untuk dapat dihubungkan langsung ke ADC(misal ADC 0804 8 bit)  seperti gambar berikut.

   Gambar 10.2  Rangkaian umum pengukur suhu

Jika anda ingin standar pengukuran dalam Fahrenheit, maka dapat menggunakan sensor bertipe LM34A yang mempunyai kisaran pengukuran dari -50F hingga 300F dengan akurasi +2.0F. Skala outputnya juga sama yaitu 10mV/F.
Berikut contoh sensor suhu menggunakan PPI 8255,ADC 0804 dengan mode free running  dan output Vout dihubungkan ke pin 6 ADC0804. Jika komputer Anda tidak memiliki port ISA, anda dapat memesan ke penulis Card PPI 8255 PCI produksi Lava Link (harga sekitar Rp.940.000). 
Pada ADC dikenal dengan istilah Free Running dan Mode control.  Mode Free Running adalah, dimana ADC0804 akan mengeluarkan data hasil pembacaan input secara otomatis dan berkelanjutan (Continue) setelah selesai mengkonversi tegangan analog ke digital. Pin INTR akan berlogika rendah setelah ADC selesai mengkonversi, logika ini dihubungkan kepada masukkan WR untuk memerintahkan ADC memulai konversi kembali.
Mode Kontrol adalah  mode ADC yang baru memulai konversi setelah diberi instruksi dari mikrokontroler. Instruksi ini dilakukan dengan memberikan pulsa rendah kepada masukan WR sesaat +1ms, kemudian membaca keluaran data ADC setelah keluaran INTR berlogika rendah.




Gambar 10.3  Rangkaian Pengukur suhu ekonomis



DS1626/ 1726 3-Wire Digital Thermometer dan  Thermostat

DS1626 dan  DS1726 ialah  digital thermometer/thermostat mampu membaca temperatur  dan thermostat pada kisaran   -55°C  hingga +125°C .  DS1626 mempunyai akurasi  ±0.5°C dari 0°C  hingga +70°C dan  DS1726 mempunyai akurasi  ±1°C dari -10°C hingga +85°C. Resolusi dapat dipilih oleh user dari 9  hingga 12 bit. Chip ini berkomunikasi menggunakan 3-wire serial bus. Berbagai perangkat elektronika canggih saat ini umumnya menggunakan sensor jenis ini yang merupakan produksi MAXIM.

                  Gambar 10.4  Susunan kaki DS1626



DS1722  Digital Thermometer with SPI/3-Wire Interface

DS1722 Digital Thermometer dan  Thermostat dengan SPI/3-Wire Interface  menyediakan pembacaan temperatur pada Motorola SPI interface atau 3-wire serial interface standar .
User dapat memilih resolusi dari 8 hingga  12 bit. DS1722 tersedia pada 8-pin SO (150mil), 8-pin µMAX, dan  paket  flip-chip.  Contoh aplikasi pada PC, server, seluler, perlengkapan mobile dll.

DS1631/DS1731 Digital Termometer & Termostat

DS1631/DS1631A/DS1731 ialah digital thermometer yang menyediakan resolusi 9, 10, 11, atau  12-bit pada kisaran -55°C hingga +125°C .  DS1631 dan DS1631A mempunyai akurasi ±0.5°C  dari  0°C   hingga +70°C dengan  3.0V <VDD <5.5V, dan  akurasi DS1731 ±1°C dari -10°C  hingga +85°C dengan  3.0V <VDD <5.5V.  Sensor ini umum digunakan sebagai digital thermometer dan thermostat berbasis mikrokontroler pada network router/switch, seluler dan lain lain dengan kisaran tegangan  kerja +2.7V  hingga  +5.5V. Sensor-sensor tipe ini ialah pengganti sensor DS1621 yang sudah expired, namun anda masih dapat memesan sensor DS1621


Gambar 10.5  Susunan pin DS1631




DS 1821 Programmable Digital Termostat and Termometer
DS1821  berfungsi sebagai sensor thermostat  trip point yang dapat diprogram atau sebagai sensor temperatur dengan 1-wire digital interface.  thermostat trip-point disimpan pada nonvolatile memory, jadi  DS1821 dapat diprogram untuk berjalan secara standalone. DS1821 mempunyai kisaran temperatur–55°C  hingga  +125°C dan akurasi 1°C pada kisaran 0°C hingga  +85°C.

                       
                               Gambar 10.6  Susunan kaki DS1821

DS812 bekerja dengan 1 wire bus, Gambar 10.7 merupakan contoh umum berbagai sensor 1-wire bus  pada pin DQ yang terhubung ke mikroprosesor/mikrokontroler.


                Gambar 10.7   Rangkaian umum sensor DS1821

DS 1904 RTC iButton

Meskipun modul ini bukan sensor, tapi layak disajikan karena berperan penting pada suatu sistem mikrokokontroler terkini dan umumnya rangkaian mikrokontroler terkini menggunakan DS1904 sebagai RTC.  DS1904 RTC iButton® ialah modul  real-time clock yang dapat diakses dengan hardware yang minim.  Data ditransfer secara serial menggunakan protocol 1-Wire®, yang hanya membutuhkan 1 jalur data dan sebuah ground. DS1904  berisi ROM 64-bit dan  sebuah  real-time clock/calendar yang diimplementasikan sebagai binary counter. DS1904 dapat berfungsi sebagai kalendar, penunjuk waktu, stopwatch, hour meter, interval timer, dan logbook untuk aplikasi  embedded yang digunakan pada  mikrokontroler.

            Gambar 10. 8  Sensor DS 1904 RTC iButton

DS1825 Programmable Resolution 1-Wire Digital
             Thermometer With 4-Bit ID
Digital thermometer DS1825 menyediakan  pembacaan temperatur dari  9-12bit  dan mempunyai fungsi alarm dengan NV user-programmable upper dan  lower trigger points. DS1825 mirip dengan DS1821, yaitu   berkomunikasi dengan 1-Wire, yang hanya membutuhkan 1 jalur data dan ground untuk berkomunikasi dengan mikroprosesor/mikrokontroler .  Beroperasi pada kisaran -55°C hingga +125°C dan akurasi  ±0.5°C  pada suhu -10°C  hingga  +85°C.


DS1920 Digital Thermometer

Sensor DS1920 menyediakan pembacaan temperatur digital 9 bit pada kisaran -55°C  hingga+100°C  dengan kenaikan  0.5° .  iButton®  berkomunikasi dengan sebuah prosesor menggunakan protokol 1-Wire®  melalui sebuah antarmuka port. Sensor jenis ini biasanya dipasang pada suatu klip sebagai socket sensor tersebut, yang harus anda pesan tersendiri. EEPROM 2 byte dapat digunakan untuk menset alarm atau menyimpan data user
       
                        Gambar 10.9  Sensor DS1920

Sensor Kelembaban
HS 12P/15P
HS12P/HS15P ialah sensor Kelembaban  relatif (Relative Humidity) dengan suhu operasi  dari 0-50°CHS12P dipilih sebagai sensor untuk tipe respon yang cepat, sedangkan HS15P untuk tipe sensor tahan air.  HS12P beroperasi pada kelembaban 20 – 90% RH (tanpa condensing) sedangkan HS15P 20 -100% RH.  Tegangan yang diberikan idealnya AC 1V rms dan konsumsi daya 0.3 mW.  Jangan memberikan tegangan DC atau bias DC langsung pada sensor tersebut.

               
   Gambar 10.10  Sensor HS12P/15P


Sesuai dengan hukum Dalton, total tekanan udara ialah jumlah dari tekanan  uap parsial dari komponennya,dan tekanan uap air ialah tekanan uap air parsialnya seperti rumus dibawah ini :

 
 

Jika tekanan uap air sama dengan tekanan uap air saturasi, akan terjadi kondensasi. Secara matematik, kelembaban relatif dapat dilambangkan dengan rasio tekanan uap air parsial dibagi dengan tekanan uap air saturasi sebagai persentase

                          
                  
Konsep penting lainnya tentang relative humidity ialah dew point atau titik embun, yaitu temperatur dimana kelembaban  yang ada di udara akan berkondensasi.  Contoh jika udara mempunyai temperatur 40 °C, dan relative humidity 50%, kondensasi akan terjadi ketika udara turun ke 27.6 derajat celcius.  Pada dew point,  nilai RH ialah 100%.  Gambar 10.11 memperlihatkan kondisi dew point.



            Gambar 10.11  Kondisi Dew point

Sensor Temperatur dan Kelembaban
SHT11/75 Sensor  Relative Humidity dan  Temperatur
SHT11 ialah 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 dll. Sedangkan SHT75 ialah sensor temperatur dan kelembaban khusus untuk memperoleh kualitas pengukuran yang lebih bagus(presisi tinggi) dibanding SHT11, jadi lebih mahal.

                
                          (a)                                    (b)

            Gambar 10.12  SHT 11(a),  dan SHT 75(b)

Untuk memnghubungkan sensor 2 wire dengan mikrokontroler, umumnya bentuk rangkaian seperti Gambar 10.13, Anda dapat melihat contoh aplikasi menggunakan sensor STH1x pada CD.


                  Gambar 10.13 Blok diagram umum Sensor


 Pengkonversi Data (ADC/DAC)

Untuk mempelajari teori mengenai ADC/DAC saya sarankan Anda membaca buku saya sebelumnya yaitu Elektronika Digital Dan Mikroprosesor.  Pada bagian ini saya langsung jelaskan ic-ic yang sering digunakan saat ini untuk pengkonversi data.

PCF8591

PCF8591 ialah AD/DA Converter 8 bit dengan 4 input analog menggunakan interface  I2C. Chip ini sudah ramai digunakan saat ini menggantikan ADC/DAC standar seperti 0808,0809, MC1408 dan 0804. 
DT51 I2C ADDA merupakan Analog Input Output Add-on board untuk DT51 menggunakan teknologi I2C-bus dimana IC utama yang digunakan ialah PCF8591. I2C ADDA digunakan untuk mengubah sinyal analog seperti tegangan atau arus ke data biner dan sebaliknya. Aplikasinya antara lain kontrol kecepatan motor, pengaturan suhu ruang, akuisisi data jarak jauh dan lainnya. Pin AIN0-AIN3 ialah pin input analog, sedangkan AOUt ialah sinyal output analog.


Gambar 10.14  Susunan pin PCF8591

Gambar 10.15 merupakan rangkaian lengkap I2CADDA, dimana sebagai sumber tegangan referensi digunakan LM336 sebagai dioda zener variabel menggunakan bantuan potensiometer.

                              Gambar 10.15  Rangkaian I2CADDA

Untuk mencoba I2CADDA, dibutuhkan DT-51 MinSys ver.3 dan multitester, Langkah –langkah :
·         Hubungkan DT-51 dengan I2C ADDA
·         Hubungkan output analog dengan motor DC/multitester
·         Masukkan program contoh adda.asm, yang akan menerima input dari AIn0-Ain3 dan mengeluarkan data digital pada PA-PC, atau
·         Masukkan program contoh pembangkit sinyal gigigergaji (adda2.asm) untuk mengeluarkan sinyal gigigergaji. Kode program ini akan anda peroleh jika memiliki kit I2CADDA.


Program Input I2CADDA (adda.asm)
;---------------------------------------------------------
$mod51
$title (DT51 I2C ADDA)
;input  : Analog input @ Ain0-Ain3
;output: Analog output from Ain0 @AOut
;               Digital output from  AIn1 @PA
;                                               from AIn2 @PB
;                                               from AIn2 @PC
;---------------------------------------------------------
                                CSEG
                                ORG        4000H
                                LJMP      Start
                                ORG        4100H
                                $NOLIST
                                $INCLUDE (ADDA.ASM)
                                $LIST
DELAY: PUSH     02H
                                PUSH    03H
                                MOV     R2, #0FFH
DEL:                       MOV      R3,#0FFH
                                DJNZ      R3, $
DJNZ     R2,DEL
                                POP        03H
                                POP        02H
                                RET
Start:                       MOV      P1,#0FFH
                                MOV      SP,#40H
                                MOV      Flag,#00H
                                MOV      Ch0,00H
                                MOV      Ch1,#00h
                                MOV      Ch2,00H
                                MOV      Ch3,00H
                                ACALL DELAY
                                MOV      DPTR,#2003H
                                MOV      A,#00H
                                MOV      Mode,#0
                                MOV      Channel,#2
                                SETB      AutoInc
                                LCALL  InitADDA
                                JB            InitDone, NxtStep
                                CLR        P1.0                        ;indikasi init gagal
                                AJMP     $
NxtStep: MOV      A,#00H
                                LCALL  ReadADC               ;Baca Ain0-Ain3
                                                                                ;Data ADC siap digunakan
                                                                                ;in Ch0-Ch3
                                MOV      A,#100H ;Slave Addr=0
                                MOV      B,Ch0
                                LCALL   WriteDAC             ;output@ AOut
                                MOV        A,Ch1   ;output Ain1 @PA
                                MOV      DPTR,#2000H
                                MOVX   @PDTR,A
                                MOV        A,Ch2   ;output Ain2 @PB
                                MOV        DPTR,#2001H
                                MOVX   @DPTR,A
                                MOV      A,Ch3     ;output Ain3 @PC
                                MOV      DPTR,#2002H
                                MOVX    @DPTR,A
                                AJMP     $
                                END


Program sinyal gigigergaji(adda2.asm)
$MOD51
$TITLE(GENERATE SAWTOOTH SIGNAL AT Aout)

                                CSEG     
                                ORG        4000H
                                LJMP      Start

                                ORG        4100H
                                $NOLIST
                                $INCLUDE(ADDA.ASM)
                                $LIST

Delay:                     PUSH     02H
                                PUSH     03H
                                MOV      R3,#0FH
Del:                         MOV      R2,#0FFH
                                DJNZ      R2,$
                                DJNZ      R3,Del
                                POP        03H
                                POP        02H
                                RET                       

Start:                       MOV      P1,#0FFH
                                MOV      SP,#40H
                                MOV      Flag,#00H
                                MOV      Ch0,#00H
                                MOV      Ch1,#00H
                                MOV      Ch2,#00H
                                MOV      Ch3,#00H

                                MOV      A,#00H                                  ;Slave Addr=0
                                MOV      Mode,#0                                                ;Mode=0
                                MOV      Channel,#0                            ;Ch=0
                                LCALL   InitADDA                             ;Init ADDA
                                JB            InitDone,Sawtooth
                                CLR        P1.0                                         ;Indicate init fail
                                AJMP     $
Sawtooth:              MOV      B,#00H                                   ;Data=0
NxtData: MOV      A,#00H                                  ;Slave Addr=0
                                LCALL   WriteDAC
                                INC         B
                                AJMP     NxtData
                                AJMP     $
END                       

ADC MAX 154/158

MAXIM mengeluarkan ADC generasi baru, yaitu ADC MAX154 yang mempunyai 4 channel  input dengan resolusi 8 bit, sedangkan MAX 158 mempunyai 8 channel dengan resolusi 8 bit. Chip ini sangat ringkas karena sudah tersedia sumber detak internal, bandingkan dengan ADC0808 yang membutuhkan sumber detak eksternal menggunakan TTL/kristal.


        

       Gambar 10.16  Susunan pin MAX154/158

Pada Gambar 10.17, terlihat bahwa MAX154/158 berkomunikasi menggunakan bus alamat, data bus dan sinyal control RDY dan RD’, sedangkan CS’ diaktifkan melalui address decoder. Untuk memilih salah satu nput dari 8 input digunakan sinyal input ke A0 hingga A2.


            Gambar 10.17  Contoh rangkaian berbasis MAX154/158

ADC berbasis 0808

Contoh IC ADC 8 bit yang mampu menerima 8 input   dan banyak digunakan ialah ADC 0808 meskipun lebih mahal dibandingkan ADC 0804  . ADC ini selain  mampu diprogram untuk mulai konversi melalui pin SC (Start Conversion ), mampu juga berjalan dalam mode free running, artinya ia akan konversi terus menerus sinyal input yang masuk dengan cara menghubungkan pin EOC (End of Conversion) ke SC.

Gambar 10.18  ADC 0808

ADC 0804
ADC 0804 merupakan adc yang paling murah, karena hanya mempunyai 1 buah input analog.   Rangkaian ADC melalui port paralel ini tampak pada Gambar 10.19.  Hubungan ke data komputer melalui pin data yaitu D0-D7.  Sinyal status yang digunakan ialah ERROR yang digunakan dengan pin 5 ADC yaitu INTR’. Dua sinyal control yaitu STROBE’ dan INIT’ digunakan untuk mengaktifkan ADC.  Pin 9 sebagai Vref tidak dihubungkan. Kombinasi resistor dan kapasitor sebagai sumber detak dengan frekwensi tertentu.


            Gambar 10.19 rangkaian ADC ke port parallel

Berikut program pengontrol untuk ADC tersebut  menggunakan bahasa PASCAL yang dapat dengan mudah dirubah menggunakan bahasa C:


Program ADC melalui port parallel (Adcparalel.pas)
const c0=1;c1=2;c2=4;c3=8;s0=1,s1=2;s2=4;s3=8;
           base=$378; (menggunakan LPT1)
var      data,stat,ctr1,eppdata   :integer;
           sample, lc                       :integer;
begin
data:=base;stat:=base+1;ctr1=base+2;
for sample:=0 to 3000 do begin
port[ctr1]:=32;  (inisialisasi…)
lc:=0;
while (((port[stat] abd s3)=0) or lc<256)) do
inc (lc);
if lc>256 then write (‘time out, error pada hardware’)
else begin
port(ctrl):=37; (enable adc output)
eppdata:=port[data];
port[ctrl]:=36;  (disable adc output)
write (‘Hasil konversi ialah :’,eppdata);
end;
        end;
end.

Pada program diatas, digunakan alamat standar port paralel atau yang lebih dikenal sebagai port printer yaitu 378H (dalam pascal ditulis sebagai $378).  Program lalu menginisialisasi  variabel untuk data, stat dan ctrl dengan nilai alamat masing masing. Program kemudian looping untuk mengambil data lalu ditampilkkan hasilnya.


PPI 8255 untuk DAC

Gambar berikut merupakan format DAC yang umum, dimana input berupa 8 bit atau lebih, dan outputnya berupa sinyal analog, yang biasanya diperoleh dari suatu rangkaian op-amp


                  Gambar 10.20  Blok diagram DAC standar

Ada 3 modus operasi pada PIO 8255 yang dapat dipilih melalui software yaitu :
  • Mode 0 : basic input/output
  • Mode 1 : strobed input/output
  • Mode 2:  bidirectional bus
Jika reset input mendapat input high, semua port akan diset ke mode input dimana semua 24  jalur ditahan pada logika 1 oleh bus internal.  PPI 8255 dapat dibuat sebagai antarmuka DAC atau ADC.  Untuk mencoba DAC yang terprogram paling mudah menggunakan PPI 8255 dalam mode 0.  Langkah-langkah:
  • Pasang Card PPI 8255 ISA, anda juga dapat menggunakan Card PPI 8255 berbasiskan PCI
  • Hubungkan DAC ke port A
  • Hubungkan keluaran DAC ke Osiloskop
  • Buat program berikut :

//Program Pembangkit sinyal Sinus berbasis 8255
#include <conio.h>
#include <stdio.h>
#include <math.h>
main()
{
printf (“======================”);
printf (“ Pembangkit sinyal sinus\n”);
outp (0x303, 0x80); //konfigurasi 8255
printf (“======================”);
unsigned char v1;
float Vout, magnitude; int a;
printf (“\n Tekan sembarang tombol untuk keluar\n”)
do
{
for (a=0;a<360;a++)
{
Vout =5.0 +5.0* sin ((3.14*a)/180));
magnitude=Vout*25.6;
v1=(char)magnitude;
delay(1);
outp(0x300,v1)
}
}
while (!kbhit());
return (0);
}

Program diats akan membangkitkan sinyal sinus karena terdapat pembangkitan nilai sinus pada rumus Vout =5.0 +5.0* sin ((3.14*a)/180)). Alamat yang digunakan ialah 300H, yang merupakan alamat standar port ISA untuk eksperimen.


LATIHAN:

1.       Jelaskan cara kerja IC DS1920 dan DS 1821.
2.       Buat rangkaian pengkondisi sinyal untuk sensor HS15P.
3.       Jelaskan cara kerja IC MAX 154 dan MAX 158. 
4.       Pelajari cara kerja Pemancar dan penerima wireless yang bekerja di frekwensi 916.5 MHz menggunakan TLP916 dan RLP916A. TLP916 mampu mengirim data hingga 200Kbps untuk aplikasi telemetry dan radio control.  Jarak yang mampu dicapai sekitar 100 meter pada area terbuka menggunakan antenna ¼ panjang gelombang. Untuk frekwensi yang lebih rendah, Anda dapat memilih TLP434A yang bekerja di frekwensi 433.92 MHz





                    Gambar 10.21  Pemancar TLP916

                          Gambar 10.22  Penerima RLP916A

0 comments:

Posting Komentar