Update Detector_Building.ino
This commit is contained in:
parent
54871f203e
commit
130d8ca372
1 changed files with 22 additions and 16 deletions
|
@ -16,7 +16,6 @@ const bool CALIB = false; // Calibration mode
|
||||||
const int LED_R = 4, LED_G = 3, LED_B = 2, THERM = 0; // Device component pins
|
const int LED_R = 4, LED_G = 3, LED_B = 2, THERM = 0; // Device component pins
|
||||||
const double R_k = 10000, V_in = 5, analog_max = 1023; // Device constants
|
const double R_k = 10000, V_in = 5, analog_max = 1023; // Device constants
|
||||||
|
|
||||||
|
|
||||||
// Calibration data
|
// Calibration data
|
||||||
const int n = 3, m = n / 3; // Number of data points, MUST be multiple of 3
|
const int n = 3, m = n / 3; // Number of data points, MUST be multiple of 3
|
||||||
double V[n] = { 2.12, 3.26, 3.96 }; // Voltage measurements
|
double V[n] = { 2.12, 3.26, 3.96 }; // Voltage measurements
|
||||||
|
@ -85,6 +84,7 @@ void blink(int pin) {
|
||||||
delay(1000);
|
delay(1000);
|
||||||
digitalWrite(pin, LOW);
|
digitalWrite(pin, LOW);
|
||||||
}
|
}
|
||||||
|
// More Arduino stuff
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
pinMode(LED_R, OUTPUT);
|
pinMode(LED_R, OUTPUT);
|
||||||
|
@ -125,7 +125,10 @@ void setup() {
|
||||||
void loop() {
|
void loop() {
|
||||||
int V_raw = analogRead(THERM); // Read in raw analog value
|
int V_raw = analogRead(THERM); // Read in raw analog value
|
||||||
double V_out = a2d(V_raw); // Convert analog to digital
|
double V_out = a2d(V_raw); // Convert analog to digital
|
||||||
|
double R_t = R_k * (V_in / V_out - 1); // Thermistor resistance
|
||||||
|
|
||||||
if (CALIB) {
|
if (CALIB) {
|
||||||
|
// Calibration mode
|
||||||
Serial.print("Raw analog reading: ");
|
Serial.print("Raw analog reading: ");
|
||||||
Serial.print(V_raw);
|
Serial.print(V_raw);
|
||||||
Serial.print(" Voltage (V): ");
|
Serial.print(" Voltage (V): ");
|
||||||
|
@ -134,7 +137,7 @@ void loop() {
|
||||||
delay(500);
|
delay(500);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
double R_t = R_k * (V_in / V_out - 1); // Thermistor resistance
|
|
||||||
|
|
||||||
int s = 0;
|
int s = 0;
|
||||||
while (s + 1 < m && V_out > V_mid[s + 1]) s++; // Find correct segment
|
while (s + 1 < m && V_out > V_mid[s + 1]) s++; // Find correct segment
|
||||||
|
@ -144,28 +147,30 @@ void loop() {
|
||||||
double C = k2c(K);
|
double C = k2c(K);
|
||||||
double F = c2f(C);
|
double F = c2f(C);
|
||||||
|
|
||||||
|
|
||||||
// LED stuff
|
// LED stuff
|
||||||
if (C <= 25) {
|
if (C <= 25) { // Cold
|
||||||
digitalWrite(LED_R, LOW);
|
digitalWrite(LED_R, LOW);
|
||||||
digitalWrite(LED_G, LOW);
|
digitalWrite(LED_G, LOW);
|
||||||
digitalWrite(LED_B, HIGH);
|
digitalWrite(LED_B, HIGH);
|
||||||
}
|
}
|
||||||
else if (C <= 50) {
|
else if (C <= 50) { // Medium
|
||||||
digitalWrite(LED_R, LOW);
|
digitalWrite(LED_R, LOW);
|
||||||
digitalWrite(LED_G, HIGH);
|
digitalWrite(LED_G, HIGH);
|
||||||
digitalWrite(LED_B, LOW);
|
digitalWrite(LED_B, LOW);
|
||||||
}
|
}
|
||||||
else if (C <= 75) {
|
else if (C <= 75) { // Hot
|
||||||
digitalWrite(LED_R, HIGH);
|
digitalWrite(LED_R, HIGH);
|
||||||
digitalWrite(LED_G, LOW);
|
digitalWrite(LED_G, LOW);
|
||||||
digitalWrite(LED_B, LOW);
|
digitalWrite(LED_B, LOW);
|
||||||
}
|
}
|
||||||
else {
|
else { // Something seriously wrong
|
||||||
digitalWrite(LED_R, HIGH);
|
digitalWrite(LED_R, HIGH);
|
||||||
digitalWrite(LED_G, HIGH);
|
digitalWrite(LED_G, HIGH);
|
||||||
digitalWrite(LED_B, HIGH);
|
digitalWrite(LED_B, HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Output voltage, temperature
|
// Output voltage, temperature
|
||||||
Serial.print("Raw analog reading: ");
|
Serial.print("Raw analog reading: ");
|
||||||
Serial.print(V_raw);
|
Serial.print(V_raw);
|
||||||
|
@ -175,8 +180,9 @@ void loop() {
|
||||||
//Serial.print(R_t);
|
//Serial.print(R_t);
|
||||||
Serial.print(" Temperature (°C): ");
|
Serial.print(" Temperature (°C): ");
|
||||||
Serial.print(C);
|
Serial.print(C);
|
||||||
Serial.print(" Temperature (°F): "); // For reference
|
// For reference
|
||||||
Serial.print(F);
|
//Serial.print(" Temperature (°F): ");
|
||||||
|
//Serial.print(F);
|
||||||
|
|
||||||
// Debug stuff
|
// Debug stuff
|
||||||
/*Serial.print(" Segment lower bound: ");
|
/*Serial.print(" Segment lower bound: ");
|
||||||
|
|
Loading…
Reference in a new issue