Utilisation Simple de l'I2C
Dependencies: mbed
main.cpp@2:8119e223a856, 2020-01-28 (annotated)
- Committer:
- adrevong
- Date:
- Tue Jan 28 11:06:59 2020 +0000
- Revision:
- 2:8119e223a856
- Parent:
- 1:e3aa5dc929c0
Who changed what in which revision?
User | Revision | Line number | New 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************************************* |