Skip to content

Instantly share code, notes, and snippets.

@AlexanderEllis
Created August 13, 2017 20:37
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 AlexanderEllis/5d25657a4d04ce2848e1747feaf52bfe to your computer and use it in GitHub Desktop.
Save AlexanderEllis/5d25657a4d04ce2848e1747feaf52bfe to your computer and use it in GitHub Desktop.
const int sensorPin = A0;
const float baselineTemp = 25.0;
void setup() {
Serial.begin(9600);
for (int pinNumber = 2; pinNumber < 5; pinNumber++) {
pinMode(pinNumber, OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
int sensorVal = analogRead(sensorPin);
Serial.print("Sensor Value: ");
Serial.print(sensorVal);
// Now we can actually convert this value to volts by getting the ratio
// 1023 is 5V, 0 is 0, so ratio in between
float voltage = (sensorVal / 1024.0) * 5.0;
Serial.print(", Volts: ");
Serial.print(voltage);
// Convert using datasheet to C. 10 millivolts of change is equivalent to a temp change of 1 degree science
// Offset for negative temperatures
Serial.print(", degrees C: ");
float temperature = (voltage - 0.5) * 100;
Serial.println(temperature);
if (temperature < baselineTemp) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} else if (temperature >= baselineTemp && temperature < baselineTemp + 2) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
} else if (temperature >= baselineTemp + 2 && temperature < baselineTemp + 4) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
} else if (temperature >= baselineTemp + 4) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
delay(10);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment