Yuliang Hao
/
Thermostat
Sample Code for RDC EET214 Lab3
main.cpp@0:0f219dfaaa4a, 2017-09-25 (annotated)
- Committer:
- YuliangHao
- Date:
- Mon Sep 25 18:46:00 2017 +0000
- Revision:
- 0:0f219dfaaa4a
- Child:
- 1:f780b7362982
Sample Code for RDC EET214 Course Lab3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YuliangHao | 0:0f219dfaaa4a | 1 | #include "mbed.h" |
YuliangHao | 0:0f219dfaaa4a | 2 | |
YuliangHao | 0:0f219dfaaa4a | 3 | DigitalOut furnace(LED4); //use LeD4 to simualte furnace |
YuliangHao | 0:0f219dfaaa4a | 4 | AnalogIn room_T(p20); //Use pin 20 to read room temperature |
YuliangHao | 0:0f219dfaaa4a | 5 | int iRoom_T = 0; //Room Temperature in integer |
YuliangHao | 0:0f219dfaaa4a | 6 | int iRoom_T_One = 0; //Temperature at one digit |
YuliangHao | 0:0f219dfaaa4a | 7 | int iRoom_T_Ten = 0; //Temperature at ten digit |
YuliangHao | 0:0f219dfaaa4a | 8 | |
YuliangHao | 0:0f219dfaaa4a | 9 | int display10( int iRoom_T_Ten); //Function to display ten digits |
YuliangHao | 0:0f219dfaaa4a | 10 | int display1( int iRoom_T_One); //Function to display one digits |
YuliangHao | 0:0f219dfaaa4a | 11 | |
YuliangHao | 0:0f219dfaaa4a | 12 | BusOut displayA(p5, p6, p7, p8, p9, p10, p11, p12); |
YuliangHao | 0:0f219dfaaa4a | 13 | BusOut displayB(p21,p22,p23,p24,p25,p26,p27,p28); |
YuliangHao | 0:0f219dfaaa4a | 14 | |
YuliangHao | 0:0f219dfaaa4a | 15 | int main() { |
YuliangHao | 0:0f219dfaaa4a | 16 | while(1) { |
YuliangHao | 0:0f219dfaaa4a | 17 | |
YuliangHao | 0:0f219dfaaa4a | 18 | //Read sensor and convert the value into integer |
YuliangHao | 0:0f219dfaaa4a | 19 | iRoom_T = (int)(( room_T * 3.3 ) /0.01 ); |
YuliangHao | 0:0f219dfaaa4a | 20 | |
YuliangHao | 0:0f219dfaaa4a | 21 | //Display Room Temperature |
YuliangHao | 0:0f219dfaaa4a | 22 | iRoom_T_Ten = iRoom_T / 10; //Get number at ten digits |
YuliangHao | 0:0f219dfaaa4a | 23 | iRoom_T_One = iRoom_T % 10; //Get number at one digits |
YuliangHao | 0:0f219dfaaa4a | 24 | |
YuliangHao | 0:0f219dfaaa4a | 25 | display10(iRoom_T_Ten); //Display ten digits |
YuliangHao | 0:0f219dfaaa4a | 26 | display1(iRoom_T_One); //Display one digits |
YuliangHao | 0:0f219dfaaa4a | 27 | |
YuliangHao | 0:0f219dfaaa4a | 28 | //Turn on / off Furnace according to temperature |
YuliangHao | 0:0f219dfaaa4a | 29 | if(iRoom_T > 27) |
YuliangHao | 0:0f219dfaaa4a | 30 | furnace = 1; |
YuliangHao | 0:0f219dfaaa4a | 31 | if(iRoom_T < 25) |
YuliangHao | 0:0f219dfaaa4a | 32 | furnace = 0; |
YuliangHao | 0:0f219dfaaa4a | 33 | |
YuliangHao | 0:0f219dfaaa4a | 34 | wait(1); //Wait for 1 second |
YuliangHao | 0:0f219dfaaa4a | 35 | } |
YuliangHao | 0:0f219dfaaa4a | 36 | } |
YuliangHao | 0:0f219dfaaa4a | 37 | |
YuliangHao | 0:0f219dfaaa4a | 38 | //Display number at ten digits |
YuliangHao | 0:0f219dfaaa4a | 39 | int display10( int iRoom_T_Ten) |
YuliangHao | 0:0f219dfaaa4a | 40 | { |
YuliangHao | 0:0f219dfaaa4a | 41 | switch(iRoom_T_Ten) |
YuliangHao | 0:0f219dfaaa4a | 42 | { |
YuliangHao | 0:0f219dfaaa4a | 43 | case 0: |
YuliangHao | 0:0f219dfaaa4a | 44 | // displayA = 0x3f; |
YuliangHao | 0:0f219dfaaa4a | 45 | break; |
YuliangHao | 0:0f219dfaaa4a | 46 | |
YuliangHao | 0:0f219dfaaa4a | 47 | case 1: |
YuliangHao | 0:0f219dfaaa4a | 48 | // displayA = 0x3f; |
YuliangHao | 0:0f219dfaaa4a | 49 | break; |
YuliangHao | 0:0f219dfaaa4a | 50 | |
YuliangHao | 0:0f219dfaaa4a | 51 | |
YuliangHao | 0:0f219dfaaa4a | 52 | |
YuliangHao | 0:0f219dfaaa4a | 53 | default: |
YuliangHao | 0:0f219dfaaa4a | 54 | // displayA = 0x00; |
YuliangHao | 0:0f219dfaaa4a | 55 | break; |
YuliangHao | 0:0f219dfaaa4a | 56 | } |
YuliangHao | 0:0f219dfaaa4a | 57 | |
YuliangHao | 0:0f219dfaaa4a | 58 | return 1; |
YuliangHao | 0:0f219dfaaa4a | 59 | } |
YuliangHao | 0:0f219dfaaa4a | 60 | |
YuliangHao | 0:0f219dfaaa4a | 61 | //Display number at one digits |
YuliangHao | 0:0f219dfaaa4a | 62 | int display1( int iRoom_T_One) |
YuliangHao | 0:0f219dfaaa4a | 63 | { |
YuliangHao | 0:0f219dfaaa4a | 64 | switch(iRoom_T_One) |
YuliangHao | 0:0f219dfaaa4a | 65 | { |
YuliangHao | 0:0f219dfaaa4a | 66 | case 0: |
YuliangHao | 0:0f219dfaaa4a | 67 | // displayB = 0x3f; |
YuliangHao | 0:0f219dfaaa4a | 68 | break; |
YuliangHao | 0:0f219dfaaa4a | 69 | |
YuliangHao | 0:0f219dfaaa4a | 70 | case 1: |
YuliangHao | 0:0f219dfaaa4a | 71 | // displayB = 0x3f; |
YuliangHao | 0:0f219dfaaa4a | 72 | break; |
YuliangHao | 0:0f219dfaaa4a | 73 | |
YuliangHao | 0:0f219dfaaa4a | 74 | |
YuliangHao | 0:0f219dfaaa4a | 75 | |
YuliangHao | 0:0f219dfaaa4a | 76 | default: |
YuliangHao | 0:0f219dfaaa4a | 77 | // displayB = 0x00; |
YuliangHao | 0:0f219dfaaa4a | 78 | break; |
YuliangHao | 0:0f219dfaaa4a | 79 | } |
YuliangHao | 0:0f219dfaaa4a | 80 | |
YuliangHao | 0:0f219dfaaa4a | 81 | return 1; |
YuliangHao | 0:0f219dfaaa4a | 82 | } |