logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AtMega - termometr z DS18B20 i czujnikiem wilgotności w Bascom - jak zrobić?

misiekdg 17 Lut 2007 13:02 3625 1
REKLAMA
  • #1 3582362
    misiekdg
    Poziom 13  
    Posty: 126
    Ocena: 20
    próbuje zrobic temomert z czujnikiem wilgotności. Odczyt temperatury jest dodkonywany z DS 18B20
    
    $crystal = 16000000
    $lib "mcsbyte.lbx"
    $regfile = "m16def.dat"
    $baud = 19200
    Config 1wire = Porta.0
    Deflcdchar 0 , 238 , 234 , 238 , 224 , 224 , 224 , 224 , 224       'definicja symbolu "stopień"
    
    Config Portd = Output
    Config Scl = Portc.0
    Config Sda = Portc.1
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
    Config Lcd = 16 * 2
    
    Declare Sub Odcz_temp
    Dim Temperatura1 As Byte
    Dim Temperatura2 As Byte
    Dim T1 As Single
    Dim X As Single
    Dim T2 As Single
    Dim Tmp As String * 6
    Dim R As Byte
    Dim Znak As String * 1
    R = &HFF
    
    Cls
    
    
    Do
    
    Call Odcz_temp
    
    Cls
    
    Loop
    
    End
    
    
    Sub Odcz_temp
    
    1wreset
    1wwrite &HCC
    1wwrite &H44
    
    Waitms 1000
    
    1wreset
    1wwrite &HCC
    1wwrite &HBE
    
    
    
    Temperatura1 = 1wread()                                     'odczyt z termometru
    Temperatura2 = 1wread()
    
    1wreset                                                     'podprogram 1wr
    
    If Temperatura2 >= 248 Then                                 'w przypadku temperatur ujemnych
    Temperatura1 = R - Temperatura1                             'Od 255 Odejmujemy B1
    Temperatura2 = R - Temperatura2                             'od 255 odejmujemy B2
    End If
    T1 = Temperatura1 / 16                                      'Przesuniecie w pawo o 4 bajty
    T2 = Temperatura2 * 16                                      'przesuniecie w lewo o 4 bajty
    T1 = T1 + T2
    
    Tmp = Fusing(t1 , "###.&&")
    
    End Sub
    


    Czujnik wilgotności jest oporowy a tu jest jego opis http://www.cyfronika.com.pl/ARCHIWUM/h25k5.pdf

    Jak się za to zabrać, bo jak widać wartość odcytu wilgotności jest też uzalezniona od temperatury
  • REKLAMA
  • #2 3582538
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    Masz podany schemat podłączenia. V1 to np napięcie zasilające lub lepiej Vref, V0 podajesz na wejście przetwornika ADC i mierzysz napięcie. W pdf jest podana formuła wiążąca wszystkie niewiadome.
REKLAMA