sht 11 sıcaklık ve nem sensörünü 74HC245 kablo uzatma sorunu

Başlatan ibarrada, 21 Kasım 2016, 12:17:10

ibarrada

herkese merhabalar
Sht 11 ile ısı ve nem kontrolü yapmak istiyorum ama kablom 2 bucuk metre olduğundan çalıştıramadım. Kablo 10 cm olduğunda ısı ve nem aldım ama kabloyu uzattığım zaman ısı ve nemi alamadım. Bende 74HC245 bus transceiver kullanmak istedim bazı sitelerde bu şekilde çalıştığını söylüyorlar ama ben çalıştıramadım proton ide kullanıyorum. sht11 i 10 cm kabloyla 74HC245 e bağladım 74HC245 de 2 bucuk metre cat 6 kabloyla pic e bağladım. aşağıdaki ekte bağlantı fotoğrafı ve sht 11 yazılımı ile 74HC245 ile sht 11 yazılımı bulunmaktadır. her türlü öneriye açığım. forumda işlemci kullanmayı önermişler ama ilk amacım bu sistemi çalıştırmam olmadı işlemciyi düşüneceğim.

sht 11 kodu

Device=18F4520
DEFINE RESET_ORG 0H
Include "modedefs.bas"   'Seri iletişim için gerekli
Declare Xtal=16    ' HSPLL CAMBIAR XTAL SPEED

'OPTION_REG=%00000011

Adin_Res 8'10 ' Set the resolution to 10
Adin_Tad FRC ' Choose the RC osc for ADC samples
Adin_Stime 100        ' Allow 100us for charge time



Hserial_Baud =9600
Hserial_RCSTA =%10010000
Hserial_TXSTA =%00100100
Hserial_Clear =On


ADCON1=%00001110  'ADC yapılandırması
'      76543210
TRISA=%00000001   'A0 analog giriş Diğerleri Digital
TRISB=%00000000   '
TRISD=%00000000
TRISC=%10000000   '
TRISE=%00000000   ' Çift yönlü Slave portta Read, Write porte.0,porte.1   yap


Symbol GIE  =INTCON.7   'genel interruptlar  aciyor
Symbol PEIE =INTCON.6   'Cevresel kesmeleri  aciyor
'Symbol INTE =INTCON.4   'RB0 Kesmesini aciyor
'Symbol INTF =INTCON.1   'RB0 kesme bayragi
Symbol RCIE =PIE1.5     'USART kesmesini aciyor
Symbol RCIF =PIR1.5     'USART Receive interrupt flag bit
GIE=0     'Butun kesmeler devrede
'INTE=1    'RB0 kesmesi devrede       
RCIE=1    'USART kesmesi devrede
PEIE=1    'Cevresel kesmeler devrede
GIE=1     'Butun kesmeler devrede



Dim KONTROL As Byte 
Dim HATA As Bit
Dim HAM As Word ' Sensör HAM okuma değeri
Dim ISI As Float ' Hesaplanmış ISI değeri
Dim ISI2 As Word
Dim NEM As Float
Dim NEM2 As Word
             
Dim W As Word 
Dim RHlin As Float
Dim RHlin2 As Float
Dim c1 As Float
Dim c2 As Float
Dim c3 As Float
Dim t1 As Float
Dim t2 As Float
Dim d1 As Float
Dim d2 As Float

'ISI = 0
'NEM = 0
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
t1 = 0.01
t2 = 0.00008
d1 = -40.1 '5V => -40.1,  3V => -39.6
d2 = 0.01


'***************************************************
GoTo Main
Dim shtBitIndeks As Byte
   
Symbol CLK=PORTB.6
Symbol DTA=PORTB.7

Symbol H0=HAM.Byte0
Symbol H1=HAM.Byte1
             
sht11_SensoruOku:
              KONTROL=%00000101:HAM=0   'NEM ÖLÇME
        GoSub OLCUMAL
        GoSub RUTHESAP
              KONTROL=%00000011:HAM=0   'SICAKLIK ÖLÇME
        GoSub OLCUMAL
        GoSub ISIHESAP
         
Return     

'------------------------------- İŞLEM START -----------------------------------
T_START:
      DelayMS 40
      Output DTA:Output CLK
        High DTA
         Low CLK
       DelayUS 10
        High CLK
         Low DTA
       DelayUS 10
         Low CLK
       DelayUS 10
        High CLK
       DelayUS 10
        High DTA
       DelayUS 10
        Low CLK
       DelayUS 10

