w mx
/
sensors
热释电+光强
Fork of sensors by
sensors.cpp@1:1197997ae0ea, 2018-09-12 (annotated)
- Committer:
- xmwmx
- Date:
- Wed Sep 12 15:51:26 2018 +0000
- Revision:
- 1:1197997ae0ea
- Parent:
- 0:6dca851b4779
???+??
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Dennis_Yu | 0:6dca851b4779 | 1 | #include "sensors.h" |
Dennis_Yu | 0:6dca851b4779 | 2 | #include "mbed.h" |
Dennis_Yu | 0:6dca851b4779 | 3 | |
xmwmx | 1:1197997ae0ea | 4 | extern Serial usb2pc; |
xmwmx | 1:1197997ae0ea | 5 | extern DigitalOut myled; |
xmwmx | 1:1197997ae0ea | 6 | //============================================================ |
xmwmx | 1:1197997ae0ea | 7 | void sr501::triggered() //触发中断!! |
Dennis_Yu | 0:6dca851b4779 | 8 | { |
xmwmx | 1:1197997ae0ea | 9 | usb2pc.printf("sr501 Triggered!\r\n"); |
Dennis_Yu | 0:6dca851b4779 | 10 | status = true; |
Dennis_Yu | 0:6dca851b4779 | 11 | } |
xmwmx | 1:1197997ae0ea | 12 | //-------- |
xmwmx | 1:1197997ae0ea | 13 | sr501::sr501(PinName pSignal) //启动热释电!!! |
xmwmx | 1:1197997ae0ea | 14 | : status(false), signal1(pSignal),signal2(pSignal) |
Dennis_Yu | 0:6dca851b4779 | 15 | { |
xmwmx | 1:1197997ae0ea | 16 | signal1.rise(this, &sr501::triggered); |
xmwmx | 1:1197997ae0ea | 17 | usb2pc.printf("sr501 start!\r\n"); |
Dennis_Yu | 0:6dca851b4779 | 18 | } |
xmwmx | 1:1197997ae0ea | 19 | //------- |
xmwmx | 1:1197997ae0ea | 20 | bool sr501::operator==(const bool &target) |
Dennis_Yu | 0:6dca851b4779 | 21 | { |
Dennis_Yu | 0:6dca851b4779 | 22 | if(status == target) |
xmwmx | 1:1197997ae0ea | 23 | { |
Dennis_Yu | 0:6dca851b4779 | 24 | return true; |
xmwmx | 1:1197997ae0ea | 25 | } |
Dennis_Yu | 0:6dca851b4779 | 26 | else |
xmwmx | 1:1197997ae0ea | 27 | { |
Dennis_Yu | 0:6dca851b4779 | 28 | return false; |
xmwmx | 1:1197997ae0ea | 29 | } |
Dennis_Yu | 0:6dca851b4779 | 30 | } |
xmwmx | 1:1197997ae0ea | 31 | //------- |
Dennis_Yu | 0:6dca851b4779 | 32 | void sr501::reset() |
Dennis_Yu | 0:6dca851b4779 | 33 | { |
Dennis_Yu | 0:6dca851b4779 | 34 | status = false; |
Dennis_Yu | 0:6dca851b4779 | 35 | } |
xmwmx | 1:1197997ae0ea | 36 | //------- |
xmwmx | 1:1197997ae0ea | 37 | int sr501::read() |
xmwmx | 1:1197997ae0ea | 38 | { |
xmwmx | 1:1197997ae0ea | 39 | return signal2.read(); |
xmwmx | 1:1197997ae0ea | 40 | } |
xmwmx | 1:1197997ae0ea | 41 | //========================================== |
xmwmx | 1:1197997ae0ea | 42 | BH1750::BH1750(PinName sda,PinName scl) //启动光强!!!!!(默认设置) |
xmwmx | 1:1197997ae0ea | 43 | :link(sda,scl) |
xmwmx | 1:1197997ae0ea | 44 | { |
xmwmx | 1:1197997ae0ea | 45 | status = true; |
xmwmx | 1:1197997ae0ea | 46 | char mode[1]={BH1750_CONTINUOUS_HIGH_RES_MODE}; |
xmwmx | 1:1197997ae0ea | 47 | usb2pc.printf("modify\r\n"); |
xmwmx | 1:1197997ae0ea | 48 | while(status) |
xmwmx | 1:1197997ae0ea | 49 | { |
xmwmx | 1:1197997ae0ea | 50 | status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false); |
xmwmx | 1:1197997ae0ea | 51 | wait_ms(10); |
xmwmx | 1:1197997ae0ea | 52 | } |
xmwmx | 1:1197997ae0ea | 53 | usb2pc.printf("BH1750 start with default mode!\r\n"); |
xmwmx | 1:1197997ae0ea | 54 | } |
xmwmx | 1:1197997ae0ea | 55 | //-------- |
xmwmx | 1:1197997ae0ea | 56 | BH1750::BH1750(PinName sda,PinName scl,char mode[]) //启动光强!!!!!(自定义设置) |
xmwmx | 1:1197997ae0ea | 57 | :link(sda,scl) |
xmwmx | 1:1197997ae0ea | 58 | { |
xmwmx | 1:1197997ae0ea | 59 | status = true; |
xmwmx | 1:1197997ae0ea | 60 | while(status) |
xmwmx | 1:1197997ae0ea | 61 | { |
xmwmx | 1:1197997ae0ea | 62 | status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false); |
xmwmx | 1:1197997ae0ea | 63 | wait_ms(10); |
xmwmx | 1:1197997ae0ea | 64 | } |
xmwmx | 1:1197997ae0ea | 65 | usb2pc.printf("BH1750 start with customize mode!\r\n"); |
xmwmx | 1:1197997ae0ea | 66 | } |
xmwmx | 1:1197997ae0ea | 67 | //-------- |
xmwmx | 1:1197997ae0ea | 68 | float BH1750::getlightdata() //读取光强(lux) |
xmwmx | 1:1197997ae0ea | 69 | { |
xmwmx | 1:1197997ae0ea | 70 | status = true; |
xmwmx | 1:1197997ae0ea | 71 | status = link.read(BH1750_I2CADDR, rawdata, 2, false); |
xmwmx | 1:1197997ae0ea | 72 | if(!status) |
xmwmx | 1:1197997ae0ea | 73 | { |
xmwmx | 1:1197997ae0ea | 74 | float result = ((rawdata[0]<<8)|rawdata[1])/1.2; |
xmwmx | 1:1197997ae0ea | 75 | return result; |
xmwmx | 1:1197997ae0ea | 76 | } |
xmwmx | 1:1197997ae0ea | 77 | else |
xmwmx | 1:1197997ae0ea | 78 | { |
xmwmx | 1:1197997ae0ea | 79 | usb2pc.printf("BH1750 read fail!\r\n"); |
xmwmx | 1:1197997ae0ea | 80 | return -1; |
xmwmx | 1:1197997ae0ea | 81 | } |
xmwmx | 1:1197997ae0ea | 82 | } |