Sample Code for RDC EET214 Lab3

Dependencies:   mbed

Committer:
YuliangHao
Date:
Wed Sep 27 00:14:08 2017 +0000
Revision:
4:c654bdf271fc
Parent:
3:f2026b3d5763
Minor change

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YuliangHao 1:f780b7362982 1 //Sample Code for EET214 Lab3 Thermostat
YuliangHao 1:f780b7362982 2
YuliangHao 0:0f219dfaaa4a 3 #include "mbed.h"
YuliangHao 0:0f219dfaaa4a 4
YuliangHao 1:f780b7362982 5 DigitalOut furnace(LED4); //use LED4 to simualte furnace
YuliangHao 0:0f219dfaaa4a 6 AnalogIn room_T(p20); //Use pin 20 to read room temperature
YuliangHao 0:0f219dfaaa4a 7 int iRoom_T = 0; //Room Temperature in integer
YuliangHao 1:f780b7362982 8 int iRoom_T_One = 0; //Temperature number at one digit
YuliangHao 1:f780b7362982 9 int iRoom_T_Ten = 0; //Temperature number at ten digit
YuliangHao 0:0f219dfaaa4a 10
YuliangHao 0:0f219dfaaa4a 11 int display10( int iRoom_T_Ten); //Function to display ten digits
YuliangHao 0:0f219dfaaa4a 12 int display1( int iRoom_T_One); //Function to display one digits
YuliangHao 0:0f219dfaaa4a 13
YuliangHao 1:f780b7362982 14 BusOut displayA(p5, p6, p7, p8, p9, p10, p11, p12); //Use P5 - P12 for Display 1
YuliangHao 4:c654bdf271fc 15 BusOut displayB(p21,p22,p23,p24,p25,p26, p27, p28); //Use P21- P28 for display 2
YuliangHao 0:0f219dfaaa4a 16
YuliangHao 0:0f219dfaaa4a 17 int main() {
YuliangHao 0:0f219dfaaa4a 18 while(1) {
YuliangHao 0:0f219dfaaa4a 19
YuliangHao 0:0f219dfaaa4a 20 //Read sensor and convert the value into integer
YuliangHao 0:0f219dfaaa4a 21 iRoom_T = (int)(( room_T * 3.3 ) /0.01 );
YuliangHao 2:e36baf6001b1 22 iRoom_T = 21; //Testing code
YuliangHao 0:0f219dfaaa4a 23
YuliangHao 0:0f219dfaaa4a 24 //Display Room Temperature
YuliangHao 0:0f219dfaaa4a 25 iRoom_T_Ten = iRoom_T / 10; //Get number at ten digits
YuliangHao 0:0f219dfaaa4a 26 iRoom_T_One = iRoom_T % 10; //Get number at one digits
YuliangHao 0:0f219dfaaa4a 27
YuliangHao 0:0f219dfaaa4a 28 display10(iRoom_T_Ten); //Display ten digits
YuliangHao 0:0f219dfaaa4a 29 display1(iRoom_T_One); //Display one digits
YuliangHao 0:0f219dfaaa4a 30
YuliangHao 1:f780b7362982 31 //Turn on / off furnace according to temperature
YuliangHao 4:c654bdf271fc 32 if(iRoom_T > 27) //Over 27 C
YuliangHao 4:c654bdf271fc 33 furnace = 0; //Turn furnace off
YuliangHao 4:c654bdf271fc 34 if(iRoom_T < 25) //Below 25C
YuliangHao 4:c654bdf271fc 35 furnace = 1; //Turn furnace on
YuliangHao 0:0f219dfaaa4a 36
YuliangHao 0:0f219dfaaa4a 37 wait(1); //Wait for 1 second
YuliangHao 1:f780b7362982 38 } // End of while(1)
YuliangHao 0:0f219dfaaa4a 39 }
YuliangHao 0:0f219dfaaa4a 40
YuliangHao 3:f2026b3d5763 41 //Display number at TEN digits
YuliangHao 0:0f219dfaaa4a 42 int display10( int iRoom_T_Ten)
YuliangHao 0:0f219dfaaa4a 43 {
YuliangHao 0:0f219dfaaa4a 44 switch(iRoom_T_Ten)
YuliangHao 0:0f219dfaaa4a 45 {
YuliangHao 0:0f219dfaaa4a 46 case 0:
YuliangHao 1:f780b7362982 47 //displayA = 0x3f; //Common Cathode
YuliangHao 1:f780b7362982 48 displayA = 0xC0; //Common Anode
YuliangHao 0:0f219dfaaa4a 49 break;
YuliangHao 0:0f219dfaaa4a 50
YuliangHao 0:0f219dfaaa4a 51 case 1:
YuliangHao 0:0f219dfaaa4a 52 // displayA = 0x3f;
YuliangHao 0:0f219dfaaa4a 53 break;
YuliangHao 3:f2026b3d5763 54
YuliangHao 3:f2026b3d5763 55 case 2:
YuliangHao 3:f2026b3d5763 56 //displayA = 0x5B; //Common Cathode
YuliangHao 3:f2026b3d5763 57 displayA = 0xA4; //Common Anode
YuliangHao 3:f2026b3d5763 58 break;
YuliangHao 0:0f219dfaaa4a 59
YuliangHao 0:0f219dfaaa4a 60
YuliangHao 0:0f219dfaaa4a 61 default:
YuliangHao 0:0f219dfaaa4a 62 // displayA = 0x00;
YuliangHao 0:0f219dfaaa4a 63 break;
YuliangHao 0:0f219dfaaa4a 64 }
YuliangHao 0:0f219dfaaa4a 65
YuliangHao 0:0f219dfaaa4a 66 return 1;
YuliangHao 0:0f219dfaaa4a 67 }
YuliangHao 0:0f219dfaaa4a 68
YuliangHao 3:f2026b3d5763 69 //Display number at ONE digits
YuliangHao 0:0f219dfaaa4a 70 int display1( int iRoom_T_One)
YuliangHao 0:0f219dfaaa4a 71 {
YuliangHao 0:0f219dfaaa4a 72 switch(iRoom_T_One)
YuliangHao 0:0f219dfaaa4a 73 {
YuliangHao 0:0f219dfaaa4a 74 case 0:
YuliangHao 1:f780b7362982 75 //displayB = 0x3f; //Common Cathode
YuliangHao 1:f780b7362982 76 displayB = 0xC0; //Common Anode
YuliangHao 0:0f219dfaaa4a 77 break;
YuliangHao 0:0f219dfaaa4a 78
YuliangHao 0:0f219dfaaa4a 79 case 1:
YuliangHao 3:f2026b3d5763 80 //displayB = 0x06; //Common Cathode
YuliangHao 3:f2026b3d5763 81 displayB = 0xf9; //Common anode
YuliangHao 0:0f219dfaaa4a 82 break;
YuliangHao 0:0f219dfaaa4a 83
YuliangHao 0:0f219dfaaa4a 84
YuliangHao 0:0f219dfaaa4a 85
YuliangHao 0:0f219dfaaa4a 86 default:
YuliangHao 0:0f219dfaaa4a 87 // displayB = 0x00;
YuliangHao 0:0f219dfaaa4a 88 break;
YuliangHao 0:0f219dfaaa4a 89 }
YuliangHao 0:0f219dfaaa4a 90
YuliangHao 0:0f219dfaaa4a 91 return 1;
YuliangHao 0:0f219dfaaa4a 92 }