Sensor SHT11


SHT11 adalah sensor digital untuk temperatur sekaligus kelembapan pertama didunia yang diklaim oleh pabrik pembuatnya yaitu Sensirion Corp yang mempunyai kisaran pengukuran dari 0-100% RH dan akurasi RH absolut +/- 3% RH. Sedangkan akurasi pengukuran temperatur +/- 0.4oC pada suhu 25 oC. Modul sensor ini sudah memiliki keluaran digital dan sudah terkalibrasi, jadi pengguna tidak perlu lagi melakukan konversi A/D ataupun kalibrasi data sensor. Antarmuka modul ini adalah serial 2-wire (bukan I2C) sehingga sangat menghemat jalur I/O kontroler.

Dalam tulisan ini akan dibahas cara menghubungkan modul SHT11 dengan rangkaian sistem minimum dan berikut ulasan tentang programnya menggunakan bahasa c. Hubungan antara modul SHT11 dengan sistem mikrokontroler Atmega8535 sebagai berikut:

*pin ini tidak mutlak dan dapat diganti dengan pin lain tetapi program juga harus disesuaikan

PA.0 digunakan untuk membaca dan menulis data dari/ke modul SHT11. Sedangkan PA.1 digunakan untuk menghasilkan pulsa (clock) untuk sinkronisasi proses komunikasi 2-wire. Dalam permintaan pengukuran temperatur dan kelembapan secara teknis sama hanya perbedaannya terletak nilai byte permintaan pengukuran yaitu nilai byte=0x03 untuk temperatur dan nilai byte=0x05 untuk kelembapan. Diagram alir program untuk meminta modul SHT11 melakukan pegukuran temperatur serta membaca hasil pengukuran sebagai berikut :

Dari flowchart diatas, pembacaan suhu dimulai dengan mengirim sinyal start untuk memulai komunikasi serial 2-wire. Setelah itu program mengirim 0x03 ke SHT11 yang merupakan perintah untuk memulai pengukuran suhu. Rutin SHTWriteByte (0x03) akan memberikan nilai ACK yang disimpan dalam variabel AckBit. Jika variabel AckBit bernilai 0, maka program akan menunggu selesainya pengukuran SHT11 dengan memanggil rutin SHTWait(). Rutin SHTWait() akan memberikan suatu nilai yang kemudian disimpan pada variabel TimeOut. Variabel TimeOut akan bernilai 0 jika pengukuran SHT11 selesai dan data siap. Setelah pengukuran selesai, data suhu akan dibaca MSB dulu kemudian LSB. Pembacaan data MSB dilakukan dengan memberi nilai variabel AckBit = 0, sedangkan pembacaan data LSB dilakukan dengan memberi nilai variabel AckBit = 1. berikut potongan listing program pembacaan suhu

void SHTReadTemp (void)
{ 
StartSignal();
SHTWriteByte(0x03); //Command Measure Temperature
if (AckBit==0)
{
SHTWait(); //Tunggu sampai pengukuran selesai
if (TimeOut==0)
{
AckBit=0; //Kirim ACK untuk menerima byte berikutnya
SHTReadByte(); // Ambli Byte MSB
DataTempSHT = DataRead;
DataTempSHT <<= 8;
AckBit=1; //Kirim NACK untuk mengakhiri pengambilan data
SHTReadByte(); //Ambil byte LSB 
DataTempSHT |= DataRead; 
DataRead = DataTempSHT; 
}
}
}

untuk mendapatkan nilai temperatur dan kelembapan, data hasil pembacaan SHT11 perlu dikonversi terlebih dahulu sebelum ditampilkan di LCD yaitu dengan rumus:

RH=(DataRead* x 0.0405) – (DataRead* x DataRead* x 0.0000028)-4;

Temp=(DataRead* – 4000)/100;

*DataRead adalah data hasil pembacaan sensor SHT11

source code codevisionavr bisa didapat disini SHT11-code

