Skip to content

Instantly share code, notes, and snippets.

@HectorTorres
Last active June 22, 2018 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HectorTorres/62153de9e59c176a4508fe7d212cd8f2 to your computer and use it in GitHub Desktop.
Save HectorTorres/62153de9e59c176a4508fe7d212cd8f2 to your computer and use it in GitHub Desktop.
tmp102
#include <Wire.h>
#include <LiquidCrystal.h>
#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup()
{
Serial.begin(9600);
pinMode (4, OUTPUT); // Salida que funcionara como alarma
Wire.begin(); //se inicializa la comunicacion i2c
lcd.begin(16, 2); //se inicializa el display lcd
lcd.setCursor(0, 0);
lcd.write("TEMPERATURA (C): ");
}
void loop()
{
double TMP = sensorRead(); //llamar a la funcion sensorRead
lcd.setCursor(0, 1);
lcd.print(TMP); //imprimir la temperatura en el display
delay(500); //esperar 1/2 segundo
if(TMP > 32) //si se eleva mas de 32° la condicion se cumple
{
digitalWrite(4, HIGH); //la salida se mandara a estado alto
}
else
digitalWrite(4, LOW);
}
double sensorRead(void)
{
uint8_t temp[2];
int16_t tempc;
Wire.beginTransmission(0x49); //Inicializa la transmisión con el dispositivo 0x49
Wire.write(0x00); //escribe en el dispositivo
Wire.endTransmission(); //Finaliza la trnasmisión
Wire.requestFrom(0x49, 2); //Pide 2 bytes al dispositivo "0x49"
if (2 <= Wire.available()) //Retorna el numero de bytes disponibles
{
temp[0] = Wire.read(); //Recibe el bytes como caracter
temp[1] = Wire.read();
temp[1] = temp[1] >> 4;
tempc = ((temp[0] << 4) | temp [1] ); //Se realiza una funcion OR con los 2 bytes para mostrar el resultado
return tempc* 0.0625;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment