Biblioteca C para sensor temperatura LM92

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Biblioteca C para sensor temperatura LM92

Mensagempor rudsomlima » 14 Fev 2007 20:12

Olá,

Gostaria de saber se alguém dispõe de biblioteca em C para usar o sensor de temperatura LM92 da National, que usa I2C. Tentei usar as funções disponíveis no PICC mas não consegui ler nada, aparecendo valores não condizentes com o esperado. Se alguém tiver um programa que eu pudesse usar de exemplo, agradeço.

Abração.
rudsomlima
Bit
 
Mensagens: 37
Registrado em: 26 Nov 2006 21:00

Re: Biblioteca C para sensor temperatura LM92

Mensagempor andre_luis » 15 Fev 2007 08:56

Usei o LM75. Nao sei qual a diferença dele para o LM92.
Dá uma olhada no datasheet e ve se aproveita alguma coisa dessa rotina.



[size=9]////////////////////////////////////////////////////////////////////////
void init_I2C ( void )
{
output_float( I2C_SCL ) ;
output_float( I2C_SDA ) ;
}
////////////////////////////////////////////////////////////////////////
int1 i2c_ready ( unsigned int8 address )
{
int1 ack ;
i2c_start() ; // If the write command is acknowledged,
ack = i2c_write( address ) ; // then the device is ready.
i2c_stop() ;
return ( !ack ) ;
}
////////////////////////////////////////////////////////////////////////
void I2CSendByte ( unsigned int8 Chip , unsigned int8 address , unsigned int8 data_value )
{
/// while ( ! i2c_ready ( address ) ) ;
/// i2c_stop() ;
delay_us ( 10 ) ; /* Solucao Empirica */
i2c_start() ; /* START CONDITION */
i2c_write( Chip | ESCRITA ) ; /* SLAVE ADDRESS -> WRITE */
i2c_write( address ) ; /* WORD ADDRESS */
i2c_write( data_value ) ; /* WRITE DATA */
i2c_stop() ; /* STOP CONDITION */
delay_ms ( 50 ) ; /* Solucao Empirica */
}

////////////////////////////////////////////////////////////////////////
unsigned int8 I2CGetByte( unsigned int8 Chip , unsigned int8 address )
{
unsigned int8 data_value ;
/// i2c_stop() ;
delay_us ( 10 ) ; /* Solucao Empirica */
i2c_start() ; /* START CONDITION */
i2c_write( Chip | ESCRITA ) ; /* SLAVE ADDRESS -> WRITE */
if ( Chip == SELECT_LM75A )
i2c_write( ENDERECO_TEMPERATURA ) ; /* WORD ADDRESS */
else
i2c_write( address ) ; /* WORD ADDRESS */
delay_us ( 10 ) ; /* Solucao Empirica */
i2c_start() ; /* SATRT CONDITION */
i2c_write( Chip | LEITURA ) ; /* SLAVE ADDRESS -> READ */
if ( Chip == SELECT_LM75A )
{
TemperaturaDaPlaca = i2c_read() ; /* READ DATA */
data_value = (unsigned int8)TemperaturaDaPlaca ;
TemperaturaDaPlaca <<= 8 ;
TemperaturaDaPlaca |= i2c_read() ; /* READ DATA */
}
else
data_value = i2c_read() ; /* READ DATA */
i2c_stop() ; /* STOP CONDITION */
delay_ms ( 50 ) ; /* Solucao Empirica */
return( data_value ) ;
}
/////////////////////////////////////////////////////////////////////////[size]
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor rudsomlima » 17 Fev 2007 12:49

Obrigado André, vou ver o que aproveito do seu código pra fazer funcionar o LM92.
rudsomlima
Bit
 
Mensagens: 37
Registrado em: 26 Nov 2006 21:00

Mensagempor jeanfernandes » 18 Fev 2007 10:33

Onde compra esse LM92 ?

Grato
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor rudsomlima » 18 Fev 2007 15:08

jeanfernandes,

Você consegue amostras no site da National: www.national.com

Abraço.
rudsomlima
Bit
 
Mensagens: 37
Registrado em: 26 Nov 2006 21:00


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x