Return
'-----------------------SENSORE KOMUT GÖNDER -----------------------------------
OLCUMAL:
           GoSub shtReset
           GoSub T_START
           GoSub KomutGonder     
           Input DTA
           High CLK
           DelayUS 10
           Low CLK
           DelayUS 10
           HATA=0
           For W=0 To 65500
              If DTA=0 Then GoTo GIT
              DelayUS 5
           Next W
           HATA=1

    GIT:         
         If HATA=1 Then
             GoTo HATALI
         EndIf
         GoSub sht11VeriAl
         GoTo CIK

    HATALI:
        HSerOut["Hata\r"]
       
  CIK:
Return
'----------------------ISI HESAP ALT PROGRAMI-----------------------------------   

KomutGonder:   
      Dim KontrolBit As Byte
      Output DTA:Output CLK
      Low CLK
      For  shtBitIndeks=7 To 0 Step -1
        KontrolBit = GetBit KONTROL,shtBitIndeks
        If KontrolBit=1 Then
            High DTA
        Else
            Low DTA
        EndIf
        DelayUS 10
        High CLK
        DelayUS 10
        Low CLK
      Next shtBitIndeks
Return

shtReset:
     Output CLK:Input DTA
     Low CLK
     For shtBitIndeks=0 To 9
        High CLK
        DelayUS 10
        Low CLK
        DelayUS 10
     Next shtBitIndeks
Return

sht11VeriAl:
    Low CLK
    For shtBitIndeks=15 To 0 Step -1
           If DTA=1 Then
                SetBit HAM,shtBitIndeks
           Else
                ClearBit HAM,shtBitIndeks
           EndIf
           DelayMS 10
           High CLK
           DelayUS 10
           Low CLK
           
       If shtBitIndeks= 8 Then     'ACK
            Output DTA
            High DTA
            Low CLK
            DelayUS 10
            Low DTA
            High CLK
            DelayUS 10
            Low CLK
            DelayUS 10
          '  Input DTA                                                             "
EndIf
    Next shtBitIndeks
Return
   
ISIHESAP: 
        ISI = d1 + ( d2 * HAM )
       ISI2= Abs ISI  'ben ekledim mutlak değer şeklinde değer olması için
       ' HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec ham]
Return     
'-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
RUTHESAP:
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
    RHlin = c1 + c2 * HAM
    RHlin2 = c3 * HAM * HAM
    RHlin = RHlin + RHlin2
    NEM = ( t1 + t2 * HAM)
    NEM = NEM * ( ISI - 25)
    NEM = NEM + RHlin
    NEM2= Abs NEM
  ' HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec HAM]
    If NEM>100 Then
        NEM=100
    Else If NEM<0 Then
        NEM=0
    EndIf
Return
 
    Main:
        BASLA:
            sonsuzDongu:
              GoSub sht11_SensoruOku

               HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec NEM2]

               HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec ISI2]

               DelayMS 240
            GoTo sonsuzDongu
    Stop


sht 11 74HC245 ile kodu

Device=18F4520
DEFINE RESET_ORG 0H
Include "modedefs.bas"   'Seri iletişim için gerekli
Declare Xtal=16    ' HSPLL CAMBIAR XTAL SPEED

'OPTION_REG=%00000011

Adin_Res 8'10 ' Set the resolution to 10
Adin_Tad FRC ' Choose the RC osc for ADC samples
Adin_Stime 100        ' Allow 100us for charge time



Hserial_Baud =9600
Hserial_RCSTA =%10010000
Hserial_TXSTA =%00100100
Hserial_Clear =On


ADCON1=%00001110  'ADC yapılandırması
'      76543210
TRISA=%00000001   'A0 analog giriş Diğerleri Digital
TRISB=%00000000   '
TRISD=%00000000
TRISC=%10000000   '
TRISE=%00000000   ' Çift yönlü Slave portta Read, Write porte.0,porte.1   yap


