Utilisation Simple de l'I2C

Dependencies:   mbed

Committer:
adrevong
Date:
Tue Jan 28 11:06:59 2020 +0000
Revision:
2:8119e223a856
Parent:
1:e3aa5dc929c0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gabinader 0:2b07c4b9eb17 1 /*----------------------------------------------------------------------------
adrevong 2:8119e223a856 2 I2C interface
gabinader 0:2b07c4b9eb17 3 SERIAL COMMUNICATION
adrevong 2:8119e223a856 4 */
adrevong 2:8119e223a856 5
gabinader 0:2b07c4b9eb17 6 #include "mbed.h"
gabinader 0:2b07c4b9eb17 7 #include "pindef.h"
gabinader 0:2b07c4b9eb17 8
gabinader 0:2b07c4b9eb17 9 //I2C interface
gabinader 0:2b07c4b9eb17 10 I2C temp_sensor(I2C_SDA, I2C_SCL);
gabinader 0:2b07c4b9eb17 11 Serial pc(UART_TX, UART_RX);
gabinader 0:2b07c4b9eb17 12
adrevong 2:8119e223a856 13 //I2C address of temperature sensor
adrevong 2:8119e223a856 14 const int temp_addr = 0x92;
gabinader 0:2b07c4b9eb17 15
gabinader 0:2b07c4b9eb17 16 char cmd[] = {0x51, 0xAA};
gabinader 0:2b07c4b9eb17 17 char read_temp[2];
gabinader 0:2b07c4b9eb17 18
gabinader 0:2b07c4b9eb17 19 /*----------------------------------------------------------------------------
gabinader 0:2b07c4b9eb17 20 MAIN function
gabinader 0:2b07c4b9eb17 21 *----------------------------------------------------------------------------*/
gabinader 0:2b07c4b9eb17 22
gabinader 0:2b07c4b9eb17 23 int main(){
gabinader 0:2b07c4b9eb17 24 while(1){
gabinader 0:2b07c4b9eb17 25 /*
gabinader 0:2b07c4b9eb17 26 Write the Start Convert T command to the sensor
gabinader 0:2b07c4b9eb17 27 Write the Read Temperature command to the sensor
gabinader 0:2b07c4b9eb17 28 Read the 16-bit temperature data
gabinader 0:2b07c4b9eb17 29 */
gabinader 0:2b07c4b9eb17 30
gabinader 0:2b07c4b9eb17 31 //Write your code here
gabinader 0:2b07c4b9eb17 32
gabinader 1:e3aa5dc929c0 33
adrevong 2:8119e223a856 34 temp_sensor.write(10010010, &cmd[0], 0);
gabinader 1:e3aa5dc929c0 35 wait(0.5);
adrevong 2:8119e223a856 36 temp_sensor.write(10010010, &cmd[1], 0);
adrevong 2:8119e223a856 37 temp_sensor.read(10010011, read_temp, 1);
gabinader 0:2b07c4b9eb17 38
gabinader 1:e3aa5dc929c0 39
gabinader 0:2b07c4b9eb17 40 //Convert temperature to Celsius
adrevong 2:8119e223a856 41 float temp = (float((read_temp[0] << 8) | read_temp[1]));
gabinader 0:2b07c4b9eb17 42
gabinader 0:2b07c4b9eb17 43 //Print temperature to the serial monitor
gabinader 0:2b07c4b9eb17 44
gabinader 0:2b07c4b9eb17 45 //Write your code here
gabinader 0:2b07c4b9eb17 46 pc.printf(" Temperature reading is: %f Celsius \r\n", temp );
adrevong 2:8119e223a856 47 pc.printf("Method 2 Temp = %d\n\r", read_temp[1]);
adrevong 2:8119e223a856 48
gabinader 0:2b07c4b9eb17 49
gabinader 0:2b07c4b9eb17 50
gabinader 0:2b07c4b9eb17 51 }
gabinader 0:2b07c4b9eb17 52 }
gabinader 0:2b07c4b9eb17 53
gabinader 0:2b07c4b9eb17 54 // *******************************ARM University Program Copyright (c) ARM Ltd 2014*************************************