Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: POWER - 01 Eylül 2017, 14:26:56

Başlık: SHT-11 Sensör Muadili
Gönderen: POWER - 01 Eylül 2017, 14:26:56
Öncelikle Herkeze İyi Bayramlar,
Aşağıdaki linkten sht-11 yerine kullanılabilir diye üzerinde AM2320 yazan bir sensör aldım ama çalıştıramadım.proğram isis de sht-11 sensörü kullanılarak sorunsuz çalışıyor fakat gerçek devrede elimdeki AM2320 ile çalışmıyor muhtemelen hiç okuma yapmıyor ısı ve nem bilgileri hep sıfır görünüyor.Daha önce bu AM2320 sensörünü kullanan oldumu acaba? yada çözüm bazında öönerisi olan varmıdır acaba?
https://www.aliexpress.com/item/1pcs-AM2320-digital-temperature-and-humidity-sensor-AM2320B-replace-SHT10-SHT11-series/32319589688.html?spm=a2g0s.9042311.0.0.WjgAod
@ DEVICE pic16F877A                      'işlemci 16F877A                               
@ DEVICE pic16F877A, WDT_On              'Watch Dog timer açık
@ DEVICE pic16F877A, PWRT_ON             'Power on timer açık
@ DEVICE pic16F877A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F877A, XT_OSC

TRISA=%00000011
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000

PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0
CMCON=7          'komparatörler iptal
ADCON1=7         'a portu sayısal giriş/çıkış(adc pin'i olanlar için)
OPTION_REG.7=1   'pull-up dirençleri iptal

'-------------------------------------------------------------------------
define OSC 4
Include "MODEDEFS.BAS"
'-------------------------------------------------------------------------
DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 2 'LCD RS bacağı Hangi Bite bağlı  ?
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
DEFINE LCD_COMMANDUS 2000   'Command delay time in us
DEFINE LCD_DATAUS   50      'Data delay time in us
'-------------------------------------------------------------------------------
SYMBOL NC=PORTD.2
SYMBOL IC=PORTD.3

CLK     VAR    PORTA.1
DTA     VAR    PORTA.0 

SS          VAR WORD
GS          VAR WORD
NS          VAR WORD
GN          VAR WORD           
SAYAC       VAR BYTE
SN          VAR BYTE
DAK         VAR BYTE
SAAT        VAR BYTE
AYGUN       VAR BYTE
AY          VAR BYTE
YIL         VAR BYTE
SISI1       VAR BYTE
SISI2       VAR BYTE
MEM         var byte
HAFGUN      var byte
ONLAR       VAR BYTE
BIRLER      VAR BYTE
SAYI        VAR BYTE
POZ         var BIT
; ISI-NEM Tanımlamaları  -------------------------------------------------------
    ILK     VAR     BIT
    KONTROL VAR     BYTE      
    ISI1    VAR     BYTE       
    ISI2    VAR     BYTE     
    U1      VAR     BYTE         
    U2      VAR     BYTE
    Z       VAR     BYTE
'    ALRM    VAR     BYTE
'    SECN    VAR     BYTE
    H0      VAR     HAM.BYTE0
    H1      VAR     HAM.BYTE1
    HAM VAR   WORD
    RAW_ALT var     word
    RAW_UST VAR     WORD
    RAI    var     word
    ISI     VAR     WORD
    NEM_ALT VAR     WORD
    NEM_UST VAR     WORD
    ISI_ALT VAR     WORD
    ISI_UST VAR     WORD
    P1      VAR     WORD
    P2      VAR     WORD
    P3      VAR     WORD             
    W       VAR     WORD
    ISARET  VAR     BIT   'sensor değeri 0 ise artı, 1 ise eksi
SIGN_ALT    VAR     BIT   'alarm ısı isareti 0 ise artı 1 ise eksi
SIGN_UST    VAR     BIT
    HATA    var     BIT
    I       VAR     BYTE


PAUSE 500
'----------------------------------------------------------------------------
'DATA @10,255,255

BASLA:             
        KONTROL=%00000011
        HAM=0   'SICAKLIK ÖLÇME
        GOSUB OLCUMAL
        RAI=HAM
          Gosub ISIHESAP
          GOSUB EKRAN_0       
        PAUSE 50    '50
       KONTROL=%00000101
       HAM=0 'RUTUBET ÖLÇME
       GOSUB OLCUMAL
       GOSUB RUTHESAP
       gosub CIKIS
       GOSUB EKRAN_0
     
GOtO BASLA

           
EKRAN_0:
           LCDOut $FE,$85, DEC2 ISI1 , "," , DEC1 ISI2," C"
           LCDOut $FE,$c5, DEC2 U1 , "," , DEC1 U2," % " 
        return

T_START:
        OUTPUT DTA
        OUTPUT CLK
        HIGH DTA
        LOW CLK
        PAUSE 1
        HIGH CLK
        LOW DTA
        PAUSE 1
        LOW CLK
        PAUSE 1
        HIGH CLK
        PAUSE 1
        HIGH DTA
        LOW CLK
        RETURN
OLCUMAL:
        GOSUB T_Start
        SHIFTOUT DTA,CLK,1,[KONTROL]
        INPUT DTA
        PULSOUT CLK,10
        HATA=0
        FOR W=0 to 65500
           IF DTA=0 then EXIT
        NEXT W
        HATA=1
EXIT:
'     IF HATA=1 then
'         gosub SENSORYOK
'     endif
       SHIFTIN DTA,CLK,0,[H1]
       OUTPUT DTA
       LOW DTA
       PULSOUT CLK,10
       INPUT DTA
       SHIFTIN DTA,CLK,0,[H0]
       PULSOUT CLK,10
       RETURN
       