Symbol GIE  =INTCON.7   'genel interruptlar  aciyor
Symbol PEIE =INTCON.6   'Cevresel kesmeleri  aciyor
'Symbol INTE =INTCON.4   'RB0 Kesmesini aciyor
'Symbol INTF =INTCON.1   'RB0 kesme bayragi
Symbol RCIE =PIE1.5     'USART kesmesini aciyor
Symbol RCIF =PIR1.5     'USART Receive interrupt flag bit
GIE=0     'Butun kesmeler devrede
'INTE=1    'RB0 kesmesi devrede       
RCIE=1    'USART kesmesi devrede
PEIE=1    'Cevresel kesmeler devrede
GIE=1     'Butun kesmeler devrede



Dim KONTROL As Byte 
Dim HATA As Bit
Dim HAM As Word ' Sensör HAM okuma değeri
Dim ISI As Float ' Hesaplanmış ISI değeri
Dim ISI2 As Word
Dim NEM As Float
Dim NEM2 As Word
             
Dim W As Word 
Dim RHlin As Float
Dim RHlin2 As Float
Dim c1 As Float
Dim c2 As Float
Dim c3 As Float
Dim t1 As Float
Dim t2 As Float
Dim d1 As Float
Dim d2 As Float

'ISI = 0
'NEM = 0
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
t1 = 0.01
t2 = 0.00008
d1 = -40.1 '5V => -40.1,  3V => -39.6
d2 = 0.01


'***************************************************
GoTo Main
Dim shtBitIndeks As Byte
   
Symbol CLK=PORTB.6
Symbol DTA=PORTB.7
Symbol DIR=PORTB.1 ' yeni uzatma kablosundan sonra geldi parametrelere eklenecek

Symbol H0=HAM.Byte0
Symbol H1=HAM.Byte1
             
sht11_SensoruOku:
              KONTROL=%00000101:HAM=0   'NEM ÖLÇME
        GoSub OLCUMAL
        GoSub RUTHESAP
              KONTROL=%00000011:HAM=0   'SICAKLIK ÖLÇME
        GoSub OLCUMAL
        GoSub ISIHESAP
         
Return     

'------------------------------- İŞLEM START -----------------------------------
T_START:
     DIR=0
      DelayMS 40
      Output DTA:Output CLK
        High DTA
         Low CLK
       DelayUS 10
        High CLK
         Low DTA
       DelayUS 10
         Low CLK
       DelayUS 10
        High CLK
       DelayUS 10
        High DTA
       DelayUS 10
        Low CLK
       DelayUS 10

Return
'-----------------------SENSORE KOMUT GÖNDER -----------------------------------
OLCUMAL:
           GoSub shtReset
           GoSub T_START
           GoSub KomutGonder
       DIR=1     
           Input DTA
           High CLK
           DelayUS 10
           Low CLK
           DelayUS 10
           HATA=0
           For W=0 To 65500
              If DTA=0 Then GoTo GIT
              DelayUS 5
           Next W
           HATA=1

    GIT:         
         If HATA=1 Then
             GoTo HATALI
         EndIf
         GoSub sht11VeriAl
         GoTo CIK

    HATALI:
        HSerOut["Hata\r"]
       
  CIK:
Return
'----------------------ISI HESAP ALT PROGRAMI-----------------------------------   

KomutGonder:   
      Dim KontrolBit As Byte
      DIR=0
      Output DTA:Output CLK
      Low CLK
      For  shtBitIndeks=7 To 0 Step -1
        KontrolBit = GetBit KONTROL,shtBitIndeks
        If KontrolBit=1 Then
            High DTA
        Else
            Low DTA
        EndIf
        DelayUS 10
        High CLK
        DelayUS 10
        Low CLK
      Next shtBitIndeks
Return

shtReset:
DIR=1
     Output CLK:Input DTA
     Low CLK
     For shtBitIndeks=0 To 9
        High CLK
        DelayUS 10
        Low CLK
        DelayUS 10
     Next shtBitIndeks
Return

sht11VeriAl:
    Low CLK
    For shtBitIndeks=15 To 0 Step -1
           If DTA=1 Then
                SetBit HAM,shtBitIndeks
           Else
                ClearBit HAM,shtBitIndeks
           EndIf
           DelayMS 10
           High CLK
           DelayUS 10
           Low CLK
           
       If shtBitIndeks= 8 Then     'ACK
            DIR=0
            Output DTA
            High DTA
            Low CLK
            DelayUS 10
            Low DTA
            High CLK
            DelayUS 10
            Low CLK
            DelayUS 10
          '  Input DTA                                                             "
EndIf
    Next shtBitIndeks
Return
   