ref by application note Innovative Electronics AN143

    • adm_badut
    • January 10th, 2011

    Numpang nanya ka.. saya baru belajar mikrokontroler avr dan saya mau bikin alat ukur suhu dan kelembaban menggunakan sht11,, tapi saya mau pake port B.. program untuk menyesuaikannya kaya gimana ya??
    mohon bimbingannya..
    terima aksih..

    • mohon maaf atas keterlambatan responnya…
      semua yang berbau PORTA diganti dengan PORTB termasuk juga DDRA diganti DDRB…
      misalnya dibagian(dengan ketentuan SDA tetap pin 0 dan SCL tetap pin 1)

      #define SDAOut PORTA.0

      #define SDAIn PINA.0

      #define SCLK PORTA.1

      diganti

      #define SDAOut PORTB.0

      #define SDAIn PINB.0

      #define SCLK PORTB.1

      lalu

      sfrb PORTA=0x1b;

      sfrb PINA=0x19;

      diganti

      sfrb PORTB=0x18;

      sfrb PINB=0x16;

      dan yang lainnya silahkan sesuaikan,,,

    • isa
    • March 21st, 2011

    maksih mas atas bantuan nya…. mas.
    mas saya ada yang bingung untuk code
    sfrb PORTA=0x1b;
    sfrb PINA=0x19;
    yang mas tulis SRFB –> itu untuk apa? maksh mas

    • isa
    • March 21st, 2011

    ralat mas bukan SRFB tapi —> sfrb

    • itu untuk merujukkan pada register dari pin I/O sebagai PIN/PORT…

  1. mas,,,,saya mau tanya2 nieh….

    SHT11 kan, sensor yang bisa deteksi kelembaban dan temperatur ruangan…

    dari DATA pada pin 1 dan SCK pada pin 3….data itu kan untuk transfer data dari sht11 ke mikro atopun sebaliknya….

    yang saya tanyakan,,,,DATA itu berupa data apa…ataukan pulsa,,,ato apa….terus bagaimana cara kerja sensor itu jika saat mengukur kelembaban dan temperatur…

    terimakasih…mohon bantuannya,.,,???

    • dari DATA pada pin 1 dan SCK pada pin 3….data itu kan untuk transfer data dari sht11 ke mikro atopun sebaliknya….

      apakah maksud DATA ini adalah SDA,,??
      bener SDA berfungsi untuk komunikasi data antara mikro dengan sensor sedang SCK untuk clock komunikasi tersebut,,,
      data yang dikirim oleh sensor pada mikro adalah data 16 bit yang sudah terkalibrasi dari pabrikan so nilainya brd pada rentang 0-65535,,,
      sedangkan untuk memperoleh nilai temperature dan kelembapan dari data tersebut digunakan rumus diatas(pada artikel),,,

      • mas,,,nyambung lage….
        betul2…data SDA….!!! tapi data SDA berupa aphh…pulsa atau apah….hehe

        jikalao masnya menggunakan modul sensor SHT11 yang seperti gambar diagramnya dicinie(http://i1209.photobucket.com/albums/cc395/ariph_holicc/diagramblokSHT11.jpg),,,bukankah didalamnya sudah ada ADC 14 bit…yang dimaksud 16 bit seperti kata masnya,,,,dimananya,,,,o ya saya lupa….klo pas waktu mengukur kelembaban dan temperatur bagaimna jalur pembagian antara bit nya itu mas,,,,,

        maaf ya merepotkan…tolong dbantu…..

      • memang didalamnya modul SHT11 sudah ada ADC 14 bit jadi data yang dihasilkan oleh modul sudah dalam bentuk data digital dan sepengetahuan saya dari artikel2 lain ttg SHT11 data output sensor berupa data digital 16 bit untuk dikirimkan ke mikrokontroler,,,
        jadi setiap pembacaan (misalnya temperature) oleh mikrokontroler pada modul, modul akan memberikan hasil pembacaan temperature pada mikrokontroler dalam bentuk data 16 bit (nilai antara 0-65535),,,
        sedang untuk mengkonversi nilai hasil pembacaan dari sensor tadi (nilai antara 0-65535) menjadi nilai temperature digunakan rumus:
        Temp=(nilai sensor – 4000)/100

        hal yang sama juga terjadi ketika mengukur kelembapan,,,
        sedangkan untuk pembacaan temperature dan kelembapan dilakukan secara bergantian dengan mengakses register masing2 yaitu temperatur byte=0×03 dan kelembapan byte=0×05…

  2. jawaban yang membantu ….:D

    naghh yang saya mase bingung,,,tentang pembacaaan temperatur dan kelembaban….

    rumusnya sudah betulll….hehehe

    apakah pada saat sensor membaca suhu dan kelembaban yang konversi ADC pada 14 bit itu gmn,,,pembagiannya…
    ataukah 8 bit untuk suhu dan 8 bit lage untuk kelembaban…atau bergantian 16 bit pertama untuk suhu baru kemudian 16 bit untuk kelembaban,,,saya nyari artikel kuk ga ktemu,,,boleh share,,,,

    • data temperature dan data kelembapann masing2 16 bit dan tersimpan dalam register yang berbeda,,,,
      misalnya jika ingin mengakses data temperature maka melakukan pengaksesan dengan mengikuti alur yang diflowchart diatas hingga selesai baru dari situ didapat data temperatur,,,,
      sedangkan untuk data kelembapan prosesnya sama dengan pengaksesan data temperatur yaitu mengikuti alur flowchart seperti diatas namu bedanya hanya diregisternya yaitu kalo yang suhu tadi di byte=0x03 maka untuk kelembapan byte=0x05,,,
      jadi rutin untuk membaca temperatur dan kelembapan ini dibuat terpisah karena register yang diakses berbeda,,,

      sedangkan untuk pengaksesan data yang resolusinya 16 bit itu dilakukan 2x yaitu diambil data 8 bit MSB dulu lalu di geser ke kiri 8 kali, lalu ambil data 8 bit LSB. Kemudian kedua data tersebut digabungkan menjadi 1 data dengan resolusi 16 bit,,,

  3. shiiippp…top markotop,,,,sangat membantu???

    saya ngerti sekarang….hehehe

    salam kenal..,,

    • alhamdulillah,,,
      sip kalo begtu,,,
      salam kenal juga n selamat berkreasi,,,🙂

      • mas coys…ada satu lagi pertanyaan yang mengganjal saya,,,,,

        dari rumus diatas untuk RH dan suhu:

        Temp=(nilai sensor – 4000)/100
        (nilai 4000 dan 100 ; didapat darimana itu mas)

        RH=(DataRead* x 0.0405) – (DataRead* x DataRead* x 0.0000028)-4;
        (nilai 0,0405 dan 0.0000028 dan 4)

        dari rumus itu bisakah dijelaskan…..

      • ************ Konversi Temp SHT11 **************
        Temp=(DataRead – 4000)/100

        pada awalnya rumus tersebut adalah:
        Temp = (SOt x d2) + d1 // dengan d2 = 0.01 (14-bit) dan d1 = -40 (VDD = 5Volt)
        Temp = ( Dataread x 0.01) – 40 // dikalikan dengan 100
        100xTemp = (DataRead – 4000)
        Temp=(DataRead – 4000)/100

        ************ Konversi Kelembapan SHT11 **************
        RH=(DataRead* x 0.0405) – (DataRead* x DataRead* x 0.0000028)-4;

        pada awalnya rumus tersebut adalah:
        RH = c1 + (c2 * SORH) + (c3 * SORH^2) // Untuk pengukuran 12-bit: c1 = -4; c2 = 0,0405 dan c3 = -2,8*10^-6
        RH = (DataRead x 0,0405) – (DataRead^2 x 0,0000028) – 4

        so intinya semua rumus itu sudah tetapan pabrik sensirion,,,
        untuk lebih jelasnya silahkan disimak dari datasheet sht1x
        http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf

    • gw
    • April 19th, 2011

    mas “#define out PORTB.0” buat apa ya..???

    • thanx atas koreksinya,,,
      syntac #define out PORTB.0 itu untuk deklarasi pin output kontrol dari sistem, jadi kalo hanya untuk membaca temp dan kelembapan, perintah ini dihapus ja,,,

      sebenarnya contoh listing program yang saya lampirkan disini pada mulanya terdapat sistem kontrol PID yang saya buat untuk tugas so bagian itu kelewat g saya hapus,,,

        • gw
        • May 2nd, 2011

        ok sama-sama mas
        pantes saya binggung
        klo blh, saya minta nama lengkap n’ nmr hp mas untuk sharing2 lbh lanjut ttg sht 11, kebetulan saya lg ada projek dari kampus mohon bimbingannya..
        tlg krm ke email saya ya mas…
        mohon respont nya..
        thanks

  4. ************ Konversi Kelembapan SHT11 **************
    RH=(DataRead* x 0.0405) – (DataRead* x DataRead* x 0.0000028)-4;
    pada awalnya rumus tersebut adalah:
    RH = c1 + (c2 * SORH) + (c3 * SORH^2) // Untuk pengukuran 12-bit: c1 = -4; c2 = 0,0405 dan c3 = -2,8*10^-6
    RH = (DataRead x 0,0405) – (DataRead^2 x 0,0000028) – 4
    so intinya semua rumus itu sudah tetapan pabrik sensirion,,,

    hehe..mas tanya lage…misalkan DataRead saya masukkan 500…sesuai dengan toleransi SORH pada datasheet…hasilnya 16,59% yang akan ditampilkan ke LCD , dari data desimal 500 kan harus dirubah melalui ADC 14 bit ke bentuk digital yang ada pada SHT11 tow,,,hasilnya,,,(111110100)….yang saya bingung,,,dari tetapan pabrik dan yang mas tuliss,,,kan 12 Byte untuk pengukuran kelembaban..tapi hasil binernya hanya (500=111110100=9 byte)yang menuju ke mikrokontroler…apakah menghitunyya saya salah…..mohon koreksi yauw…

    • hehehehehehe…
      bagaimana kalau seandainya data sebenarnya yang dikirim oleh sht11 kepada mikrokontroler dalam bentuk kayak begini 000111110100 (12 bit dengan nilai = 500),,,??
      bukankah nilai itu sama saja karena nilai nol didepan tidak diperhitungkan oleh mikrokontroler,,,

      • hehe….bner2 mas…..baru inget….

        trimsss pokoknya atas semua penjelasannya….

        bagus dwehhh posting n tanggapannya……SALUTT…kse cendolll dwahhh????

      • okey2,,,
        semoga bermanfaat n thanx atas cendollnya,,,,🙂

    • mida
    • April 24th, 2011

    mau tanya dong.. program diatas ku coba simulasi pake proteus kok tampilan di lcdnya “Rh Temp 2f 2f”.. apa yang salah ya?

    • mungkin output atau printout nya belum di setting ke format float karena data yang ditampilkan di LCD itu berbentuk desimal,,

    • mida
    • April 24th, 2011

    coys :
    mungkin output atau printout nya belum di setting ke format float karena data yang ditampilkan di LCD itu berbentuk desimal,,

    cara setting format float itu gimana ya…? apa di cv avrnya sebelum membuat program..

      • coys
      • April 24th, 2011

      kalau di cvavr di project->configure->C compiler
      point “(s)printf feature” diubah menjadi “float,width,precision”…

    • mida
    • April 27th, 2011

    coys :
    kalau di cvavr di project->configure->C compiler
    point “(s)printf feature” diubah menjadi “float,width,precision”…

    kok tetep gak bisa ya mas,
    saat “(s)printf feature” diubah menjadi “float,width,precision” trus saya compile malah stack data size saya kurang…
    bingung jadinya saya… mas ada tutorial simulasi sht11 dengan proteus gak…?

    • mikrokontrolernya pake tipe berapa,,,??
      kayaknya memori flashnya kurang,,,!!!
      coba ganti yang ATmega16,,,

      q g da tutorial pakai proteus,,,

        • miday
        • April 28th, 2011

        q pake tipe 8535..
        tapi tetep gak bisa mas…
        dah tak ganti ke atmega16 ato 32 tetep gak bisa..
        apa karena cvavrnya q pake yang evaluation ya…
        pernah liat di forum kalo pake cvavr yang evaluation emang kaya gitu…

      • oy,,,
        kalo tidak salah CAVR yang evaluation hanya dibatasi untuk kompile program max 2kb…

    • nofal
    • May 1st, 2011

    gan pngen tanya nie…
    nie ku pngen buat alat nyeimbangkan suhu dalam rumah kaca bwat tugas akhir tapi aku bngung source code nya….coz dari data yang ad dipostingan suhunya kyaknya g di atur ndiri…
    bisa bantu gan….
    thanks,kirim ke e-mail q..
    pallopewek@yahoo.com

    • Andy
    • May 24th, 2011

    Nice Post Gan
    Gan download C AVR full dimana?…

    pas mo di flash kurang tuh memory nya gara2 pake evaluation

    thanks sebelum nya

  5. mas kok saya tampilan temp dan RH tidak ada padahal sudah saya ganti project->configure->C compiler
    point “(s)printf feature” diubah menjadi “float,width,precision

    angka nya ngak muncul itu kenapa ya ?
    saya pakai c avr yang lama bukan yang evaluation ..
    itu kenapa ya mas ?

    • NIlai Temp dan RH nya tidak muncul sama sekali tah,,,??
      itu bisa di sebabkan sensor kurang mendapat daya yang cukup sehingga sensor tidak bekerja maksimal,,,
      pengalaman saya dulu supply sensor (5V) dengan regulator 7805 tidak mampu so kalo bisa dibuatin regulator dengan menggunakan kombinasi zener-transistor ato 7805-transistor

      • saya coba di proteus mas .kok juga ngak keluar juga RH dan Tem nya ..
        saya jadi bingung mas , mohon pencerahannya ya mas

  6. ternyata benar mas menggunakan kombinasi zener-transistor ato 7805-transistor
    akhirnya bisa .. mas punya email ngak , sekalian mau sharing2 tentan TA saya mas ..
    thx before

    • syukurlah kalo akhirnya bisa juga🙂
      bisa kontak q di surel coys.jrux@gmail.com

      • grace
      • June 5th, 2014

      kang victor, compilernya pake cvavr evaluation bukan? di LCD saya tampilannya 2f 2f.

    • mas boleh minta program sht11 yang fix,mksdnya yg sudah di coba di masukan ke mikrokontler,

  7. mas, pas saya coba simulasi di proteus bisa.
    tapi pas saya coba di lcd yang asli hasil suhu sama kelembaban nya malah 0 mas..
    itu knpa ya? apa programnya ada yang salah? thx b4😀

      • grace
      • April 17th, 2014

      mba izma,, saya sudah coba pakai proteus 8 tapi ngga bisa, tampilannya 2f 2f jika pun diubah ke dalam desimal sama saja nilainya ngga valid.. knpa ya? mohon bantuannya

  8. boleh minta skematik yang 7805-transistor ga mas? tolong kirim ke email saya mas. luph_sentaro@yahoo.com

    • ma’af kalo responnya agak lama…
      mungkin problemnya sama dengan mas victor diatas yaitu arusnya kurang besar n bisa diatasi membuat regulator dengan kombinasi 7805-transistor atau zener-transistor,,,
      contoh rangkaiannya saya kirim via email,,,

        • grace
        • April 17th, 2014

        mas coy, kalau boleh saya juga minta rangkaian regulatornya, file regulator yang di attach ngga bisa saya donlod. maksih

        rosyidahulagrace@gmail.com

    • Imamneo
    • July 14th, 2011

    mau tanya mas coys, program yang mas ubah dari application note pny innovative itu bagian yang mana mas, selain itu saya coba simulasi di proteus juga tidak berjalan, mohon pencerahannya, thank’s🙂

    • kalo tidak salah yang saya rubah disana adalah di bagian “void SHTReadHumidity (void)”, “void SHTReadTemp (void)”–> yang dibuang adalah pemisahan data byte MSB dan byte LSB karena dalam application note IE, data temperature dikirim ke komputer secara 8 bit bergantian.
      Trus menambahkan rumus konversi data menjadi data temperature dan kelembapan dibagian main program karena dalam AN IE rumus tersebut ada pada program delphi di komputer serta membuang program transmit UART.

      kalo untuk simulasi proteus saya belum pernah coba tapi kata mbak izma diatas dy berhasil di simulasi proteus. coba kontak beliau untuk simulasi di proteusnya.

        • Imamneo
        • July 21st, 2011

        pnya saya berbanding terbalik dengan mbak izma. alhamdulillah coba di lcd tidak ada masalah. boleh tanya lagi, kalau menghubungkan dengan komputer via serial, program yang perlu ditambahkan pada saat menerima perintah dari komputer dan mengirimkannya kembali secara realtime sperti apa ya mas coys, saya sudah coba masih gagal. maaf neh mas ngrepotin…

  9. Imamneo :
    pnya saya berbanding terbalik dengan mbak izma. alhamdulillah coba di lcd tidak ada masalah. boleh tanya lagi, kalau menghubungkan dengan komputer via serial, program yang perlu ditambahkan pada saat menerima perintah dari komputer dan mengirimkannya kembali secara realtime sperti apa ya mas coys, saya sudah coba masih gagal. maaf neh mas ngrepotin…

    maksudnya selain ditampilin di LCD mau ditampilin di komputer juga ta,,,
    kalo sistem komunikasinya hanya 1 arah dari mikro ke PC cukup menambahkan program kirim serial…
    sudah coba program yang dari AN 143 dari IE,,,????
    kalo yang dari AN 143 itu pembacaan sensor ditampilkan di komputer via serial secara realtime…

      • Imamneo
      • July 22nd, 2011

      ya itu yg saya mksud, nggak hanya di lcd, dikomputer juga dtampilin, tapi tunggu kontrol perintah dari komputer baru mengirim serial, oya mas klo perintah ‘portopen’ pada program vb, data biner yang dikirim bernilai apa ya.? tlong dibantu ya…
      AN143 saya coba dulu mas coys…

      • kalau ingin sistem komunikasi mikro-PC nya bersifat duplex sebaiknya pakai Receiver Interrupt agar tidak miss dalam timing program dan perintah dari PC pd mikro untuk mengirimkan data temp dan kelembapan dibuat kode ja misal perintah 1 untuk mengirimkan data temp dan 2 untuk mengirimkan data kelembapan…

        tapi perlu diperhatikan bahwa data temp dan kelembapan dari sensor beresolusi masing-masing 14 bit dan 12 bit sedangkan pengiriman data via serial max 9 bit, so data tersebut harus dibagi menjadi dua bagian yaitu 8 bit MSB dan 8 bit LSB,,,,
        jadi untuk satu data temp/humidity terjadi 2 kali pengiriman data yaitu data MSB dan LSB,,,

        untuk contoh program membagi menjadi 2 data tersebut sbb(potongan listing program AN143 IE):

        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ………………………………………………….
        DataRead = DataTempSHT;
        DataRead >>= 8; //mengambil 8 bit data MSB
        delay_ms(100);
        DataTRX = DataRead; //kirim MSB pada buffer TX
        Transmitte(); //kirim serial data MSB yg terdapat di buffer

        DataRead = DataTempSHT;
        DataRead &= 0xFF; //mengambil 8 bit data LSB
        delay_ms(100);
        DataTRX = DataRead;
        Transmitte();
        …………………………………………………….
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        sorry untuk program vb ato delphi q kurang begitu paham…

    • Imamneo
    • July 23rd, 2011

    terima kasih mas, saya udah mulai agak paham, alhamdulillah ini sangat membatu saya, yang gak saya paham dari potongan listing program AN143 sbb:

    …………………………………………………..
    …………………………………………………..

    void Transmitte (void)
    {
    unsigned char UCSRATemp;
    Wait4ClearedUDRE:
    UCSRATemp = UCSRA;
    UCSRATemp &= 0b00100000;
    if(UCSRATemp == 0b00100000) <—— fungsi data biner ini ???
    {
    delay_ms(100);
    UDR = DataTRX; //Send a character in var dataTR
    }
    else goto Wait4ClearedUDRE;
    }

    …………………………………………………..
    …………………………………………………..

    UCSRA_Temp = UCSRA;
    UCSRA_Temp &= 0x80;
    if (UCSRA_Temp == 0x80) <—— begitu jg fungsi data hexa ini ???
    {
    ……………………………………………………
    …………………………………………………..

    tolong dibantu lagi ya gan…???

  10. Imamneo :
    UCSRATemp = UCSRA;
    UCSRATemp &= 0b00100000;
    if(UCSRATemp == 0b00100000) <—— fungsi data biner ini ???
    {
    delay_ms(100);
    UDR = DataTRX; //Send a character in var dataTR
    }
    else goto Wait4ClearedUDRE;
    }

    UCSRA adalah kontrol dan register status dari uart. Nilai biner 0b00100000 berfungsi untuk memastikan bahwa buffer TX/RX data serial (UDR) dalam kondisi siap. Dengan nilai biner tersebut untuk mengkondisikan buffer kosong dan siap untuk mengirim data serial

    …………………………………………………..
    …………………………………………………..
    UCSRA_Temp = UCSRA;
    UCSRA_Temp &= 0×80;
    if (UCSRA_Temp == 0×80) <—— begitu jg fungsi data hexa ini ???
    {

    sedangkan nilai 0x80 untuk memastikan bahwa buffer telah menerima data serial secara komplit dari perangkat lain (PC). jadi jika data yang diterima belum komplit maka penerimaan terus dilakukan hingga data yang di terima komplit dan siap untuk di baca…

    • Imamneo
    • July 25th, 2011

    terima kasih atas penjelasannya mas coys, klo ada contoh program serial interrupt, tolong y kirim ke em@il saya: istn.imam@gmail.com, salam kenal, dan semoga blog ini bisa bermanfaat bwt orang banyak… amiiin

    • visya
    • August 5th, 2011

    mas ,
    tadi saya lihat comment mas kalau mas ada menyisipkan program PID .
    itu bagian mana ya mas ?
    mksi

  11. visya :
    mas ,
    tadi saya lihat comment mas kalau mas ada menyisipkan program PID .
    itu bagian mana ya mas ?
    mksi

    program PID nya saya hapus dri program yang saya lampirkan ini karena pembahasan ini lebih khusus tentang pembacaan SHT11..
    emang kenapa…??

    • mastakon
    • August 6th, 2011

    mas minta klo rangkaian 7805 transistor tu diganti tip3055 bisa mas

      • coys
      • August 9th, 2011

      untuk regulator coba di cek disini:
      https://mail.google.com/mail/?ui=2&ik=ee8d5c8f81&view=att&th=131236f9e863647f&attid=0.1&disp=inline&realattid=f_gq28xrj40&zw

  12. Mas, Saya Tanya.. Itu listing program SHT11.c nya dipake di code vision khan dan udah berhasil khan?trus saya minta rangkaian 7805+dioda zener nya mas..Ini email saya junaedi.adi@gmail.com

  13. Ini saya mau sharing program koneksi USART yang pernah saya buat dan sudah berhasil dicoba di proteus dan hardware:

    http://www.4shared.com/file/IOMeYC3b/Test_pake_Getchar.html
    http://www.4shared.com/file/mFPpDnQm/Test_pake_Interrupt.html

    bedanya,kalau getchar itu eksekusi programnya berada pada program utama,dan menunggu hingga dikirimkan karakter oleh Komputer.
    Jadi jika komputer tidak mengirimkan karakter, maka program tidak akan berjalan.

    • thanks atas sharingnya…
      semoga membantu teman2 yang masih bingung n belum berhasil dengan komunikasi uart…

    • mastakon
    • August 13th, 2011

    gmna cara tau sht tu bgus ato ngak?

    • wah kalo itu saya juga bingung gmn nentuin bagus ato tidaknya…
      paling tidak kalo sht itu sudah bisa nampilin data temperature dan kelembapan berarti satu step terjawab bhw sht masih bgus n berfungsi…

      untuk step selanjutnya tinggal lihat tingkat akurasi temp dan humidity dari sensor tersebut jika di bandingkan dengan alat pengukur suhu dan kelembapan standart yang telah ada. Jika nilainya hampir sama berarti sht tersebut masih bagus n layak digunakan.

  14. mas coys, saya boleh minta no telpnya? ada yang mau saya tanyakan seputar sht 11 mas..
    kirim ke email saya ya mas…
    thanks

    • mastakon
    • August 17th, 2011

    kenapa pembacaan sensor gak sama dengan termometer?

    • yudistira
    • August 23rd, 2011

    salam semuanya,..
    sy lgi belajr ni mohon di bantu
    sya menggunakan board MA-8535 keluaran creative vision dan modul SHT11 dari IE,
    mau tanya ni kenapa sya tidak bisa melakukan komunikasi serial dengan kompi padahal sya sudah mengikutinya dengan benar tetapi hanya berbeda di DT-AVR Low Cost
    Micro System saya ganti dengan MA-8535 dari CV,
    apa kah sesepuh disini bisa bantu,..
    tolong pencerahanya..

    thanks

    • yudistira
    • August 23rd, 2011

    minta link baru program lengkap SHT11 dong,..
    yang di atas dah ga bisa di download,..

    • link diatas masih bisa kok untuk download,,,
      kalo problem dengan chrome coba pakai firefox…
      cuma program yang saya sertakan diatas menampilkan nilai temp dan humi pada display LCD bukan pada komputer…
      kalo yang display di komputer bisa merefer ke application note IE yang asli (AN143)….

      sebenernya DT-AVR Low Cost
      Micro System diganti dengan MA-8535 dari CV tidak jadi masalah mungkun saja settingan ada yang salah…
      apakah anda sudah memastikan bahwa komunikasi uart antara mikro dengan PC lancar..??

      jika lancar kemungkinan terjadi kesalahan pin I/O dari sensor thd MA-8535 atau problem pada sensor itu sendiri (bisa jadi supply daya untuk sensor kurang besar seperti yang terjadi pada saya dan rekan2 yang lainnya diatas)…

    • yudistira
    • September 7th, 2011

    mas coys mautanya lgi ni,..
    setelah di coba pada kasus lain untuk komunikasi serial bisa menggunakan MA 8535,..
    tapi pas pake program bawaan IE tidak bisa, setelah di cari” kemungkinan berbeda kristal yang di gunakan jadi nilai UBRRL kemungkinan berbeda

    klo mas pake kristal berapa MHz ya? sya sendiri pakai 8.000MHz,..
    maaf banyak tanya maklum baru belajar mikro,..

    • wah q lupa pake kristal yang berapa…
      kayaknya c sama dengan yang dari IE…
      Kalo cuma beda di kristal berarti tinggal edit code bagian usartnya itu tadi…

    • yudistira
    • October 10th, 2011

    mas mau tanya lagi ni,..
    programnya untk LCDsudah sya coba dan bisa,..
    skarang sya mau mencoba di serial kan ke komputer untuk di baca di program terminal. nah yg mau sya tanya di bagian mana sya harus letakan konversi suhu dan RH nya? agar terbaca nilai relnya di program terminal.
    terimakasih.

    • seperti yang dicontohkan dalam program dari IE, rumus konversinya di letakkan dalam program di PC nya so kita tidak bisa menampilkan langsung nilai temp dan RH di terminal (kita hrus buat program serial yang dirancang khusus untuk tampilkan nilai temp dan RH seperti program delphi pada IE). Hal ini karena data temp dan RH dari sensor berukuran 13 bit sedangkan komunikasi serial mikro-PC hanya berukuran max 9 bit untuk satu kali kirim so harus ada program buffer pada PC untuk menampung data yang harus dikirim dua kali tersebut baru data tersebut dapat diolah.

    • yudistira
    • October 18th, 2011

    mas, punya contoh program suhu&kelembabnya g?
    pakai aktuator apa saja?

    • yudistira
    • October 18th, 2011

    mas boleh minta contoh program kendali suhu&kelembabnya g?
    pakai aktuator apa saja?
    kirim ke email ya.
    thanks b4

    • maksudnya program kayak pa ya,,,???
      kalau untuk sistem kendali, program yang saya lampirkan diatas tinggal di olah dan di beri output untuk kontrol aktuatornya,,,
      aktuator bisa apapun ja sesuai kontrol apa yang kita inginkan,,,

    • charis
    • October 26th, 2011

    Mas,minta bantu tuk kirim konfigurasi rangkaiannya ke email : fs43_chris@yahoo.co.id

    • saya rasa g ada rangkaian khusus antara sht11 dengan mikrokontroler.
      kita cukup menghubungkan scl dan sda dari sht11 ke mikro (scl dan sda) sesuai settingan kita pada program.

    • Wisnu Aji
    • November 18th, 2011

    mas coys, minta rangkaian 7805-transistornya dnk. sy googling tp kok pas dicoba keluaran ttp sama kayak inputan 7805. problemnya sama nih, ttp kebaca 2f

    wisnuajiatmoprawiro@gmail.com

    • yudistira
    • December 2nd, 2011

    MAS COYS mau tanya lagi ni,..
    kalo nilai datanya kalau nilainya mau sya rubah tidak dalam bentuk float atau koma, ingin sya rubah dalam bentuk bulat atau integer.
    bagai mana ya?
    sya sudah coba mengganti nilai %0.2f menjadi %d dan menghapus (float) pada perhitungan nilai sensornya,.
    tapi tidak menghasilkan,..mohon pencerahanya🙂
    terimakasih

    • kalo hanya mengganti %0.2f dengan %d doang tanpa menghapus float pada perhitungan dan fungsi lainnya bisa g,,,???
      lo g salah %d itu otomatis convert untuk display di LCD dan menghapus nilai di belakan koma,,,

    • riskyateng
    • March 1st, 2012

    mas saya mau tanyak, hasil dari sensor sht 11 mau saya masukkan ke VB 6, gmn kira2 program atau caranya?
    terima kasih sblmx.

      • coys
      • March 3rd, 2012

      program sht nya ditambah komunikasi UART dan data sht dikirim secara dua kali(data1 dan data2) ke PC karena resolusi data uart paling besar 9 bit sedangkan data sht 13 bit, Untuk itu di program VB perlu di buat buffer untuk menampung data pertama dan kemudian digabungkan kembali dengan data kedua untuk kemudian diolah secara rumus untuk mendapatkan nilai temp dan humidity.

    • yourda
    • March 16th, 2012

    mas syya mau nanya… sya udah pke coding dari mas untuk mnampilkan sensor sht11 ke lcd,tp kok nilainya di lcd kok gak mau brubah ya mas,tetep rh ama temp nya gak brubah… pdahal sudah sesuai prosedur lho… itu kira2 apanya ya mas…????

    mhon bantuannya sampean cek apa ada kslahan kodenya mas…

    #include
    #include

    klo kurang jlas ntar sya kirim ke emaile sampean mas… bleh minta alamat emailnya mas???
    #include
    #include

    #asm
    .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include

    sfrb PORTA=0x1b;
    sfrb PINA=0x19;
    #define SDAOut PORTA.0
    #define SDAIn PINA.0
    #define SCLK PORTA.1
    #define out PORTB.0
    #define pompa PORTD.7

    // Declare your global variables here
    unsigned char TimeOut,AckBit; //Ackbit : ‘0’ (ACK), ‘1’ (NOACK)
    unsigned int DataTempSHT,DataRHSHT,DataRead;
    float RH,Temp;
    char suhu[8],kelembapan[8];

    /*Membuat kondisi “start” ke SHT11 (“Transmission Start” sequence)
    _____ _____
    ShtData |_______|
    ___ ___
    ShtClock ___| |___| |___
    Clock 1 2 */
    void StartSignal (void)
    {
    unsigned char DDRATemp;
    DDRATemp = DDRA;
    DDRA |= 0x01; // PortA.0 sbg Output
    SDAOut = 1;
    SCLK = 0;
    SCLK = 1; //Clock pertama
    SDAOut = 0;
    SCLK = 0;
    SCLK = 1; //Clock kedua
    SDAOut = 1;
    SCLK = 0; //Pin Clock = ‘0’
    DDRA = DDRATemp;
    }

    //Reset komunikasi: 9 clock cyle dengan ShtData ‘1’, lalu kondisi start
    void ResetSHT (void)
    {
    unsigned char i,DDRATemp;
    DDRATemp = DDRA;
    DDRA |= 0x01;
    SDAOut = 1;
    SCLK = 0;
    for (i=0; i measure OK)
    void SHTWait (void)
    {
    unsigned char i,DDRATemp;
    DDRATemp = DDRA;
    DDRA |= 0x01;
    SDAOut=1; //Pin ShtData sebagai input
    DDRA &= 0xFE;
    for (i=0; i pengukuran selesai
    if (TimeOut==0) goto ExitSHT_Wait;
    delay_ms(1);
    }
    ExitSHT_Wait:
    DDRA = DDRATemp;
    }

    // Transmit Data dan ambil bit Acknowledge
    void SHTWriteByte (unsigned char data)
    {
    unsigned char i,DDRATemp;
    DDRATemp = DDRA;
    DDRA |= 0x01;
    for (i=0; i>7)==1) SDAOut = 1; //Kirim MSB first
    else SDAOut = 0;
    SCLK = 1; //Kirim Data (ShtClock rising edge)
    SCLK = 0;
    data <<= 1; // geser data kekiri 1 bit
    }
    SDAOut = 1; //Pin ShtData sebagai input
    SCLK = 1;
    DDRA &= 0xFE;
    AckBit = SDAIn; //Ambil sinyal acknowledge
    SCLK = 0;
    DDRA = DDRATemp;
    }

    //Receive Data dan kirim bit "AckBit" ('0' untuk ACK atau '1' untuk NACK)
    void SHTReadByte (void)
    {
    unsigned char i,DDRATemp;
    DataRead = 0x00;
    DDRATemp = DDRA;
    DDRA |= 0x01;
    SDAOut = 1; //Pin ShtData sebagai input
    DDRA &= 0xFE;
    for (i=0; i<8; i++)
    {
    DataRead<<=1;
    SCLK = 1;
    DataRead |= SDAIn; //Ambil Data (MSB first)
    SCLK = 0;
    }
    DDRA |= 0x01;
    if (AckBit==1) SDAOut = 1; //Kirim Noacknowledge
    else SDAOut = 0; //Kirim Acknowledge
    SCLK = 1;
    SCLK = 0;
    SDAOut = 1; //Pin ShtData sebagai input
    DDRA = DDRATemp;
    }

    // Pembacaan Temperature dari SHt11
    void SHTReadTemp (void)
    {
    StartSignal();
    SHTWriteByte(0x03); //Command Measure Temperature
    if (AckBit==0)
    {
    SHTWait(); //Tunggu sampai pengukuran selesai
    if (TimeOut==0)
    {
    AckBit=0; //Kirim ACK untuk menerima byte berikutnya
    SHTReadByte(); // Ambli Byte MSB
    DataTempSHT = DataRead;
    DataTempSHT <<= 8;
    AckBit=1; //Kirim NACK untuk mengakhiri pengambilan data
    SHTReadByte();
    DataTempSHT |= DataRead; //Ambil byte LSB

    DataRead = DataTempSHT;
    }
    }
    }

    void SHTReadHumidity (void)
    {
    StartSignal();
    SHTWriteByte(0x05); //Command Measure Humidity
    if (AckBit==0)
    {
    SHTWait();
    if (TimeOut==0)
    {
    AckBit=0;
    SHTReadByte();
    DataRHSHT = DataRead;
    DataRHSHT <= 4.0)
    {
    pompa = 0; //pompa nyala karena relay tidak diberi arus
    }
    else
    {
    pompa = 1; //pompa mati karena relay diberi arus
    }

    delay_ms(1000); //delay 1 ms untuk mengambil data berikutnya

    }
    }

    • kirim ke email ja source program lengkapnya. ini email saya coys.jrux@gmail.com

    • roni
    • April 11th, 2012

    mas mau tanya, aku kan pake sht11 jg. kan ak pake mode temperature 12bit sama humidity 8bit.. lha koq ak masukin koding untuk konversi humidity ke LCD sebagai berikut (sesuai datasheet)

    unsigned int getHumd(void)
    {
    unsigned int temp;
    int s1,s2,s3;

    unsigned char data;

    data = shtRead(HUMD)&0xff;
    s1= data*648/1000;
    s2= data*data;
    s3= -72/100000;
    temp= s1+(s2*s3)-4;
    return temp;
    }

    tp koq ga bisa ya mas??keluarannya malah ngaco, masa kelembapannya 0.01%,makasih sebelumnya mas

    • coba variable selain data di ubah float soalnya perhitungan tersebut melibatkan nilai desimal yang tidak bisa diabaikan.

    • andy
    • April 22nd, 2012

    mas minta bantuannya….
    saya mau bikin pengukur suhu dan kelembaban….
    minta scrip programnya dong…
    kirimin ke randyputra1991@yahoo.com
    tolong y mas….

    • riskyateng
    • May 4th, 2012

    mas mau tanyak, untuk mengkalibrasi kelembaban SHT11 gmn ya? karena saya bandingkan dengan alat ukur kelembaban kok tdk sama?
    ap rumusnya diganti?
    terima kasih sebelumnya…

    • setahu saya sht11 adalah sensor Temp & RH yang di klaim oleh pembuatnya (sensirion) sebagai sensor yang tak perlu di kalibrasi karena sudh pas. tapi kalo tidak sama cb otak atik di rumusnya ja…

    • arwanjer
    • May 17th, 2012

    Mas mau tnya, cara menampilkan pembacaan SHT11 pada vb 6.0 gmna ya?

    • saya kuramg paham tentang vb..
      i’m sorry,,,

  15. Salam semua, post bagus nih!
    Kebetulan baru beli SHT11 modul nih buatan IE, niatnya mau diprogram pakai MikroAvr, downloadernya codevisionAvr trus datanya ditampilin ke LCD.
    kira-kira agan coys dimana saya bisa donload source c yg lengkapnya?
    or buat kawan yang punya sorcenya tlg bantuanya kirim kesaya di kurniawan@belidomain.web.id
    Trims nih sebelumnya.

    • coba cek link source code diatas. semoga bermanfaat.

        • yourda
        • June 2nd, 2012

        mas…. mau nanya lage…… saya udah pke source code dari atas tapi punya saya kok ditampilannya LCD temp nya kok suhunya diatas 600 C trus mas ya??dan juga RH nya diatas 80 %,bisa naik tapi kok gk bisa turun,kira2 apanya ya coys???mohon bimbingannya?????
        trima kasih…

    • bulan
    • May 31st, 2012

    klo blh nanyak ..mrogram sht 11 sama dht 11 pa bedanya??
    ada yg punya referensi kah dht 11 ??? plisss

    • sekilas saya melihat wiring diagramnya bisa dipastikan pemrogramanya berbeda karena sht11 menggunakan 2wire tp entah dht11,,,
      belum pernah coba karena dulu ketika masih bergelut dgn mikro, kayaknya dht11 belum beredar dipasaran atau saya belum mengetahui kalo da sensor dht11 ni…😀

    • yourda
    • June 2nd, 2012

    mas…. mau nanya lage…… saya sudah pakai source code dari atas, tapi punya saya kok ditampilannya LCD temp nya kok suhunya diatas 600 C trus mas ya??dan juga RH nya diatas 80 %kok gk bisa turun,kira2 apanya ya coys???mohon bimbingannya?????

    • supply tegangan ke sensornya berapa volt dan arusnya berapa…??

    • naila
    • June 6th, 2012

    iya ni, aq jg bngung dht11 paka cvavr, lo g kbrtan, kpn” posting y mas..

      • bulan
      • June 8th, 2012

      naila pake dht 11 ?? aq TA juga pake DHT 11 di cvavr,,bisa sharing2 yukk emailku bubunudnud@ymail.com

    • bulan
    • June 8th, 2012

    mas ada contoh program dht 11 di cvavr gak mas??? #bingung

    • wah, q kagak ada devicenya buat coba coz alat2q di tinggal di kampung,,,
      kalo da yang bersedia minjamin device nya kin bisa saya bantu ujicoba…😀

    • bekti
    • July 19th, 2012

    mas, listing programnya itu kalau di.compile di Code AVR versi 2.05 kok bnyak errornya ya..??? apa listing progrmanya itu cma bsa di compile di Code Avr yang mas buat..?
    trimz…

    • seharusny tidak masalah…
      bisa dilampirkan disini errornya apa…??

    • gondol
    • August 8th, 2012

    mas kalau sda = pin b.6 dan scl=pin b.7
    sfrb nya gmana?
    bisa dijelasin juga.
    trimz

    • Silahkan merujuk ke “Register Summary” di datasheet mikrokontroler yang anda gunakan. Disana disebutkan secara lengkap alamat dari register2 mikrokontroler.

  16. mas kalo temp nya 0 berarti kurang daya ya dia…
    saya nyoba nol terus😦

      • dugas
      • August 11th, 2012

      coba kurangin daya yang masuk,apabila menggunakan regulator 7805 tegangan yang masuk sekitar 7 volt,karena tegangan vdd berpengaruh

    • ya, kemungkinan dayanya kurang…

    • Jurry
    • September 3rd, 2012

    nais inpo gan…
    Mas Coys, setelah saya coba kok keluaran RH= -4.00 dan suhu= 615.36 ya? programnya cuma diubah LCD di port B doang. Mohon pencerahannya….

    • settingan float nya sudah diaktifin…??
      (project->configure->C compiler
      point “(s)printf feature” diubah menjadi “float,width,precision”)

      kalau masih tetap saja bisa kirim source code programnya ke email saya nanti akan saya bantu cek.

    • eko
    • October 24th, 2012

    gan proteus seri berapa yang ada component SHT11 nya gan? terima kasih

    • wah,,,
      saya ga tahu gan,,,
      ane belum pernah pakai proteus…

    • wisnu
    • November 3rd, 2012

    mas coys kasus saya sama seperti Jurry, tampilan d lcd RH=-4.00 dan temp=615.36, setting floatnya juga sudah di aktifkan..
    mohon bantuannya..

    • coba tampilkan data hasil pembacaan dari sht11 saja (DataRead) baik yang Temp maupun RH tanpa konversi menggunakan rumus terlebih dahulu. so main programnya di ganti spt berikut:

       SHTReadHumidity();
       RH=DataRead;
       ResetSHT();
       SHTReadTemp();
       Temp=DataRead;
       ResetSHT();
       lcd_clear();
       lcd_gotoxy(0,0);
       lcd_putsf(" RH  Temp");
       lcd_gotoxy(0,1); 
       sprintf(buf,"%d %d",RH,Temp);
       lcd_puts(buf);
       delay_ms(1000);

      kalau seandainya memiliki nilai tertentu berarti penggunaan rumus untuk konversi terjadi kesalahan.

        • wisnu
        • November 8th, 2012

        hasilnya menjadi RH 0, Temp 0,
        saya menggunakan port B sebagai LCD,
        PINC.0 sebagai data dan PINC.1 sebagai scknya..

  17. wisnu :

    hasilnya menjadi RH 0, Temp 0,
    saya menggunakan port B sebagai LCD,
    PINC.0 sebagai data dan PINC.1 sebagai scknya..

    mau pakai port mana saja tidak jadi masalah asal inisialisasi untuk TWI benar.
    Dari hasil tersebut menandakan mikrokontroler belum berhasil berkomunikasi dengan SHT11. Kemungkinan terjadi kesalahan di programnya atau koneksi mikro thd sht11 yang kurang bagus. Jika semua itu di pastikan sudah OK, kemungkinan terakhir adalah sensornya rusak.

    • bian
    • November 13th, 2012

    salam kenal mas coys🙂
    saya dapat problem pembacaan sht11 mirip seperti wisnu dan jurry,. tapi setelah saya ganti main programnya tanpa konversi rumus, pembacaan RH & Temp jadi 1600an nilainya,.
    untuk programnya saya hanya mengganti tampilannya saja ke hyper terminal

    • oy ada yang kelupaan,,,
      boleh tau rangakaian regulator yang kalian gunakan untuk sistem minimum dan untuk sensor sht11 nya sendiri bagaimana…??
      soalnya dari rekan2 yang komen sebelumnya ada yang karena power supplynya yang kurang memenuhi daya konsumsi dari sensor itu sendiri.

    • okbro
    • November 27th, 2012

    mas sht11 untuk mengukur kadar air biji-bijian bisa gk mas??
    terimakasih

    • wah kurang paham saya jika digunakan pada biji2an. Mungkin bisa tapi tidak akurat karena pembacaanya berdasar pada udara sekitar bukan lansung pada biji2an tersebut.

    • andre
    • December 7th, 2012

    mas tolong minta skema proteusnya dong mas, mau saya lihat skemanya. tolong y. email saya anantaandre332@yahoo.com

    • saya tidak punya versi proteusnya mas. mungkin mas bisa minta ke rekan2 yang menggunakan proteus yang komen diatas.

    • ade
    • April 7th, 2013

    kirim ke email saya bluesky.dragron@gmail.com

      • ade
      • April 7th, 2013

      yang ada contoh pidnya yaa mas

  18. mas, utntuk menstabilkan suatu temperatur dan kelembaban pada tanaman khusus tidak terlalu panas dan dingin, kalau untuk menambahakn pemanas dan kipas? misalkan port D.0 dan PortD.1 sbg output.

    • Bisa…
      Cukup dengan menambahkan kontrol output untuk heater dan kipasnya. Kontrolnya bisa menggunakan kontrol PID atau fuzzy agar kestabilan temperaturnya bagus.

  19. oh, seperti driver kah?
    untuk heater, hairdryer kan AC arus, bagaimana mengakali heater untuk arus DC? pakai apa?
    maaf nih OOT

    • kalau driver sudah pasti dibutuhkan karena output mikro tidak baik jika dipakai langsung pada beban. maksud saya dengan kontrol itu adalah sistem pengontrolan untuk mendrive driver agar temperatur yang diinginkan bisa stabil.

    • apri
    • April 26th, 2013

    bgaimana ya mas kalau nilai temperatur dan kelembabannya agar dapat ditampilkan pada komputer??

    • Kalau ingin menampilkan temp dan kelembapan di komputer cukup menambahkan program serialnya untuk transfer data ke PC. Namun ada beberapa notie yaitu data temp dan kelembapan dari SHT beresolusi 13 bit jadi pengiriman pada PC displit jadi dua kali transfer. Selain itu di PC dibuat program khusus untuk membaca data yang dikirim dari mikrokontroler yang kemudian diolah dengan rumus konversi temp dan kelembapan untuk mendapatkan nilai temp dan kelembapan tersebut. Untuk program di PC bisa di buat dengan pemrograman delphi, VB atau lainnya. Untuk lebih detai cara nampilkan nilai temp dan kelembapan pada PC bisa dilihat di application note innovative electronic AN143. Untuk artikelnya cek disini dan untuk contoh program cek disini. Semoga bisa membantu😀

  20. maaf mas saya mau tanya
    kalau saya ingin menggunakan port A 7 dan 8 sebagai clock dan data
    apa yang harus saya ganti2 mas di list programnya?
    terima kasih mas

    • banyak yang perlu diganti diantaranya:

      #define SDAOut PORTA.0
      #define SDAIn PINA.0
      #define SCLK PORTA.1

      menjadi

      #define SDAOut PORTA.7
      #define SDAIn PINA.7
      #define SCLK PORTA.8

      trus

      DDRA |= 0x01;
      DDRA &= 0xFE;

      menjadi

      DDRA |= 0x40;
      DDRA &= 0xBF;

      dst

      • mas untuk kode
        0x01 di ganti menjadi 0x40 apakah ada datanya untuk setiap port?
        atau gimana mas
        kurang paham mas
        makasih mas

        saya mau buat sensor suhu dan kelembaban yang terintegrasi dengan heater yang diaktifkan oleh relay, jadi apabila terdeteksi kelembaban kurang dari 14% heater aktif apabila lebih dari 14% heater nonaktif
        itu seperti apa yah mas?
        apa asaja yg harus diatur

        saya menggunakan relay di port B0 mas

        terimakasih
        mohon bantuannya yah mas

      • mas mau tanya lagi
        settingan ini mempengaruhi penggantian port data dan sck gak mas?
        terimakasih
        ditunggu balesannya mas

  21. gan.. bisa bantu ane dg permasalahan DHT11 gak? semua detail penjelasan wiring & sketch ada disini :
    http://arduino.cc/forum/index.php/topic,159428.msg1233594.html

    mohon batuannya gan, terima kasih

    • Mengalami kesulitan dimananya gan,,,???bisa dijelasi lebih detail….
      Dalam hal program, saya belum pernah mencoba sensor ini dan tidak memiliki hardware nya so mungkin sy hanya bisa bantu cek program yang agan buat menyesuaikan sistem komunikasi yang dibutuhkan sensor tersebut jika itu menyangkut masalah program sensor tersebut.

  22. Deny Akbar :

    mas untuk kode
    0×01 di ganti menjadi 0×40 apakah ada datanya untuk setiap port?
    atau gimana mas
    kurang paham mas
    makasih mas

    nilai itu digunakan untuk menentukan port tersebut sebagai input atau output. Nilai itu merujuk pada port yang digunakan sebagai port dari scl dan sda. Karena anda menjadikan portA.7 sebagai scl maka port tersebut diset sebagai output dengan memberi nilai 0x40 pada DDRA. Saran saya setting hardware anda mengikuti program ini terlebih dahulu untuk memastikan sensor berjalan lancar terlebih dahulu. jika telah berjalan baru anda setting sesuai dengan setting yang anda inginkan karena seperti yang sudah dialami rekan2 yang komen sebelum anda, dengan setting hardware sesuai program ini sensornya belum bisa berjalan entah karena problem hardware atau lainnya. hal ini hanya untuk mempermudah saya membantu anda dalam mentrace jika sensor tidak bisa berjalan yang disebabkan oleh hardware problem atau salah pin i/o hardware karena program yang saya contohkan ini telah berhasil dialat saya dan rekan2 yang lainnya.

    saya mau buat sensor suhu dan kelembaban yang terintegrasi dengan heater yang diaktifkan oleh relay, jadi apabila terdeteksi kelembaban kurang dari 14% heater aktif apabila lebih dari 14% heater nonaktif
    itu seperti apa yah mas?
    apa asaja yg harus diatur

    saya menggunakan relay di port B0 mas

    terimakasih
    mohon bantuannya yah mas

    Ini hanya tinggal menambahkan program case conditonal dan sistem kontrol terhadap heater tersebut entah menggunakan sistem kontrol classic (on/off), kontrol PID ataupun dengan kontrol fuzzy logic.

    • Yudhi
    • May 19th, 2013

    Mantap sekali ini mas coys, saya lagi dalam proses pmbuatan modul alat ukur make sht11 ini…

    trus berkarya mas coys😀

    Mas ad yg saya tnyain nih udah saya email kok ke mas coys, mohon bantuannya ya😀

  23. Deny Akbar :

    mas mau tanya lagi
    settingan ini mempengaruhi penggantian port data dan sck gak mas?
    terimakasih
    ditunggu balesannya mas

    Settingan program tersebut otomatis mengikuti wiring dari hardware so jika wiringnya (port yang digunakan) dirubah maka program harus dirubah.

    • mas mau tanya lagi pengaruh kelembaban dengan suhu itu gimana mas?
      semakin besar nilai suhu semakin kecil nilai kelembaban
      semakin kecil nilai suhu semakin besar nilai kelembaban
      bener seperti itu kan mas?

      • Kurang lebih seperti itu.

  24. mas saya mau tanya
    kalo saya mau ganti untuk PORT B gimana mas?
    inisialisasi PORTnya?
    untuk deklarasi ini bagaimana mas?
    ini kan untuk PORTA mas

    sfrb PORTA=0x1b;
    sfrb PINA=0x19;

    untuk di PORTB bagaimana mas?
    terimakasih mas

    ditunggu balesannya yah mas

    • Jika ingin merubah dari port A ke port B maka yang dirubah diantaranya merubah semua DDRA menjadi DDRB dan merubah register

      sfrb PORTA=0x1b;
      sfrb PINA=0×19;

      menjadi

      sfrb PORTA=0x18;
      sfrb PINA=0×16;

      Mengenai detail tentang register silahkan mengecek disini

  25. Kasus saya sama seperti yg pernah di post yaitu RH=-4.00 dan Temp=615.36..
    oh ya mungkin rekan2 ada yg ingin mecoba dahulu simulasi menggunakan proteus ini contoh rakngakainya, tolong dibantu ya apabila menemakan masalahnya,

  26. maaf mas mau tanya lagi nih, tentang penjelasa program yang bagian ini:

    //Reset komunikasi: 9 clock cyle dengan ShtData ‘1’, lalu kondisi start
    void ResetSHT (void)
    {
    unsigned char i,DDRATemp;
    DDRATemp = DDRA;
    DDRA |= 0x01;
    SDAOut = 1;
    SCLK = 0;
    for (i=0; i<=8; i++)
    {
    SCLK = 1; //Kirim Data (ShtClock rising edge), 9 kali
    SCLK = 0;
    }
    StartSignal(); //Transmission Start
    DDRA = DDRATemp;
    }

    maksudnya 9 clock cycle itu apa ya dan kenapa?
    maaf nih terlalu mendetail pertanyaanya.. hehe

    • Maksudnya adalah 9 siklus clock (high-low sebanyak 9 kali). Itu adalah prosedur reset dari SHT11. Silahkan merujuk pada datasheet berikut pada poin 2.2.5 Connection Reset Sequence.

    • pinastiko ilham
    • July 7th, 2013

    mas, saya ingin tanya. kenapa pada program saya semua “SDAOut” pada codevision avr tertulis error ya mas.? mohon pencerahannya.😀

    • kemungkinan SDAout tidak di define atau diinisialisali baik di global variable maupun di local variable.
      kalau menggunakan program yang saya lampirkan pada artikel ini pastikan inisialisasi ini ada di bagian awal program.

      #define SDAOut PORTA.0
    • gammaadity
    • July 27th, 2013

    mas sensor saya nilai tempnya kq gede ya? 635
    apa ada masalah di hardware ato program?
    mohon bantuannya y mas, lagi ngerjain skripsi neh😦

    • coba cek dulu data yang di baca dari sht nya sebelum dikonversi ke temp dan RH menggunakan rumus untuk memastikan nilainya sesuai (dalam range 0-14 bit). Khawatirnya proses konversinya yang salah.

    • Riefa
    • August 4th, 2013

    mas, pembacaan kelembaban di lcd -40.0 sedangkan suhu -4.0, setelah didiamkan beberapa saat hanya muncul lembab nya – (min)
    padahal sudah saya tambahkan daya dengan dengan 7805 / pul up resistor.. mohon bantuanya mas..

    • maksudnya tambahkan daya dengan 7805/pull up resistor bagaimana ya??
      port yang digunakan untuk komunikasi TWI nya por berapa??

    • Riefa
    • August 6th, 2013

    tambahan daya untuk sensornya mas maksudnya, dengan IC 7805.
    TWI apa mas? port A0 dan A1 sbg data dan clk..

    • Kalau boleh tahu rangkaian regulatornya jadi seperti apa?
      Karena dalam ulasan saya diartikel dan dikomentar sebelumnya lebih menyarankan menggukan regulator kombinasi transistor-zener atau transistor-7805 untuk mendapatkan arus yang lebih besar dikarenakan IC 7805 memiliki arus max 1A.

      jika power supplynya sudah menerapkan sistem diatas, coba anda ganti port komunikasi TWI nya (scl dan sda) ke port yang lain misalnya di port B, port C atau port D karena pada kasus lain ada rekan yang sukses setelah ganti port.

    • Riefa
    • August 9th, 2013

    oh begitu ya mas, boleh saya minta rangkaian regulator kombinasi nya?

    ganti port ya? mungkin akan saya coba

    • Berikut contoh rangkaian regulatornya

        • Riefa
        • August 17th, 2013

        wah, makasih mas.
        ini kira2 keluarannya berapa ampere mas?

  27. mas coy, PORTB nya tuh di hubungkan kemana? kan pinnya sensor ada 2 SDA dan SCL
    ini udah tak coba langsung nampilkan DataRead tp kq g kluar nilai nya y? –“

    • Terserah anda tergantung settingan pada program.

    • gamma
    • September 20th, 2013

    mas coys boleh minta alamat emailnya?

    • adnan
    • October 1st, 2013

    mas saya programnya nya udah ngikutin yang ada di web tapi nilainya kok gak berubah RH=-4,00 Temp=-40,00

    • Itu menunjukkan bahwa pembacaan sensor adalah nol. ini bisa jadi karena komunikasi gagal atau sensor bermasalah.

        • adnan
        • October 3rd, 2013

        ini sudah saya cobak dengan sensor baru tpi masalahnya tetep sama dengan yang sebelumnya mohon koreksi programnya ini mas mungkin ada yang salah

        #include //crystal 8MHz
        //#include
        #include
        #include
        #include
        #include

        #asm
        .equ __lcd_port=0x15 ;PORTC
        #endasm
        #include
        //Deklarasi varaibel
        unsigned char buf[33];
        unsigned char error,checksum;
        char inp;

        typedef union
        { unsigned int i;
        float f;
        } value;
        enum {TEMP,HUMI};
        #define DATA_OUT PORTA.6
        #define DATA_IN PINA.6
        #define SCK PORTA.7
        #define noACK 0
        #define ACK 1

        //adr command r/w
        #define STATUS_REG_W 0x06 //000 0011 0
        #define STATUS_REG_R 0x07 //000 0011 1
        #define UKUR_SUHU 0x03 //000 0001 1
        #define UKUR_HUMI 0x05 //000 0010 1
        #define RESET 0x1e //000 1111 0

        unsigned int nilaisuhu[2]={0,0};

        //Untuk menulis data ke SHT11
        char tulis_SHT(unsigned char bytte)
        {
        unsigned char i,error=0;
        DDRA = 0b11000000;
        for (i=0x80;i>0;i/=2) //shift bit
        {
        if (i & bytte)
        DATA_OUT=1;
        else DATA_OUT=0;
        SCK=1; //clk
        delay_us(5); //delay 5 us
        SCK=0;
        }
        DATA_OUT=1;
        DDRA = 0b10000000; // DATA Output
        SCK=1; //clk #9 ack
        delay_us(2);
        error=DATA_IN; //cek ack (DATA akan di pull down oleh SHT11)
        delay_us(2);
        SCK=0;
        return error; //cek jika ada error
        }

        //Untuk membaca data dari SHT11
        char baca_SHT(unsigned char ack)
        {
        unsigned char i,val=0;
        DDRA = 0b10000000; // DATA Input
        for (i=0x80;i>0;i/=2) //shift bit
        { SCK=1; //clk
        delay_us(2);
        if (DATA_IN) val=(val | i); //baca bit
        delay_us(2);
        SCK=0;
        }
        DDRA = 0b11000000; // DATA Output
        DATA_OUT=!ack; //”ack==1″ pull down DATA-Line
        SCK=1; //clk #9 ack
        delay_us(5); //delay 5 us
        SCK=0;
        DATA_OUT=1; //DATA-line
        return val;
        }
        //———————————————————————————-
        // menghasilkan sinyal awal untuk transmisi data
        // _____ ________
        // DATA: |_______|
        // ___ ___
        // SCK : ___| |___| |______
        //———————————————————————————-

        //Untuk memulai transmisi data
        void start_SHT(void)
        {
        DDRA = 0b11000000; // DATA Output
        DATA_OUT=1; SCK=0; //Inisial state
        delay_us(2);
        SCK=1;
        delay_us(2);
        DATA_OUT=0;
        delay_us(2);
        SCK=0;
        delay_us(5);
        SCK=1;
        delay_us(2);
        DATA_OUT=1;
        delay_us(2);
        SCK=0;
        DDRA = 0b10000000; // DATA Input
        }
        //———————————————————————————-
        // reset: DATA-line=1 dengan 9 SCK cycle di awal
        // _____________________________________________________ ________
        // DATA: |_______|
        // _ _ _ _ _ _ _ _ _ ___ ___
        // SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______
        //———————————————————————————-

        //Untuk mereset koneksi dengan SHT11
        void reset_SHT(void)
        {
        unsigned char i;
        DDRA = 0b11000000; // DATA output
        DATA_OUT=1; SCK=0; //Inisial state
        for(i=0;i<9;i++) //9 SCK cycle
        { SCK=1;
        delay_us(1);
        SCK=0;
        delay_us(1);
        }
        start_SHT(); //start transmisi data
        DDRA = 0b10000000; // DATA Input
        }

        //Mengecek status register sensor
        char StatusReg_SHT(unsigned char *p_value, unsigned char *p_checksum)
        {
        unsigned char error=0;
        start_SHT(); //start transmisi data
        error=tulis_SHT(STATUS_REG_R); //mengirim command ke sensor
        *p_value=baca_SHT(ACK); //baca status register (8-bit)
        *p_checksum=baca_SHT(noACK); //baca checksum (8-bit)
        return error; //error=1 jika tidak ada respon dari sensor
        }

        //Membaca data hasil pengukuran
        char ukur_SHT(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
        {
        unsigned error=0;
        unsigned int temp=0;
        start_SHT(); //start transmisi data

        switch(mode){ //mengirim command ke sensor
        case TEMP : error+=tulis_SHT(UKUR_SUHU); break;
        case HUMI : error+=tulis_SHT(UKUR_HUMI); break;
        default : break;
        }
        DDRA = 0b10000000; // DATA input
        while (1)
        {
        if(DATA_IN==0) break; //tunggu hingga sensor selesai melakukan pengukuran
        }
        if(DATA_IN) error+=1; // jika sudah timeout (2 detik)

        switch(mode){ //mengirim command ke sensor
        case TEMP : temp=0;
        temp=baca_SHT(ACK);
        temp<<=8;
        nilaisuhu[0]=temp;
        temp=0;
        temp=baca_SHT(ACK);
        nilaisuhu[0]|=temp;
        break;
        case HUMI : temp=0;
        temp=baca_SHT(ACK);
        temp<100)rh_true=100;
        if(rh_true<0.1)rh_true=0.1;

        *p_temperature=t_C;
        return rh_true;
        }

        void main(void)
        {
        value humi_val,temp_val;

        PORTA=0x00;
        DDRA=0xC0;

        PORTB=0xFF;
        DDRB=0x00;

        PORTC=0x00;
        DDRC=0x00;

        PORTD=0xF0;
        DDRD=0xF0;

        // USART initialization
        // Communication Parameters: 8 Data, 1 Stop, No Parity
        // USART Receiver: On
        // USART Transmitter: On
        // USART Mode: Asynchronous
        // USART Baud Rate: 9600
        UCSRA=0x00;
        UCSRB=0x18;
        UCSRC=0x86;
        UBRRH=0x00;
        UBRRL=0x47;

        ACSR=0x80;
        SFIOR=0x00;
        ADCSRA=0x00;
        SPCR=0x00;
        TWCR=0x00;

        // Alphanumeric LCD initialization
        // Connections specified in the
        // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
        // RS – PORTA Bit 0
        // RD – PORTA Bit 1
        // EN – PORTA Bit 2
        // D4 – PORTA Bit 4
        // D5 – PORTA Bit 5
        // D6 – PORTA Bit 6
        // D7 – PORTA Bit 7
        // Characters/line: 16

        lcd_init(16);
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_putsf("TA ASENG");
        lcd_gotoxy(0,1);
        lcd_putsf("================");
        delay_ms(100);

        reset_SHT();

        while (1)
        {
        //delay_ms(500);
        error=0;
        error+=ukur_SHT((unsigned char*)( &humi_val.i),&checksum,HUMI); //mengukur kelembaban
        error+=ukur_SHT((unsigned char*) (&temp_val.i),&checksum,TEMP); //mengukur suhu
        error += StatusReg_SHT(&inp, &checksum);
        if(error!=0)
        {
        reset_SHT(); //jika ada error, reset koneksi
        putsf("Error");
        }
        else
        {
        humi_val.f=(float)nilaisuhu[1]; //mengubah integer menjadi float
        temp_val.f=(float)nilaisuhu[0];
        humi_val.f=hitung_SHT(humi_val.f,&temp_val.f); //menghitung suhu, kelembaban
        //menampilkan pada LCD
        lcd_clear();
        lcd_gotoxy(0,0);
        sprintf(buf,"SUHU = %0.2f \xdfC",temp_val.f);
        lcd_puts(buf);
        lcd_gotoxy(0,1);
        sprintf(buf,"RH = %0.2f %%",humi_val.f);
        lcd_puts(buf);
        }
        delay_ms(1000);
        }
        }

  28. adnan :

    ini sudah saya cobak dengan sensor baru tpi masalahnya tetep sama dengan yang sebelumnya mohon koreksi programnya ini mas mungkin ada yang salah

    Wah programnya g bisa dibaca karena da bbrp sintak hilang. programnya di paste di http://pastebin.com/ ja dulu trus linknya di paste di sini agar q bisa cek programnya.

    • Riefa
    • October 17th, 2013

    mau tanya nih mas, prinsip kerja sensor SHT11 untuk pengubahan nilai suhu sama seperti sensor2 suhu lainya?

    • maksudnya bagaimana?

  29. mas, mau tanya nih..need help banget..
    1. kok pas sy donlot di cv avr, malah yang muncul di lcd 2f 2f ya mas? itu karna apa? trus sy ganti settingan float nya, malah yang muncul ukuran filenya kurang, harusnya 132k, tp yg dipake 128k, trus sy rubah ke 132k eh malah yang muncul cuma tulisan RH dan Temp yang kedap kedip mas,,,solusinya gimana ya mas?
    sy pake atmega 8535 jg..makasih ya mas atas jawabannya..sy tunggu

  30. btw mas…alhamdulillah udah bisa aksesnya,,..ternyata kalo masalah 2f 2f itu di ganti dr atmega 8535 jadi atmega 16..thx mas…
    1.ohiya mau tanya lagi mas, kalo cara supaya bisa komunikasi serial gimana mas? jadi bs pake LCD dan serial gitu mas..
    2. kan sensor sht11nya awalnya saya kasih kabel jumpernya pendek, pengukurannya bagus, trus pas saya kasih kabel jumpernya sepanjang 5 meter, tiba2 datanya ngaco mas…kira2 apanya yang salah ya mas? sy bingung dan butuh pencerahan..soalnya rencananya sensornya mau saya tempatin agak jauh dr mikronya mas…mohon pencerahannya mas🙂 makasih mas

    • Mulkan Azizi :
      btw mas…alhamdulillah udah bisa aksesnya,,..ternyata kalo masalah 2f 2f itu di ganti dr atmega 8535 jadi atmega 16..thx mas…

      Kalau masalah display muncul 2f 2f itu karena setting printf belum diset ke float

      1.ohiya mau tanya lagi mas, kalo cara supaya bisa komunikasi serial gimana mas? jadi bs pake LCD dan serial gitu mas..

      Untuk komunikasi serial bisa merujuk ke Aplication Note IE AN143. Namun kekurangannya dengan program tersebut dikomputer harus ada program khusus baik menggunakan delphi atau lainnya karena data yang dikirim dari mikrokontroller adalah data mentah sensor dan rumus konversi suhu terdapat pada program di komputer. Atau bisa dengan menambahkan program konversi data float hasil konversi suhu menjadi string lalu di kirim serial ke komputer. Dengan sistem ini tidak perlu tambahan program khusus dikomputer tetapi cukup dengan aplikasi semacam hyperterminal aja.

      2. kan sensor sht11nya awalnya saya kasih kabel jumpernya pendek, pengukurannya bagus, trus pas saya kasih kabel jumpernya sepanjang 5 meter, tiba2 datanya ngaco mas…kira2 apanya yang salah ya mas? sy bingung dan butuh pencerahan..soalnya rencananya sensornya mau saya tempatin agak jauh dr mikronya mas…mohon pencerahannya mas

      Bisa jadi ini disebabkan oleh koneksi kabel yang kurang bagus sehingga komunikasinya tidak sempurna so coba cek kondisi jumper/sambungan antar modul mungkin agak longgar karena mempengaruhi bentuk sinyal komunikasi jika agak longgar dan ganti kabel dengan ukuran core yang lebih besar atau menggunakan kabel yang berkualitas baik sebagai sebagai konduktor kayak gold wire (mahal kali kabelnya🙂 ). Bisa juga dikaenakan jarak jangkau yang terlalu jauh (tp sy sendiri belom tau standart jarak jangkau komunikasi TWI –> di googling ja yah🙂 )

      makasih mas

      sama2

      • faisal
      • October 2nd, 2014

      Mulkan Azizi :
      btw mas…alhamdulillah udah bisa aksesnya,,..ternyata kalo masalah 2f 2f itu di ganti dr atmega 8535 jadi atmega 16..thx mas…
      1.ohiya mau tanya lagi mas, kalo cara supaya bisa komunikasi serial gimana mas? jadi bs pake LCD dan serial gitu mas..
      2. kan sensor sht11nya awalnya saya kasih kabel jumpernya pendek, pengukurannya bagus, trus pas saya kasih kabel jumpernya sepanjang 5 meter, tiba2 datanya ngaco mas…kira2 apanya yang salah ya mas? sy bingung dan butuh pencerahan..soalnya rencananya sensornya mau saya tempatin agak jauh dr mikronya mas…mohon pencerahannya mas🙂 makasih mas

      mas mulkan azizi saya boleh minta simulasi proteus sama file program codevision avr nya yang sudah fix dan nggak error. butuh banget buat TA mas. tolong kirim ke email saya ya mas.
      faisalblueshine@gmail.com

      terimakasih mas

    • adnan
    • November 1st, 2013

    makasih mas atas bimbingan nya ternyata yang sya beli itu modul sht hanya penempatan kaki2nya yang beda makasih mas….

  31. josss banget mas..matur suwun mas..iya, sy ngikutin saran mas, yang merubah setting jadi float, pas saya ubah, ternyata memory flash ga muat, butuh 132k tp di atmega 8535 cuma 128k, trus sy coba ganti ke atmega 16 eh alhamdulillah bisa😀

    mengenai jumper, sebaiknya jumper yang seperti apa ya mas? soalnya shtnya mau saya tempatkan kurang lebih meter dr mikro, kemaren sih, sy pake jumpernya dari kabel IDC/kabel pelangi (abal abal banget yak wkwk :D) apa faktor kabel atau emang kalo komunikasi data TWI ga bisa panjang2 kabelnya? trimakasih suhu🙂

    • coba ganti resistor pulp-up nya..??
      kalo standar biasanya 10K. nah coba itu diganti dengan yang lebih kecil sehingga arus yang mengalir di bus data lebih besar.

    • Ruby Hazrat Handoko
    • December 3rd, 2013

    Mas coy numpang nanya, saya baru buat sensor sht 11, mengapa yaa output lcd nya 0% dan 0 drjt??mhn bantuannya

    • saya rasa itu salah dalam program menampilkan nilai temp dan humidity nya pada LCD. Seharusnya jika proses pembacaan sensor yang bermasalah, display LCD tidak menampilkan nilai 0.

    • julius
    • March 16th, 2014

    mas coy mohon bantuannya…
    rangkaian transistor Zenner nya untuk sensor sht11-nya seperti apa ya…
    tolong kirim via email ya…
    ozzul.lb07@gmail.com
    makasih atas bantuannnya..

    • ramadhan
    • April 8th, 2014

    mas coy, saya mau nanya dong
    kebetulan saya sedang bikin project mengenai sht11 ini
    sebelum nyoba langsung di devicenya, kan saya nyoba bikin versi simulasinya di proteus
    nah saya kan udah ngikutin source codenya yang mas posting, tapi saya ubah dibagian tampilan lcdnya aja
    nah yang saya bingung kenapa keluarannya selalu sama yaitu sekitar 600 untuk suhunya dan -4,00 buat rhnya
    masalahnya dimana ya mas, mohon bantuannya banget
    masih newbie soalnya
    hehehe

    • bibib
    • May 11th, 2014

    mas mau nanya. sht11 ini kan bisa untuk mengukur titik embun. nah, dari rumus yang ada di datasheet sht11 itu ada rumus untuk menghitung titik embun, tapi saya kurang mengerti untuk memasukkannya dalam listing programnya, gimana ya mas? mohon bantuannya, terimakasih

  32. yang punya skematik dan listing program sht11 cvavr kirm yah
    siwon_aglin@yahoo.com
    terima kasih

    • herdy_pratama
    • July 7th, 2014

    maaf mas, saya sedang nyobain SHT11 pake program basic, tapi saya mengalami kesulitan, apa boleh saya share disini? kali aja ada yang bisa bantu😦

    • ikri
    • August 2nd, 2014

    misi gan saya mau nanya ?
    RH=(DataRead* x 0.0405) –
    (DataRead* x DataRead* x
    0.0000028)-4;
    Temp=(DataRead* – 4000)/100
    maksudnya data readnya itu apa gan ? data read misalnya suhu dan kelembaban (31,7°C dan 35,50%) atau data read binernya gan ?

    • masbro
    • August 2nd, 2014

    mas mau nanya,, kan di datasheet ditulis 0000’0100’0011’0001=1073=35,50%
    nah itu klo 1% rh binernya brp mas ?
    maksih sebelumnya

    • faisal
    • October 2nd, 2014

    untuk mas-mas yang ada disini boleh saya minta simulasi proteus sama file-file codevisionavr buat nampilin suhu+kelembaban sensor sht11 di lcd. yang udah fix dan gak error lagi. soalnya program saya error terus.
    kirim ke email saya ya.
    faisalblueshine@gmail.com

    makasih mas

    • AGros
    • December 22nd, 2014

    permisi gan mau tanya, dari penjelasan program yang ada diatas apa itu hitung2annya hanya berlaku pada sensor sht 11,.. mksutnya apa nggak berlaku pada sensor yang lain,? problem saya gan maaf hehehe,. saya pake sensor DHT, tapi secara spek datasheet hampir sama dengan SHT,. penggunaan sama pada mikrokontroler ATmega,.. apa program SHT bisa diterapkan gan pda kasus ini? makasih sebelumnya buat agan agan.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: