Autor Tema: Leer Rom del sensor DS 1820  (Leído 1883 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Leer Rom del sensor DS 1820
« en: 02 de Octubre de 2011, 04:02:41 »
Lee la rom del sensor Ds1820 y los datos los guarda en la memoria del pic (Eeprom).
Con estos datos, conectaremos más de 1 sensor por un mismo hilo. :shock:



'********************************************************************
Leer_Serial:
        OWrite DQ,1,[$33] ' Read ROM, leer Serial
Regresa:
       For Index = 0 To 7
          ORead DQ,0,[SERIAL[Index]]
       Next
MostrarSerial:
                 '1234567890123456   
    Print at 1,1,"1-Wire Found ",dec1 NumSensor
    'Print at 2,1,"---------------"
    DelayMS 1000
Leer:   
    X=1
    For Index = 0 To 7
     DelayMS 100
     Print at 2,X, HEX2 SERIAL[Index]
     Dato = SERIAL[Index]
     Ewrite Posicion,[Dato.LOWBYTE]
     x= X+2
     Posicion = Posicion + 1
    Next
    DelayMS 1000
    Cls

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Leer Rom del sensor DS 1820
« Respuesta #1 en: 05 de Octubre de 2011, 13:52:22 »
 :-/ :-/

Una vez leido todos los sensores....

'****************************************************************
'**************************************************************************************
'************************* GRABACION DE SERIES EN EEPROM *****************************
''**************************************************************************

    Edata $10,$12,$0E,$7F,$01,$08,$00,$83   'Número de serie del sensor 0
'   Edata $10,$BE,$0F,$7F,$01,$08,$00,$6F   'Número de serie del sensor 1 
'   Edata $10,$C6,$58,$7F,$01,$08,$00,$92   'Número de serie del sensor 2
    Edata $10,$A0,$51,$7F,$01,$08,$00,$10   'Número de serie del sensor 3
    Edata $10,$74,$46,$7F,$01,$08,$00,$25   'Número de serie del sensor 4
    Edata $10,$51,$4D,$7F,$01,$08,$00,$08   'Número de serie del sensor 5
'   Edata $10,$F1,$49,$7F,$01,$08,$00,$4B   'Número de serie del sensor 6
'   Edata $10,$66,$16,$70,$01,$08,$00,$1F   'Número de serie del sensor 7
    Edata $10,$F4,$59,$F8,$00,$08,$00,$28   'Número de serie del sensor 8
   
   
'**************************************************************************
'****************************************************************
'**************************************************************************


 :mrgreen: y con esto visualizaremos las temperaturas.... :D


Pass = 1
OtraVez: 
 
fOR Sensor = 0 to 4 'Numero_de_sensores   Quitar este 3 provisional
    Sensor_por_8 = Sensor * 8 '....8   
         gosub Escribe_serie    'envía el código $55 seguido de los 8 bytes del número de serie
          OWRITE DQ, 0,[$44]     'envía el código $44 de petición de conversión ADC
         gosub Resete
         gosub Escribe_serie   
           OWRITE DQ, 0,[$BE]     'Envía el código $BE para que se pueda leer el scratchpad
           OREAD DQ,2,[Temp.LOWBYTE,Temp.HIGHBYTE,Cnt,Cnt,Cnt,Cnt,Cnt,Count_Per_Deg] 'Lee el scratchpad
           Temp_Dec = (6.25 * Cnt)
         Gosub Signo
         
select Pass
    case 1
         Print At 1,2, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  1 L ***
    Case 2
         Print At 1,10, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  1 - 1 L ***
    Case 3
         Print At 2,2, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  2 L ***
         'Sala = Temp
    case 4
         Print At 2,10, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  2   -  2 L ***
    Case 5
         Print At 3,2, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  3 L ***
'    case 6
'         Print At 3,10, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  3 -  3L ***
'    case 7
'        Print At 4,2, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  4 L ***
'    case 8
'         Print At 4,11, Dec Temp, ".", Dec DIG Temp_Dec, 1, g',"c"'****  3 -  3L ***
         
        Pass = 1
endselect
        Pass = Pass +1
       
        Next
       
        goto OtraVez
       
 
El numero de sensores es casi inf :( creo, no creo que nadie compre sensores con el mismo codigo... :shock:

Un saludete.... :-/ :-/

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Leer Rom del sensor DS 1820
« Respuesta #2 en: 05 de Octubre de 2011, 14:04:20 »
Coño que falta esto !!! :)


'_____________________________ temperatura ___________________________
Signo:   
    If Temp.8=1 Then
    Temp=(Temp.LowByte ^ $FF) >> 1
    If Cnt = 0 then Temp = Temp + 1
    Sign = "-"
    Else
   Temp=(Temp >> 1)
   Sign = " "             
   Temp_Dec = 100 - Temp_Dec                             
   Endif
   Return

Resete:
 REPEAT
    DELAYMS 25                   ' Espera  conversion     
    OREAD DQ,4,[Cnt]             ' mantiene la lectura
 UNTIL Cnt=0                     
 Return

Escribe_serie:
    OWRITE DQ, 1,[$55]
            for Contador_eeprom = Sensor_por_8 to (Sensor_por_8 + 7)
                OWRITE DQ, 0,[array[Contador_eeprom]]
            next   
    return


 
 :-/ :-/ :-/


 

anything