Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Materiales necesarios:
Programa en MikroC:
int temp_byte ;
char temp_buf[7];
void main(){
ADCON0 = 0b00011111 ;
TRISJ = 0x00; //puerto J como salida
TRISE2_bit = 0; //en Miuva PRO, el bit RW en la LCD está conectado al bit 2 del Puerto E
LATE2_bit = 0; //MikroC no usa el bit RW, por lo que debemos enviar un 0 lógico
Lcd_Init(); //inicialización del visualizador LCD
Lcd_Cmd(_LCD_CURSOR_OFF); //comando LCD (apagar el cursor)
Lcd_Cmd(_LCD_CLEAR); //comando LCD (borrar el LCD)
I2C2_Init(400000); //inicializa I2C en Hardware a 400KHz
Lcd_Out(1,1,"Sensor TMP102"); //envía mensaje a LCD
while(1)
{
temp_byte = lectura_temp(); //hace lectura del TMP102 usando las funciones del protocolo I2C
LATJ = temp_byte; //se envía la información leida a LEDs
InttoStr(temp_byte, temp_buf); //se hace la conversión de temperatura a string
Lcd_Out(2,1,"Temp. = "); //se envía mensaje a LCD
Lcd_Out(2,10,temp_buf); //se envía temperatura a LCD
}
}
//Función para lectura de temperatura de sensor TMP102. Para mayor información, revisar
//especificaciones de protocolo I2C y ayuda de MikroC
int lectura_temp(){
int x; //variable que almacena información de temperatura
I2C2_Start(); //condición de inicio de I2C
I2C2_Wr(dir_temp_esc); //envía dirección esclava de escritura
I2C2_Wr(0); //envío dirección de registro que se leerá
I2C2_Repeated_Start(); //condición de repetición de inicio de I2C
I2C2_Wr(dir_temp_lec); //envía dirección esclava de lectura
x = I2C2_Rd(0); //lectura de registro de TMP102
I2C2_Stop(); //condición de paro de I2C
return x;
}