/* Arduino code for ECE 44X Group 3: electrical arc speaker Author: Aaron Bicks */ const int thermInOne = A0, thermInTwo = A1, thermInThree = A2; //analog input for 3 sensors const int max_temp = 80; //maximum temperature allowed const int relayOut = 9; //voltage output to relay const int power = 10; int count = 0; int avg_TempC, avg_TempF; bool flip = true; bool closed = true; void setup() { //initialize pins for input pinMode(thermInOne, INPUT); pinMode(thermInTwo, INPUT); pinMode(thermInThree, INPUT); Serial.begin(9600); // initialize relay analogWrite(relayOut, 255); //turn on power pin analogWrite(power, 255); } void loop() { float tempC; float tempF; //initialize average temperatures to 0 avg_TempC = 0; avg_TempF = 0; //input and process data from sensor 1 tempC = sensorOne(); avg_TempC += tempC; tempF = convertToF(tempC); avg_TempF += tempF; if (tempC > max_temp) shutdownHeat(); Serial.println(tempC); Serial.println(tempF); //input and process data from sensor 2 tempC = sensorTwo(); avg_TempC += tempC; tempF = convertToF(tempC); avg_TempF += tempF; Serial.println(tempC); Serial.println(tempF); if (tempC > max_temp) shutdownHeat(); //input and process data from sensor 3 tempC = sensorThree(); avg_TempC += tempC; tempF = convertToF(tempC); avg_TempF += tempF; Serial.println(tempC); Serial.println(tempF); if (tempC > max_temp) shutdownHeat(); Serial.println(); delay(3000); } //take input from sensor 1 float sensorOne(){ float Vin = analogRead(thermInOne); float voltage = Vin * 5.0; voltage /= 1024.0; float temperature = (voltage-0.5) * 100; return temperature; } //take input from sensor 2 float sensorTwo(){ float Vin = analogRead(thermInTwo); float voltage = Vin * 5.0; voltage /= 1024.0; float temperature = (voltage-0.5) * 100; return temperature; } //take input from sensor 3 float sensorThree(){ float Vin = analogRead(thermInThree); float voltage = Vin * 5.0; voltage /= 1024.0; float temperature = (voltage-0.5) * 100; return temperature; } //takes a celcius temperature and converts it to fareinheit float convertToF(float x){ float temperature = (x * 9.0 / 5.0) + 32.0; return temperature; } void shutdownHeat(){ float tempOne; float tempTwo; float tempThree; //shut down system analogWrite(relayOut, 0); //Serial.println("Overheat"); //monitor temperature until it cools down while(tempOne >= max_temp || tempTwo >= max_temp || tempThree >= max_temp){ tempOne = sensorOne(); tempTwo = sensorTwo(); tempThree = sensorThree(); Serial.println("Overheat"); Serial.println(tempOne); Serial.println(tempTwo); Serial.println(tempThree); Serial.println(); delay(1000); } //restart system analogWrite(relayOut, 255); delay(1000); }