Temperature controlled fan with hysteresis cooling

Dependencies:   Motor mbed

Committer:
bryanbates
Date:
Thu Dec 08 19:58:11 2016 +0000
Revision:
0:f3f670fbc25d
Final Project for 4180

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bryanbates 0:f3f670fbc25d 1 #include "mbed.h"
bryanbates 0:f3f670fbc25d 2 #include "TMP36.h"
bryanbates 0:f3f670fbc25d 3 #include "Motor.h"
bryanbates 0:f3f670fbc25d 4 #include <math.h>
bryanbates 0:f3f670fbc25d 5
bryanbates 0:f3f670fbc25d 6 TMP36 tempSensor(p15); // Uses TMP36.h to display temperature in Celcius
bryanbates 0:f3f670fbc25d 7 Serial xbee1(p28, p27); // TX, RX
bryanbates 0:f3f670fbc25d 8 Motor m(p21, p19, p20); // pwm, fwd, rev
bryanbates 0:f3f670fbc25d 9 DigitalOut rst(p11); // RST (RESET)
bryanbates 0:f3f670fbc25d 10 DigitalOut redLED(p5);
bryanbates 0:f3f670fbc25d 11
bryanbates 0:f3f670fbc25d 12
bryanbates 0:f3f670fbc25d 13
bryanbates 0:f3f670fbc25d 14
bryanbates 0:f3f670fbc25d 15 char *float2str(float float_num);
bryanbates 0:f3f670fbc25d 16
bryanbates 0:f3f670fbc25d 17 int main(){
bryanbates 0:f3f670fbc25d 18 rst = 0;
bryanbates 0:f3f670fbc25d 19 wait_ms(1);
bryanbates 0:f3f670fbc25d 20 rst = 1;
bryanbates 0:f3f670fbc25d 21 wait_ms(1);
bryanbates 0:f3f670fbc25d 22
bryanbates 0:f3f670fbc25d 23 float temp = 0.0;
bryanbates 0:f3f670fbc25d 24 float fanspeed;
bryanbates 0:f3f670fbc25d 25 float fanratio;
bryanbates 0:f3f670fbc25d 26
bryanbates 0:f3f670fbc25d 27 xbee1.baud(9600);
bryanbates 0:f3f670fbc25d 28
bryanbates 0:f3f670fbc25d 29 while (1){
bryanbates 0:f3f670fbc25d 30 temp = tempSensor;
bryanbates 0:f3f670fbc25d 31 if (temp > 26.0){
bryanbates 0:f3f670fbc25d 32 fanratio = temp/26;
bryanbates 0:f3f670fbc25d 33 fanspeed = exp(fanratio) - 2.2;
bryanbates 0:f3f670fbc25d 34 redLED = 1;
bryanbates 0:f3f670fbc25d 35 }
bryanbates 0:f3f670fbc25d 36 else{
bryanbates 0:f3f670fbc25d 37 fanspeed = 0.0;
bryanbates 0:f3f670fbc25d 38 redLED = 0;
bryanbates 0:f3f670fbc25d 39 }
bryanbates 0:f3f670fbc25d 40 m.speed(fanspeed);
bryanbates 0:f3f670fbc25d 41
bryanbates 0:f3f670fbc25d 42 xbee1.printf("%.1f\n\r",temp);
bryanbates 0:f3f670fbc25d 43 wait(1);
bryanbates 0:f3f670fbc25d 44 }
bryanbates 0:f3f670fbc25d 45
bryanbates 0:f3f670fbc25d 46 }
bryanbates 0:f3f670fbc25d 47
bryanbates 0:f3f670fbc25d 48