Jordan Beason
/
A1_Q3_1-3_jbeason
Final Commit
main.cpp@0:d08b5dcb3f52, 2019-10-04 (annotated)
- Committer:
- jbeason3
- Date:
- Fri Oct 04 21:30:23 2019 +0000
- Revision:
- 0:d08b5dcb3f52
Final Commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jbeason3 | 0:d08b5dcb3f52 | 1 | #include "mbed.h" |
jbeason3 | 0:d08b5dcb3f52 | 2 | DigitalOut led1(p24); |
jbeason3 | 0:d08b5dcb3f52 | 3 | DigitalOut led2(p23); |
jbeason3 | 0:d08b5dcb3f52 | 4 | DigitalOut led3(p22); |
jbeason3 | 0:d08b5dcb3f52 | 5 | DigitalOut led4(p21); |
jbeason3 | 0:d08b5dcb3f52 | 6 | AnalogIn photo(p15); |
jbeason3 | 0:d08b5dcb3f52 | 7 | AnalogIn LM19(p18); |
jbeason3 | 0:d08b5dcb3f52 | 8 | Serial pc(USBTX, USBRX); |
jbeason3 | 0:d08b5dcb3f52 | 9 | |
jbeason3 | 0:d08b5dcb3f52 | 10 | struct NMEA{ |
jbeason3 | 0:d08b5dcb3f52 | 11 | char header[5]; |
jbeason3 | 0:d08b5dcb3f52 | 12 | char buffer[100]; |
jbeason3 | 0:d08b5dcb3f52 | 13 | char checksum[2]; |
jbeason3 | 0:d08b5dcb3f52 | 14 | }; |
jbeason3 | 0:d08b5dcb3f52 | 15 | |
jbeason3 | 0:d08b5dcb3f52 | 16 | NMEA data; |
jbeason3 | 0:d08b5dcb3f52 | 17 | Timer t; |
jbeason3 | 0:d08b5dcb3f52 | 18 | |
jbeason3 | 0:d08b5dcb3f52 | 19 | int main() { |
jbeason3 | 0:d08b5dcb3f52 | 20 | t.start(); |
jbeason3 | 0:d08b5dcb3f52 | 21 | while(1) { |
jbeason3 | 0:d08b5dcb3f52 | 22 | float light = photo.read(); |
jbeason3 | 0:d08b5dcb3f52 | 23 | float temp = LM19.read(); |
jbeason3 | 0:d08b5dcb3f52 | 24 | float tempC = (1.8663 - 3.3*temp)/0.01169; |
jbeason3 | 0:d08b5dcb3f52 | 25 | //print NMEA string |
jbeason3 | 0:d08b5dcb3f52 | 26 | pc.printf("$TTMPL %f, %f, %f, %f; \r\n", t.read(), temp, tempC, light); |
jbeason3 | 0:d08b5dcb3f52 | 27 | if (tempC < 20 & light > 1.75) { |
jbeason3 | 0:d08b5dcb3f52 | 28 | led1 = 1; |
jbeason3 | 0:d08b5dcb3f52 | 29 | led2 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 30 | led3 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 31 | led4 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 32 | // 3.3 print out |
jbeason3 | 0:d08b5dcb3f52 | 33 | pc.printf("$TTMPL %f, %f, %f, Cold, %f, Day; \r\n", t.read(), temp, tempC, light); |
jbeason3 | 0:d08b5dcb3f52 | 34 | } |
jbeason3 | 0:d08b5dcb3f52 | 35 | if (tempC < 20 & light < 1.75) { |
jbeason3 | 0:d08b5dcb3f52 | 36 | led1 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 37 | led2 = 1; |
jbeason3 | 0:d08b5dcb3f52 | 38 | led3 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 39 | led4 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 40 | // 3.3 print out |
jbeason3 | 0:d08b5dcb3f52 | 41 | pc.printf("$TTMPL %f, %f, %f, Cold, %f, Night; \r\n", t.read(), temp, tempC, light); |
jbeason3 | 0:d08b5dcb3f52 | 42 | } |
jbeason3 | 0:d08b5dcb3f52 | 43 | if (tempC > 20 & light > 1.75) { |
jbeason3 | 0:d08b5dcb3f52 | 44 | led1 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 45 | led2 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 46 | led3 = 1; |
jbeason3 | 0:d08b5dcb3f52 | 47 | led4 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 48 | // 3.3 print out |
jbeason3 | 0:d08b5dcb3f52 | 49 | pc.printf("$TTMPL %f, %f, %f, Hot, %f, Day; \r\n", t.read(), temp, tempC, light); |
jbeason3 | 0:d08b5dcb3f52 | 50 | } |
jbeason3 | 0:d08b5dcb3f52 | 51 | if (tempC > 20 & light < 1.75) { |
jbeason3 | 0:d08b5dcb3f52 | 52 | led1 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 53 | led2 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 54 | led3 = 0; |
jbeason3 | 0:d08b5dcb3f52 | 55 | led4 = 1; |
jbeason3 | 0:d08b5dcb3f52 | 56 | // 3.3 print out |
jbeason3 | 0:d08b5dcb3f52 | 57 | pc.printf("$TTMPL %f, %f, %f, Hot, %f, Night; \r\n", t.read(), temp, tempC, light); |
jbeason3 | 0:d08b5dcb3f52 | 58 | } |
jbeason3 | 0:d08b5dcb3f52 | 59 | wait(5); |
jbeason3 | 0:d08b5dcb3f52 | 60 | |
jbeason3 | 0:d08b5dcb3f52 | 61 | //clean serial ports |
jbeason3 | 0:d08b5dcb3f52 | 62 | while(pc.readable()){ |
jbeason3 | 0:d08b5dcb3f52 | 63 | pc.getc(); |
jbeason3 | 0:d08b5dcb3f52 | 64 | |
jbeason3 | 0:d08b5dcb3f52 | 65 | } |
jbeason3 | 0:d08b5dcb3f52 | 66 | } |
jbeason3 | 0:d08b5dcb3f52 | 67 | } |
jbeason3 | 0:d08b5dcb3f52 | 68 | |
jbeason3 | 0:d08b5dcb3f52 | 69 | |
jbeason3 | 0:d08b5dcb3f52 | 70 |