ENSMM
/
I2C_SensorsTMP117
Utilisation de l'I2C avec les capteurs thermiques TMP117
main.cpp@9:ec201f39892f, 2020-01-28 (annotated)
- Committer:
- adrevong
- Date:
- Tue Jan 28 11:09:13 2020 +0000
- Revision:
- 9:ec201f39892f
- Parent:
- 7:f5e10b18984d
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adrevong | 9:ec201f39892f | 1 | //Includes |
janjongboom | 0:ba1c49874d3c | 2 | #include "mbed.h" |
adrevong | 9:ec201f39892f | 3 | Timer timer; |
adrevong | 9:ec201f39892f | 4 | #include "USBSerial.h" |
jimbaud | 6:1670244c4eb4 | 5 | |
adrevong | 9:ec201f39892f | 6 | #define I2C_SDA PB_9 // The µcontrolleur SDA |
adrevong | 9:ec201f39892f | 7 | #define I2C_SCL PB_8 // The µcontrolleur SCL |
jimbaud | 6:1670244c4eb4 | 8 | |
jimbaud | 6:1670244c4eb4 | 9 | |
adrevong | 9:ec201f39892f | 10 | int Intervalle_Mesures = 300; //Choix de l'intervalle de mesure en sec |
jimbaud | 6:1670244c4eb4 | 11 | |
jimbaud | 6:1670244c4eb4 | 12 | //Interrupt input |
adrevong | 9:ec201f39892f | 13 | InterruptIn button(PC_13); //User1 |
jimbaud | 6:1670244c4eb4 | 14 | |
adrevong | 9:ec201f39892f | 15 | //USART |
adrevong | 9:ec201f39892f | 16 | USBSerial pc(0x1f00, 0x2012, 0x0001, false); |
jimbaud | 6:1670244c4eb4 | 17 | |
jimbaud | 6:1670244c4eb4 | 18 | |
adrevong | 9:ec201f39892f | 19 | //Voie I2C du F411 |
adrevong | 9:ec201f39892f | 20 | I2C i2c(I2C_SDA, I2C_SCL); |
jimbaud | 6:1670244c4eb4 | 21 | |
adrevong | 9:ec201f39892f | 22 | //Variables |
janjongboom | 0:ba1c49874d3c | 23 | |
adrevong | 9:ec201f39892f | 24 | float tmp; |
adrevong | 9:ec201f39892f | 25 | char cmd[2]; |
jimbaud | 6:1670244c4eb4 | 26 | |
jimbaud | 6:1670244c4eb4 | 27 | //Main program |
adrevong | 9:ec201f39892f | 28 | int main(){ |
adrevong | 9:ec201f39892f | 29 | |
adrevong | 9:ec201f39892f | 30 | timer.start(); |
adrevong | 9:ec201f39892f | 31 | float time, time1; |
adrevong | 9:ec201f39892f | 32 | |
adrevong | 9:ec201f39892f | 33 | time = timer.read_ms()/1000; |
adrevong | 9:ec201f39892f | 34 | |
adrevong | 9:ec201f39892f | 35 | pc.printf("Initialiation...\t"); |
adrevong | 9:ec201f39892f | 36 | cmd[0] = 0x01; |
adrevong | 9:ec201f39892f | 37 | cmd[1] = 0x00; |
adrevong | 9:ec201f39892f | 38 | |
adrevong | 9:ec201f39892f | 39 | i2c.write(0x91, cmd, 2); |
adrevong | 9:ec201f39892f | 40 | cmd[0] = 0x00; |
adrevong | 9:ec201f39892f | 41 | i2c.write(0x91, cmd, 1); |
adrevong | 9:ec201f39892f | 42 | |
adrevong | 9:ec201f39892f | 43 | pc.printf("Initialiation OK\t"); |
adrevong | 9:ec201f39892f | 44 | |
adrevong | 9:ec201f39892f | 45 | cmd[0] = 0; |
adrevong | 9:ec201f39892f | 46 | cmd[1] = 0; |
adrevong | 9:ec201f39892f | 47 | while (button == 1) { |
adrevong | 9:ec201f39892f | 48 | time1 = timer.read_ms()/1000; |
adrevong | 9:ec201f39892f | 49 | |
adrevong | 9:ec201f39892f | 50 | if (time1-time>Intervalle_Mesures){ |
adrevong | 9:ec201f39892f | 51 | i2c.read(0x90, cmd, 2); |
adrevong | 9:ec201f39892f | 52 | |
adrevong | 9:ec201f39892f | 53 | float x = float(cmd[0])*2; |
adrevong | 9:ec201f39892f | 54 | float y = float(cmd[1])*0.0078125; |
adrevong | 9:ec201f39892f | 55 | tmp = x + y; |
adrevong | 9:ec201f39892f | 56 | pc.printf("%0.2f", tmp); |
adrevong | 9:ec201f39892f | 57 | |
adrevong | 9:ec201f39892f | 58 | time=timer.read_ms()/1000; |
adrevong | 9:ec201f39892f | 59 | time1=timer.read_ms()/1000; |
adrevong | 9:ec201f39892f | 60 | } |
janjongboom | 0:ba1c49874d3c | 61 | } |
janjongboom | 0:ba1c49874d3c | 62 | } |
adrevong | 9:ec201f39892f | 63 | |
adrevong | 9:ec201f39892f | 64 | |
adrevong | 9:ec201f39892f | 65 |