Program to read temperature and humidity over I2C from the GE ChipCap2 sensor, using the MBED LPC11U24 board. !!! NOT WORKING !!! This reference program for Arduino DO work: http://hastebin.com/tilolukave.go If you locate the error please let me know at mario@baldini.systems
main.cpp@0:9ce639d07eeb, 2014-08-08 (annotated)
- Committer:
- mbn12
- Date:
- Fri Aug 08 01:03:08 2014 +0000
- Revision:
- 0:9ce639d07eeb
- Child:
- 1:7008e7b00996
Program to read temperature and humidity over I2C; from the GE ChipCap2 sensor, using the MBED LPC11U24 board.; ; !!! NOT WORKING !!!; This reference program for Arduino DO work: http://hastebin.com/tilolukave.go
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbn12 | 0:9ce639d07eeb | 1 | /* |
mbn12 | 0:9ce639d07eeb | 2 | |
mbn12 | 0:9ce639d07eeb | 3 | Program to read temperature and humidity over I2C |
mbn12 | 0:9ce639d07eeb | 4 | from the GE ChipCap2 sensor, using the MBED LPC11U24 board. |
mbn12 | 0:9ce639d07eeb | 5 | |
mbn12 | 0:9ce639d07eeb | 6 | Autor: Mario Baldini <mario@baldini.systems> |
mbn12 | 0:9ce639d07eeb | 7 | 2014/08 |
mbn12 | 0:9ce639d07eeb | 8 | |
mbn12 | 0:9ce639d07eeb | 9 | !!! NOT WORKING !!! |
mbn12 | 0:9ce639d07eeb | 10 | This reference program for Arduino DO work: http://hastebin.com/tilolukave.go |
mbn12 | 0:9ce639d07eeb | 11 | |
mbn12 | 0:9ce639d07eeb | 12 | If you locate the error in this mbed version, |
mbn12 | 0:9ce639d07eeb | 13 | please e-mail me at mario@baldini.systems |
mbn12 | 0:9ce639d07eeb | 14 | |
mbn12 | 0:9ce639d07eeb | 15 | Reading the output (in linux): sudo screen /dev/ttyACM0 115200 |
mbn12 | 0:9ce639d07eeb | 16 | |
mbn12 | 0:9ce639d07eeb | 17 | |
mbn12 | 0:9ce639d07eeb | 18 | */ |
mbn12 | 0:9ce639d07eeb | 19 | |
mbn12 | 0:9ce639d07eeb | 20 | #include "mbed.h" |
mbn12 | 0:9ce639d07eeb | 21 | |
mbn12 | 0:9ce639d07eeb | 22 | Serial pc(USBTX, USBRX); |
mbn12 | 0:9ce639d07eeb | 23 | I2C i2c(p28,p27); //sda,scl |
mbn12 | 0:9ce639d07eeb | 24 | |
mbn12 | 0:9ce639d07eeb | 25 | |
mbn12 | 0:9ce639d07eeb | 26 | int main() { |
mbn12 | 0:9ce639d07eeb | 27 | pc.baud(115200); |
mbn12 | 0:9ce639d07eeb | 28 | pc.printf("begin\r\n"); |
mbn12 | 0:9ce639d07eeb | 29 | |
mbn12 | 0:9ce639d07eeb | 30 | int address = 0x28; |
mbn12 | 0:9ce639d07eeb | 31 | char data[4]; |
mbn12 | 0:9ce639d07eeb | 32 | data[0] = 0x00; |
mbn12 | 0:9ce639d07eeb | 33 | data[1] = 0x00; |
mbn12 | 0:9ce639d07eeb | 34 | data[2] = 0x00; |
mbn12 | 0:9ce639d07eeb | 35 | data[3] = 0x00; |
mbn12 | 0:9ce639d07eeb | 36 | |
mbn12 | 0:9ce639d07eeb | 37 | char data_write[3]; |
mbn12 | 0:9ce639d07eeb | 38 | data_write[0] = 0xA0; |
mbn12 | 0:9ce639d07eeb | 39 | data_write[1] = 0x00; |
mbn12 | 0:9ce639d07eeb | 40 | data_write[2] = 0x00; |
mbn12 | 0:9ce639d07eeb | 41 | |
mbn12 | 0:9ce639d07eeb | 42 | |
mbn12 | 0:9ce639d07eeb | 43 | i2c.frequency(400000); |
mbn12 | 0:9ce639d07eeb | 44 | |
mbn12 | 0:9ce639d07eeb | 45 | |
mbn12 | 0:9ce639d07eeb | 46 | while(true) { |
mbn12 | 0:9ce639d07eeb | 47 | pc.printf("loop()\r\n"); |
mbn12 | 0:9ce639d07eeb | 48 | data[0] = 0x00; |
mbn12 | 0:9ce639d07eeb | 49 | data[1] = 0x00; |
mbn12 | 0:9ce639d07eeb | 50 | data[2] = 0x00; |
mbn12 | 0:9ce639d07eeb | 51 | data[3] = 0x00; |
mbn12 | 0:9ce639d07eeb | 52 | |
mbn12 | 0:9ce639d07eeb | 53 | |
mbn12 | 0:9ce639d07eeb | 54 | // TRY 1 |
mbn12 | 0:9ce639d07eeb | 55 | i2c.start(); |
mbn12 | 0:9ce639d07eeb | 56 | i2c.write(address, data_write, 3); |
mbn12 | 0:9ce639d07eeb | 57 | wait_ms(50); |
mbn12 | 0:9ce639d07eeb | 58 | i2c.stop(); |
mbn12 | 0:9ce639d07eeb | 59 | |
mbn12 | 0:9ce639d07eeb | 60 | i2c.start(); |
mbn12 | 0:9ce639d07eeb | 61 | i2c.read(address, data, 4); |
mbn12 | 0:9ce639d07eeb | 62 | i2c.stop(); |
mbn12 | 0:9ce639d07eeb | 63 | |
mbn12 | 0:9ce639d07eeb | 64 | pc.printf("Ver.1 Data[]\t 0x%X 0x%X 0x%X 0x%X \r\n\n", data[0],data[1],data[2],data[3]); |
mbn12 | 0:9ce639d07eeb | 65 | |
mbn12 | 0:9ce639d07eeb | 66 | |
mbn12 | 0:9ce639d07eeb | 67 | |
mbn12 | 0:9ce639d07eeb | 68 | |
mbn12 | 0:9ce639d07eeb | 69 | // TRY 2 |
mbn12 | 0:9ce639d07eeb | 70 | i2c.start(); |
mbn12 | 0:9ce639d07eeb | 71 | i2c.write(0xA0); |
mbn12 | 0:9ce639d07eeb | 72 | i2c.write(0x00); |
mbn12 | 0:9ce639d07eeb | 73 | i2c.write(0x00); |
mbn12 | 0:9ce639d07eeb | 74 | i2c.stop(); |
mbn12 | 0:9ce639d07eeb | 75 | wait_ms(50); |
mbn12 | 0:9ce639d07eeb | 76 | |
mbn12 | 0:9ce639d07eeb | 77 | i2c.start(); |
mbn12 | 0:9ce639d07eeb | 78 | i2c.read(address, data, 4); |
mbn12 | 0:9ce639d07eeb | 79 | i2c.stop(); |
mbn12 | 0:9ce639d07eeb | 80 | pc.printf("Ver.2 Data[]\t 0x%X 0x%X 0x%X 0x%X \r\n\n", data[0],data[1],data[2],data[3]); |
mbn12 | 0:9ce639d07eeb | 81 | |
mbn12 | 0:9ce639d07eeb | 82 | |
mbn12 | 0:9ce639d07eeb | 83 | |
mbn12 | 0:9ce639d07eeb | 84 | // TRY 3 |
mbn12 | 0:9ce639d07eeb | 85 | i2c.write(address, data_write, 3); |
mbn12 | 0:9ce639d07eeb | 86 | i2c.write(0xA0); |
mbn12 | 0:9ce639d07eeb | 87 | i2c.write(0x00); |
mbn12 | 0:9ce639d07eeb | 88 | i2c.write(0x00); |
mbn12 | 0:9ce639d07eeb | 89 | wait_ms(50); |
mbn12 | 0:9ce639d07eeb | 90 | |
mbn12 | 0:9ce639d07eeb | 91 | |
mbn12 | 0:9ce639d07eeb | 92 | i2c.read(address, data, 4); |
mbn12 | 0:9ce639d07eeb | 93 | data[0] = i2c.read(0x01); |
mbn12 | 0:9ce639d07eeb | 94 | data[1] = i2c.read(0x01); |
mbn12 | 0:9ce639d07eeb | 95 | data[2] = i2c.read(0x00); |
mbn12 | 0:9ce639d07eeb | 96 | data[3] = i2c.read(0x00); |
mbn12 | 0:9ce639d07eeb | 97 | pc.printf("Ver.3 Data[]\t 0x%X 0x%X 0x%X 0x%X \r\n\n", data[0],data[1],data[2],data[3]); |
mbn12 | 0:9ce639d07eeb | 98 | |
mbn12 | 0:9ce639d07eeb | 99 | |
mbn12 | 0:9ce639d07eeb | 100 | |
mbn12 | 0:9ce639d07eeb | 101 | wait_ms(2000); |
mbn12 | 0:9ce639d07eeb | 102 | } |
mbn12 | 0:9ce639d07eeb | 103 | } |