![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
a
main.cpp@0:37af44a1306e, 2016-12-21 (annotated)
- Committer:
- DrMirko
- Date:
- Wed Dec 21 19:43:24 2016 +0000
- Revision:
- 0:37af44a1306e
aa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DrMirko | 0:37af44a1306e | 1 | #include "mbed.h" |
DrMirko | 0:37af44a1306e | 2 | #include "TextLCD.h" |
DrMirko | 0:37af44a1306e | 3 | #include "Motor.h" |
DrMirko | 0:37af44a1306e | 4 | |
DrMirko | 0:37af44a1306e | 5 | Motor m1(D10, D8, D9); |
DrMirko | 0:37af44a1306e | 6 | TextLCD lcd(D12, D11, D5, D4, D3, D2); |
DrMirko | 0:37af44a1306e | 7 | InterruptIn button(PC_13); |
DrMirko | 0:37af44a1306e | 8 | |
DrMirko | 0:37af44a1306e | 9 | I2C i2c(D14, D15); |
DrMirko | 0:37af44a1306e | 10 | const int addr = 0x90; |
DrMirko | 0:37af44a1306e | 11 | volatile float tmin; |
DrMirko | 0:37af44a1306e | 12 | volatile float tmax; |
DrMirko | 0:37af44a1306e | 13 | |
DrMirko | 0:37af44a1306e | 14 | void ISR1() |
DrMirko | 0:37af44a1306e | 15 | { |
DrMirko | 0:37af44a1306e | 16 | lcd.cls(); |
DrMirko | 0:37af44a1306e | 17 | lcd.printf("Min: %.1f C", tmin/256); |
DrMirko | 0:37af44a1306e | 18 | wait(2); |
DrMirko | 0:37af44a1306e | 19 | lcd.cls(); |
DrMirko | 0:37af44a1306e | 20 | lcd.printf("Max: %.1f C", tmax/256); |
DrMirko | 0:37af44a1306e | 21 | wait(2); |
DrMirko | 0:37af44a1306e | 22 | lcd.cls(); |
DrMirko | 0:37af44a1306e | 23 | } |
DrMirko | 0:37af44a1306e | 24 | int main() |
DrMirko | 0:37af44a1306e | 25 | { |
DrMirko | 0:37af44a1306e | 26 | button.rise(&ISR1); |
DrMirko | 0:37af44a1306e | 27 | char cmd[2]; |
DrMirko | 0:37af44a1306e | 28 | printf("\r\nTCN75 I2C thermometer\r\n"); |
DrMirko | 0:37af44a1306e | 29 | cmd[0] = 0x01; |
DrMirko | 0:37af44a1306e | 30 | cmd[1] = 0x00; |
DrMirko | 0:37af44a1306e | 31 | i2c.write(addr, cmd, 2); |
DrMirko | 0:37af44a1306e | 32 | tmin=100*256; |
DrMirko | 0:37af44a1306e | 33 | tmax=-273.15*100; |
DrMirko | 0:37af44a1306e | 34 | while(1) { |
DrMirko | 0:37af44a1306e | 35 | wait(2); |
DrMirko | 0:37af44a1306e | 36 | cmd[0] = 0x00; |
DrMirko | 0:37af44a1306e | 37 | i2c.write(addr, cmd, 1); |
DrMirko | 0:37af44a1306e | 38 | i2c.read(addr, cmd, 2); |
DrMirko | 0:37af44a1306e | 39 | float temp = cmd[0]<<8|cmd[1]; |
DrMirko | 0:37af44a1306e | 40 | lcd.printf("Temperatura :\n %.1f C\n", temp/256); |
DrMirko | 0:37af44a1306e | 41 | //printf("Temperatue = %.4f C\r\n", temp/256); |
DrMirko | 0:37af44a1306e | 42 | if(temp<tmin) { |
DrMirko | 0:37af44a1306e | 43 | tmin=temp; |
DrMirko | 0:37af44a1306e | 44 | } |
DrMirko | 0:37af44a1306e | 45 | else if(temp>tmax) { |
DrMirko | 0:37af44a1306e | 46 | tmax=temp; |
DrMirko | 0:37af44a1306e | 47 | } |
DrMirko | 0:37af44a1306e | 48 | if(temp/256>30){ |
DrMirko | 0:37af44a1306e | 49 | m1.speed(0.7); |
DrMirko | 0:37af44a1306e | 50 | } |
DrMirko | 0:37af44a1306e | 51 | } |
DrMirko | 0:37af44a1306e | 52 | } |