ISIHESAP: 
           if ham<4000 then
              ISARET=1 'sıcaklık eksi değerde demek
              ISI1=(4000-HAM)/100
              ISI2=((4000-ham)//100)/10   
              goto ISISON
            endif
           ISI1=(HAM-4000)/100
           ISI2=((HAM-4000)//100)/10
ISISON:    if HAM>16384 then
             ISI1=0
             ISI2=0
           endif
           GS=ISI1*10+ISI2 
    RETURN

RUTHESAP: 
           ISI=ISI1*10+ISI2
           p1=(26542-(54722**ham+ham))**ham-40     
           P2=655+(HAM*5)+(HAM**15917)      
           P3=(P2**(ISI+2480))-(P2**2730)+P1   ' kompanse edilmiş değer
           U1=p3/10
           U2=p3//10
           IF ham>3710 THEN
              u1=0
              U2=0
'              GOTO SENSORYOK
           ENDIF 
           GN=(U1*10)+U2
           return
           
GERIHESAP:
           IF SIGN_ALT=1 THEN
               RAW_ALT=4000-(ISI_ALT*10)
            else
               RAW_ALT=4000+(ISI_ALT*10) 
           ENDIF
           
           IF SIGN_UST=1 THEN
               RAW_UST=4000-(ISI_UST*10)
            else
               RAW_UST=4000+(ISI_UST*10) 
           ENDIF
             
             RETURN   
           
'SENSORYOK: LCDOUT $FE,$02,"   SENSOR YOK   "
'           LCDOUT $FE,$C0," LUTFEN TAKINIZ " 
'           PAUSE 1000               
'           RETURN

CIKIS:
      IF GS<SS THEN
         HIGH IC
         ELSE
         LOW IC
      ENDIF
      IF GN<NS THEN
         HIGH NC
         ELSE
         LOW NC
      ENDIF
      RETURN
END


(https://s26.postimg.cc/5x07opdf9/SHT-11.jpg) (https://postimg.cc/image/5x07opdf9/)
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: mehmet - 01 Eylül 2017, 17:48:10
Muhtemelen adres farklıdır...
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 01 Eylül 2017, 18:41:46
Hocam biraz daha açabilirmiyiz?
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: MC_Skywalker - 01 Eylül 2017, 21:48:14
Her I2C birimini adresi vardır. Bu sensörü hiç kullanamadım.
yanlış hatırlamıyorsam SHT-11 000 adresinde AM2320 0xB8 de.
https://akizukidenshi.com/download/ds/aosong/AM2320.pdf

veri yoluna önce 0xB8 sonra konmutlar şeklinde devam edeceksin. verdiğin kodda SHT-11 de adres 000 olduğu için doğrudan komut göndremiş. ayrıca zamanlamaları kontrol etmek gerek.

ben sht-11 yerine hdc1080 deneyeceğim.  kargo hala gelmedi. http://www.ti.com/lit/ds/symlink/hdc1080.pdf
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 01 Eylül 2017, 23:05:15
çok uğraştım ama çalıştıramadım malesef.elinde bu sensör için kodu olan yada mevcut kodu düzenleyebilecek arkadaşlardan yardım bekliyorum.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 02 Eylül 2017, 09:54:21
@POWER ben de ilk defa duydum bu sensörü. Şu linkte konuyu tartışmışlar belki faydası olur. Datasheetini inceledinizmi.


http://www.picbasic.co.uk/forum/showthread.php?t=17867 (http://www.picbasic.co.uk/forum/showthread.php?t=17867)
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: ete - 02 Eylül 2017, 09:58:14
SHT-11 standart I2C haberleşme protokolü kullanmaz. Standart protokolden biraz farklı bir mantığı vardır.
Görünüşe göre AM2320 ise standart I2C protokolü kullanıyor.
Bu durumda aşağıdaki kodları deneyebilirsin.
I2CWRITE DTA,CLK,$B8,$00,[$04]
I2CREAD  DTA,CLK,$B8,[Rut.BYTE1,Rut.BYTE0,ISI.BYTE1,ISI.BYTE0]

Rut burada rutubet değerini taşıyacak ISI ise sıcaklık değerini taşıyacaktır.
Okunan ve hesaplanan değer olması gerekeninin 10 katı değerde olduğundan ekranda gösterimi;
TamRut=RUT/10:OndaRut=RUT//10
TamISI=ISI/10 :OndaISI=ISI//10
Şeklinde olmalıdır.
Unutmadan belirteyim. Sensör Data ve CLK hatları 10K direnç ile pullup yapılmalıdır.

Ete
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: Zoroaster - 02 Eylül 2017, 10:10:08
Buyukce bir inkjet plotterdan asagida fotosu gorulen kiti sokmustum.

Bu SHT-11 sensormudur?

(https://i.hizliresim.com/ZE8rBg.jpg) (https://hizliresim.com/ZE8rBg)
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: omereliusuk - 02 Eylül 2017, 10:25:23
Dht11 ds18b20 ikilisini deneyin. Bir de işlemci hızınız nedir. Gelen verileri yetiştiremeyebilir.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 02 Eylül 2017, 12:33:20
Alıntı yapılan: omereliusuk - 02 Eylül 2017, 10:25:23
Dht11 ds18b20 ikilisini deneyin. Bir de işlemci hızınız nedir. Gelen verileri yetiştiremeyebilir.
o sensör elimde yok şu anda malesef,işlemci hızı 4mhz
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: omereliusuk - 02 Eylül 2017, 20:29:01
Hsu 07 analog olarak çıkış veren bir sensor. Eğer çok kritik değerlerde kullanamayacaksanız datasheetten fonksiyonunu üreterek sensoru okuyabilirsiniz.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 03 Eylül 2017, 17:39:26
Malesef işin içinden çıkamadım.Bu sensörün kullanımı ile ilgili  örnek kod paylaşacak arkadaşımız varmıdır acaba?
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: Maxim - 03 Eylül 2017, 19:32:30
aynı sensör olmasada burada benzer bir sensöre ait çalışma var inceleyin
http://www.picbasic.co.uk/forum/showthread.php?t=17867
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 03 Eylül 2017, 20:38:39
@POWER kod örneği olsa birisinde zaten paylaşılırdı. Ben bu sensör elinde olan var mı ondan bile emin değilim. Bu yolda yalnızsın. Bir çok kişi yardımcı olmak için önerilerde bulunmuş, bence onları dikkate al. Özetlersek öncelikle datasheet sayfa 4 incelemelisin. I2C iletişimi yaptığını Ete hocada yazdı zaten. Ete'nin I2C dersini inceleyin.

Datasheet:

https://akizukidenshi.com/download/ds/aosong/AM2320.pdf (https://akizukidenshi.com/download/ds/aosong/AM2320.pdf)

Buda incelemeniz gereken forum linki:

http://www.picbasic.co.uk/forum/showthread.php?t=17867  (http://www.picbasic.co.uk/forum/showthread.php?t=17867)

Bir de elinizde sht11 var ise onunla devrenizi deneyin. Sht11 için örnek çok. Sht11 ile çalışırsa bu sensörde çalıştırılabilir. Devrenizden eminseniz bu sensör üzerinde çalışın. Umarım başarırsınız. Kolay gelsin.

Edit:
Aslında pbp örneği yok ama ccsc ve microc örnekleri var:

https://www.ccsinfo.com/forum/viewtopic.php?t=53924 (https://www.ccsinfo.com/forum/viewtopic.php?t=53924)

https://libstock.mikroe.com/projects/view/1331/am2320-relative-humidity-and-temperature-sensor-demo (https://libstock.mikroe.com/projects/view/1331/am2320-relative-humidity-and-temperature-sensor-demo)

Adres bilgileri ve I2C kulanımı bu örneklerde var.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 05 Eylül 2017, 21:52:08
@dnacikaya
hocam ilgine teşekkürler.yaptığım incelemeler sonucunda aşağıdaki linkte üzerinde çalışılan sensör AM2302.Datasheed incelediğimde gördümki benim uğraştığım AM2320 den farklı bir sensör.dolayısıyla o formdan bir şey çıkartamadım.Deneme yaptığım devre deneme devrem(bordum)o yüzden devrede sıkıntı yok.elimde şu anda sht11 yok malesef. zaten kod sht-11 için yazılmış ve isis te problemsiz çalışıyor ama bendeki sensör AM2320.ete hocanın söylemesinden anladığım,sht-11  I2C haberleşme protokolünü  kullanmadığı ama  AM2320,  I2C protokolünü kullandığı yönünde.seviyem yetersiz olduğu için ete hocanın tavsiyelerinden hareketle gerekli düzenlemeyi yapamadım malesef.yoksa tüm arkadaşların önerilerini dikkate alıp o yönde denemeler yapıyorum.
http://www.picbasic.co.uk/forum/showthread.php?t=17867
son verdiğin linklerde güzel ama basic değil malesef.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 05 Eylül 2017, 22:10:10
@POWER Sensör elimde olsa değerleri okuyabilirim. Türkiye'de bulunan bir sensör değil sanırım. Aliexpress'ten mi aldınız. Elinizde fazla varsa gönderin bana çözebileceğimi düşünüyorum. 
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 06 Eylül 2017, 21:28:21
@dnacikaya (https://www.picproje.org/index.php?action=profile;u=14851)
evet  Aliexpress'ten almıştım elimde bir adet var.bir müddet daha çalışmak istiyorum sonuç alamazsam size göndereyim.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 07 Eylül 2017, 11:45:33
Tamamdır.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: yesilu - 07 Eylül 2017, 14:12:24
Sıcaklık ve nem ölçümü için si7021 adlı bir i2c var, fiyatı iyi, doğruluk,hassasiyet ve stabilite bakımından dht11,22vs den çok üstün, bunların nem sensörleri kısa sürede yanlış ölçmeye başlıyor.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 07 Eylül 2017, 21:23:01
evet fiyatı fena değil.bu sensör için elinizde Picbasic kod varmı?
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 08 Eylül 2017, 12:10:56
Am2320 sipariş verdim 2 adet. İncelemek istiyorum bu sensörü. Birisi kod için ikincisi içini açıp bakmak için :) Stabil çalışırsa kullanılabilir. Gelsin bakalım pbp kodu yazabilirsem buradan paylaşırım. Olmadı microc için test ederim.
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: POWER - 25 Aralık 2017, 19:51:19
@dnacikaya
siparişini verdiğiniz sensör geldimi? Sensör için pbp kodu yazabildiniz mi acaba?
Başlık: Ynt: SHT-11 Sensör Muadili
Gönderen: dnacikaya - 25 Aralık 2017, 20:01:10
@POWER sensör geldi ancak yoğunluktan bakamadım.