ISIHESAP: 
        ISI = d1 + ( d2 * HAM )
       ISI2= Abs ISI  'ben ekledim mutlak değer şeklinde değer olması için
       ' HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec ham]
Return     
'-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
RUTHESAP:
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
    RHlin = c1 + c2 * HAM
    RHlin2 = c3 * HAM * HAM
    RHlin = RHlin + RHlin2
    NEM = ( t1 + t2 * HAM)
    NEM = NEM * ( ISI - 25)
    NEM = NEM + RHlin
    NEM2= Abs NEM
  ' HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec HAM]
    If NEM>100 Then
        NEM=100
    Else If NEM<0 Then
        NEM=0
    EndIf
Return
 
    Main:
        BASLA:
            sonsuzDongu:
              GoSub sht11_SensoruOku

               HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec NEM2]

               HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec ISI2]

               DelayMS 240
            GoTo sonsuzDongu
    Stop


ete

Normal şartlarda blendajlı kablo kullanarak 1-2 m. mesafeden bu sensörün çalışması gerekir. Bunun için Pullup direncini 1K ya çekmek yeterli olur diye düşünüyorum. Mesafede sıkıntı var ise iki alternatif denenebilir.
1. ci deneme;  RS232 sürü yani MAX232 entegresi denenebilir. Sensörden çıkan data ve CLK uçlarının her birisi MAX232 nin bir TTL girişine verilir. RS232 çıkışından alınan uç kablo ile uzatılıp sonunda başka bir MAX232 ye girilerek (RS232 girişlerine ) TTL çıkışları işlemciye aynı şekilde data ve CLK olarak girilir.

2. ci deneme de MAX485 kullanılır.  Bu entegre normalde tek kanal için üretilmiş olup gerekirse 2 adet kullanılarak sorun giderilebilir. Tek yönlü haberleşme olacağı için Sensör tarafında yer alan MAX485 entegresinin DI ucundan (CLK yada DATA)  girilir. RE/DE ucu birleştirilerek HIGH verilir. AB ucuna ikili kablo bağlanıp diğer tarafa çekilir. diğer uca bir MAX485 daha bağlanır.
Kablo uçları A ve B ye bağlanır. RE/DE ucu LOW a çekilir. RO ucundan alınan bilgi işlemciye verilir .
Bu sistemin avantajı daha uzun mesafelere müsaade etmesidir.
Her iki sistemide denemedim. Tamamen mantıksal olarak aklıma yattığı için denenebiir diyorum.

Bazen RS232 den normal şartlarda okumam gerekenleri okuyamadığım oluyor. Deney ortamında çalıştığım için çok fazla gürültü oluyor. İş de acele olunca yeterince dikkat gösteremiyorsun. Bu gibi durumlarda sistemi hemen RS485'e çeviriyorum bütün sorunlar ortadan kalkıveriyor. Burada da işe yarayacağından eminim.

Ete

ibarrada

0,22lik Blendajlı kabloda kullandım ama pulluk direncini 1 k ya düşürmeme rağmen veri alamadım kablo uzunluğu 2.5 metre olması büyük etken sanırım  RS232 kısa mesafe haberleşme modülü olduğu için sıkıntı yaratabiliyor ben kesin olsun diye RS485 i deneyeceğim elde ettiğim sonuçları burada yazacağım. İlginiz için teşekkür ederim

ete

RS232 kısa mesaf derken oda 3-5 m ye kadar sorun çıkarmaz. Zaten Max232 kullanarak bu kısa mesafe sorununu bir yerde aşmış oluyorsun. Entegrelerin fonksiyonlarına kafa yormak lazım.
Data hattından gelen HIGH (+5V) seviyesindeki sinyali MAX232 ye girdiğin zaman diğer uçtan -10V alacaksın.  LOW girdiğin zaman ise +10V luk bir gerilim alacaksın. Bu durumda LOW ile HIGH arasında 20V luk bir potansiyel farkı oluşmuş olacak ki kullandığın kabloda bir sorun yok ise bu değerler 7V lara kadar düşse bile karşı MAX232 den yine karşılıklarını almış olacaksın.
Bence önce Max232 dene çünki tek entegreden iki girişide kullanabileceğin uç mevcut.
Ete

ibarrada

