mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2025-10-29 17:40:11 +00:00
Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// reads out the MLX90614 infrared thermometer
|
||||
|
||||
#include <Arduino.h>
|
||||
#define SDA_PORT PORTD
|
||||
#define SDA_PIN 3
|
||||
#define SCL_PORT PORTD
|
||||
#define SCL_PIN 5
|
||||
#include <SoftI2CMaster.h>
|
||||
|
||||
|
||||
|
||||
#define DEVICE (0x5A<<1)
|
||||
|
||||
|
||||
|
||||
void setup(){
|
||||
#if (__AVR_ARCH__ == 5) // means ATMEGA
|
||||
Serial.begin(19200);
|
||||
Serial.println("Setup...");
|
||||
#endif
|
||||
i2c_init();
|
||||
}
|
||||
|
||||
void loop(){
|
||||
int dev = 0x5A<<1;
|
||||
int data_low = 0;
|
||||
int data_high = 0;
|
||||
int pec = 0;
|
||||
|
||||
i2c_start(dev+I2C_WRITE);
|
||||
i2c_write(0x07);
|
||||
// read
|
||||
i2c_rep_start(dev+I2C_READ);
|
||||
data_low = i2c_read(false); //Read 1 byte and then send ack
|
||||
data_high = i2c_read(false); //Read 1 byte and then send ack
|
||||
pec = i2c_read(true);
|
||||
i2c_stop();
|
||||
|
||||
//This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
|
||||
double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
|
||||
double tempData = 0x0000; // zero out the data
|
||||
int frac; // data past the decimal point
|
||||
|
||||
// This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
|
||||
tempData = (double)(((data_high & 0x007F) << 8) + data_low);
|
||||
tempData = (tempData * tempFactor)-0.01;
|
||||
|
||||
float celcius = tempData - 273.15;
|
||||
float fahrenheit = (celcius*1.8) + 32;
|
||||
|
||||
#if (__AVR_ARCH__ == 5) // means ATMEGA
|
||||
Serial.print("Celcius: ");
|
||||
Serial.println(celcius);
|
||||
|
||||
Serial.print("Fahrenheit: ");
|
||||
Serial.println(fahrenheit);
|
||||
#endif
|
||||
|
||||
delay(1000); // wait a second before printing again
|
||||
}
|
||||
Reference in New Issue
Block a user