Skip to content

Commit

Permalink
Add aref to the rest of the analog controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
gnarf committed Aug 26, 2015
1 parent 8e616a0 commit f5a7bde
Show file tree
Hide file tree
Showing 2 changed files with 186 additions and 190 deletions.
34 changes: 22 additions & 12 deletions lib/temperature.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ var Board = require("../lib/board.js"),
Emitter = require("events").EventEmitter,
util = require("util");

var CELSIUS_TO_KELVIN = 273.15;

function analogHandler(opts, dataHandler) {
var pin = opts.pin;
Expand Down Expand Up @@ -156,27 +157,36 @@ var Controllers = {
value: analogHandler
}
},
//http://www.ti.com/lit/ds/symlink/lm35.pdf
LM35: {
initialize: {
value: analogHandler
},
toCelsius: {
value: function(raw) {
return (5.0 * raw * 100.0) / 1024.0;
// http://www.ti.com/lit/ds/symlink/lm35.pdf
// VOUT = 1500 mV at 150°C
// VOUT = 250 mV at 25°C
// VOUT = –550 mV at –55°C

var mV = this.aref * 1000 * raw / 1024;

// 10mV = 1°C
return mV / 10;
}
}
},
//http://www.ti.com/lit/ds/symlink/lm335.pdf
LM335: {
initialize: {
value: analogHandler
},
toCelsius: {
value: function(raw) {
var mv = (raw / 1024.0) * 5000;
var k = (mv / 10);
return (k - 273.15);
// http://www.ti.com/lit/ds/symlink/lm335.pdf
// OUTPUT 10mV/°K

var mV = this.aref * 1000 * raw / 1024;

return (mV / 10) - CELSIUS_TO_KELVIN;
}
}
},
Expand All @@ -189,10 +199,10 @@ var Controllers = {
toCelsius: {
value: function(raw) {
// Analog Reference Voltage
var volts = raw * this.aref / 1024;
var mV = this.aref * 1000 * raw / 1024;

// tempC = (mV / 10) - 50
return (volts * 100) - 50;
return (mV / 10) - 50;
}
}
},
Expand Down Expand Up @@ -291,8 +301,8 @@ var Controllers = {
var adcres = 1023;
// Beta parameter
var beta = 3975;
// 0°C = 273.15 K
var kelvin = 273.15;
// 0°C = CELSIUS_TO_KELVIN K
var kelvin = CELSIUS_TO_KELVIN;
// 10 kOhm (sensor resistance)
var rb = 10000;
// Ginf = 1/Rinf
Expand All @@ -315,7 +325,7 @@ var Controllers = {
value: function(raw) {
var adcres = 1023;
var beta = 3950;
var kelvin = 273.15;
var kelvin = CELSIUS_TO_KELVIN;
var rb = 10000; // 10 kOhm
var ginf = 120.6685; // Ginf = 1/Rinf

Expand Down Expand Up @@ -412,7 +422,7 @@ function Temperature(opts) {
},
kelvin: {
get: function() {
return this.celsius + 273.15;
return this.celsius + CELSIUS_TO_KELVIN;
}
}
};
Expand Down
Loading

0 comments on commit f5a7bde

Please sign in to comment.