Utilisation de l'I2C avec les capteurs thermiques TMP117

Dependencies:   mbed USBDevice

Committer:
adrevong
Date:
Tue Jan 28 11:09:13 2020 +0000
Revision:
9:ec201f39892f
Parent:
7:f5e10b18984d

        

Who changed what in which revision?

UserRevisionLine numberNew 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