herkese kolay gelsin sth 11 ile rs232 ile haberleşme yaptım dediğiniz gibi ete hocam ama istediğim değerleri hiç bir zaman alamadım. bende 16F876 ile sht 11 i pcb ye yan yana koyarak okuma aldım ve 16F876 dan analog çıkış sağlayarak ana pic ile haberleştirdim daha doğru ve net bir sonuç elde ettim aşağıda sht 11 ile 16f876 ile haberleşme ve analog çıkış için yazdığım programı paylaşıyorum.


Device=16F876A
DEFINE RESET_ORG 0H
Include "modedefs.bas"   'Seri iletişim için gerekli
Declare Xtal=4    ' HSPLL CAMBIAR XTAL SPEED

'OPTION_REG=%00000011

Adin_Res 8'10 ' Set the resolution to 10
Adin_Tad FRC ' Choose the RC osc for ADC samples
Adin_Stime 100        ' Allow 100us for charge time



Hserial_Baud =9600
Hserial_RCSTA =%10010000
Hserial_TXSTA =%00100100
Hserial_Clear =On


ADCON1=%00001110  'ADC yapılandırması
'      76543210
TRISA=%00000001   'A0 analog giriş Diğerleri Digital
TRISB=%00000000   '
'TRISD=%00000000
TRISC=%10000000   '
'TRISE=%00000000   ' Çift yönlü Slave portta Read, Write porte.0,porte.1   yap


Symbol GIE  =INTCON.7   'genel interruptlar  aciyor
Symbol PEIE =INTCON.6   'Cevresel kesmeleri  aciyor
'Symbol INTE =INTCON.4   'RB0 Kesmesini aciyor
'Symbol INTF =INTCON.1   'RB0 kesme bayragi
Symbol RCIE =PIE1.5     'USART kesmesini aciyor
Symbol RCIF =PIR1.5     'USART Receive interrupt flag bit
GIE=0     'Butun kesmeler devrede
'INTE=1    'RB0 kesmesi devrede       
RCIE=1    'USART kesmesi devrede
PEIE=1    'Cevresel kesmeler devrede
GIE=1     'Butun kesmeler devrede



Dim KONTROL As Byte 
Dim HATA As Bit
Dim HAM As Word ' Sensör HAM okuma değeri
Dim ISI As Float ' Hesaplanmış ISI değeri
Dim ISI2 As Word
Dim NEM As Float
Dim NEM2 As Word
             
Dim W As Word 
Dim RHlin As Float
Dim RHlin2 As Float
Dim c1 As Float
Dim c2 As Float
Dim c3 As Float
Dim t1 As Float
Dim t2 As Float
Dim d1 As Float
Dim d2 As Float

'ISI = 0
'NEM = 0
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
t1 = 0.01
t2 = 0.00008
d1 = -40.1 '5V => -40.1,  3V => -39.6
d2 = 0.01


'***************************************************


Dim shtBitIndeks As Byte
   
Symbol CLK=PORTB.7
Symbol DTA=PORTB.6


Declare CCP1_Pin PORTC.2
Declare CCP2_Pin PORTC.1

' HPWM 0,50,10000
' HPWM 1,250,10000

Symbol H0=HAM.Byte0
Symbol H1=HAM.Byte1


GoTo Main

             
sht11_SensoruOku:
              KONTROL=%00000101:HAM=0   'NEM ÖLÇME
        GoSub OLCUMAL
        GoSub RUTHESAP
              KONTROL=%00000011:HAM=0   'SICAKLIK ÖLÇME
        GoSub OLCUMAL
        GoSub ISIHESAP
         
Return     

'------------------------------- İŞLEM START -----------------------------------
T_START:
      DelayMS 40
      Output DTA:Output CLK
        High DTA
         Low CLK
       DelayUS 10
        High CLK
         Low DTA
       DelayUS 10
         Low CLK
       DelayUS 10
        High CLK
       DelayUS 10
        High DTA
       DelayUS 10
        Low CLK
       DelayUS 10

Return
'-----------------------SENSORE KOMUT GÖNDER -----------------------------------
OLCUMAL:
           GoSub shtReset
           GoSub T_START
           GoSub KomutGonder     
           Input DTA
           High CLK
           DelayUS 10
           Low CLK
           DelayUS 10
           HATA=0
           For W=0 To 65500
              If DTA=0 Then GoTo GIT
              DelayUS 5
           Next W
           HATA=1

    GIT:         
         If HATA=1 Then
             GoTo HATALI
         EndIf
         GoSub sht11VeriAl
         GoTo CIK

    HATALI:
        HSerOut["Hata\r"]
       
  CIK:
Return
'----------------------ISI HESAP ALT PROGRAMI-----------------------------------   

KomutGonder:   
      Dim KontrolBit As Byte
      Output DTA:Output CLK
      Low CLK
      For  shtBitIndeks=7 To 0 Step -1
        KontrolBit = GetBit KONTROL,shtBitIndeks
        If KontrolBit=1 Then
            High DTA
        Else
            Low DTA
        EndIf
        DelayUS 10
        High CLK
        DelayUS 10
        Low CLK
      Next shtBitIndeks
Return

shtReset:
     Output CLK:Input DTA
     Low CLK
     For shtBitIndeks=0 To 9
        High CLK
        DelayUS 10
        Low CLK
        DelayUS 10
     Next shtBitIndeks
Return

sht11VeriAl:
    Low CLK
    For shtBitIndeks=15 To 0 Step -1
           If DTA=1 Then
                SetBit HAM,shtBitIndeks
           Else
                ClearBit HAM,shtBitIndeks
           EndIf
           DelayMS 10
           High CLK
           DelayUS 10
           Low CLK
           
       If shtBitIndeks= 8 Then     'ACK
            Output DTA
            High DTA
            Low CLK
            DelayUS 10
            Low DTA
            High CLK
            DelayUS 10
            Low CLK
            DelayUS 10
          '  Input DTA                                                             "
EndIf
    Next shtBitIndeks
Return
   
ISIHESAP: 
        ISI = d1 + ( d2 * HAM )
       ISI2= Abs ISI  'ben ekledim mutlak değer şeklinde değer olması için
       ' HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec ham]
Return     
'-------------------------RUTUBET HESAP ALT PROGRAMI----------------------------
RUTHESAP:
c1 = -2.0468
c2 = 0.0367
c3 = -0.0000015955
    RHlin = c1 + c2 * HAM
    RHlin2 = c3 * HAM * HAM
    RHlin = RHlin + RHlin2
    NEM = ( t1 + t2 * HAM)
    NEM = NEM * ( ISI - 25)
    NEM = NEM + RHlin
    NEM2= Abs NEM
  ' HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec HAM]
    If NEM>100 Then
        NEM=100
    Else If NEM<0 Then
        NEM=0
    EndIf
Return
 
    Main:
        BASLA:
            sonsuzDongu:
              GoSub sht11_SensoruOku
             

               HSerOut  [0xff, 0xff, 0xff,"page4.n6.val=",Dec NEM2]
              NEM2 = NEM2 * 2.55
              HPWM 0, NEM2, 10000 

               HSerOut  [0xff, 0xff, 0xff,"page4.n7.val=",Dec ISI2]
               ISI2 = ISI2 * 1,6
                HPWM 1, ISI2, 10000
               
               
               DelayMS 240
            GoTo sonsuzDongu
    Stop

bozoklu01

Ben sht11'i cat5 kablo ile 1 buçuk metreden sıkıntısız okuyorum. Tek yaptığım data ucuna çift kablo lehimek oldu diğerleri tek kablo. ETE hocamın dediği şekilde blendajlı usb uzatma kablosuylada aynı mesafede sorunsuz kullandım.

ibarrada

kullandığım mesafe 2.5 metreydi 0.22 lik blendajlı kablo kullandım olmadı cat 6 kullandım olmadı 100nf kondansatör attım Vdd Gnd arasına olmadı yani sth11 en fazla 1.5-2 metre arayla kullanabilirsiniz daha ilerisi için ben çözüm olarak ek bir pic ile işimi hallettim.

ete

Aslında 8 bit yerine 10 bitlik PWM kullansaydın çözünürlük biraz daha artar ve neredeyse birebir sıcaklığı diğer tarafta elde edebilirdin.

Ete

ormeva

Alıntı yapılan: ormeva - 14 Mart 2015, 00:39:52
Selam Arkadaşlar 96 metre CAT6 kablo ile denenmiştir sorunsuz ve doğru değerlerde çalışmaktadır.İşlemci tarafında DATA pininde ve SCK pininde 10K pullup direnci kullandım, sensor tarafıda çizdiğim şekildeki gibidir.

Not: Elimde sadece 96 metre CAT6 kablo kaldığı için metrajı bu şekilde soyledim :))




Powered by EzPortal