w mx
/
sensors3
sr501/BH1750/mq-2/dht11
Fork of sensors_2 by
sensors.cpp@2:cd0ea77c7d66, 2018-09-13 (annotated)
- Committer:
- xmwmx
- Date:
- Thu Sep 13 05:52:55 2018 +0000
- Revision:
- 2:cd0ea77c7d66
- Parent:
- 1:1197997ae0ea
- Child:
- 3:31aec950f7dc
sr0501+BH1750+mq
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 | 2:cd0ea77c7d66 | 14 | : status(false), signal(pSignal) |
Dennis_Yu | 0:6dca851b4779 | 15 | { |
xmwmx | 2:cd0ea77c7d66 | 16 | signal.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 | 2:cd0ea77c7d66 | 39 | return signal.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 | 2:cd0ea77c7d66 | 47 | //usb2pc.printf("modifying\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 | 2:cd0ea77c7d66 | 82 | } |
xmwmx | 2:cd0ea77c7d66 | 83 | //============================================== |
xmwmx | 2:cd0ea77c7d66 | 84 | mq::mq(PinName dio) |
xmwmx | 2:cd0ea77c7d66 | 85 | : status(false), signal(dio),signallevel(PC_13) |
xmwmx | 2:cd0ea77c7d66 | 86 | { |
xmwmx | 2:cd0ea77c7d66 | 87 | signal.fall(this, &mq::triggered); |
xmwmx | 2:cd0ea77c7d66 | 88 | usb2pc.printf("mq start!\r\n"); |
xmwmx | 2:cd0ea77c7d66 | 89 | } |
xmwmx | 2:cd0ea77c7d66 | 90 | //-------- |
xmwmx | 2:cd0ea77c7d66 | 91 | mq::mq(PinName dio,PinName aio) |
xmwmx | 2:cd0ea77c7d66 | 92 | : status(false), signal(dio),signallevel(aio) |
xmwmx | 2:cd0ea77c7d66 | 93 | { |
xmwmx | 2:cd0ea77c7d66 | 94 | signal.fall(this, &mq::triggered); |
xmwmx | 2:cd0ea77c7d66 | 95 | usb2pc.printf("mq start!\r\n"); |
xmwmx | 2:cd0ea77c7d66 | 96 | } |
xmwmx | 2:cd0ea77c7d66 | 97 | //-------- |
xmwmx | 2:cd0ea77c7d66 | 98 | void mq::triggered() //触发中断!! |
xmwmx | 2:cd0ea77c7d66 | 99 | { |
xmwmx | 2:cd0ea77c7d66 | 100 | usb2pc.printf("mq Triggered!\r\n"); |
xmwmx | 2:cd0ea77c7d66 | 101 | status = true; |
xmwmx | 2:cd0ea77c7d66 | 102 | } |
xmwmx | 2:cd0ea77c7d66 | 103 | //-------- |
xmwmx | 2:cd0ea77c7d66 | 104 | bool mq::operator==(const bool &target) |
xmwmx | 2:cd0ea77c7d66 | 105 | { |
xmwmx | 2:cd0ea77c7d66 | 106 | if(status == target) |
xmwmx | 2:cd0ea77c7d66 | 107 | { |
xmwmx | 2:cd0ea77c7d66 | 108 | return true; |
xmwmx | 2:cd0ea77c7d66 | 109 | } |
xmwmx | 2:cd0ea77c7d66 | 110 | else |
xmwmx | 2:cd0ea77c7d66 | 111 | { |
xmwmx | 2:cd0ea77c7d66 | 112 | return false; |
xmwmx | 2:cd0ea77c7d66 | 113 | } |
xmwmx | 2:cd0ea77c7d66 | 114 | } |
xmwmx | 2:cd0ea77c7d66 | 115 | //-------- |
xmwmx | 2:cd0ea77c7d66 | 116 | float mq::getairdata() |
xmwmx | 2:cd0ea77c7d66 | 117 | { |
xmwmx | 2:cd0ea77c7d66 | 118 | |
xmwmx | 2:cd0ea77c7d66 | 119 | } |
xmwmx | 2:cd0ea77c7d66 | 120 | //----------- |
xmwmx | 2:cd0ea77c7d66 | 121 | void mq::reset() |
xmwmx | 2:cd0ea77c7d66 | 122 | { |
xmwmx | 2:cd0ea77c7d66 | 123 | status = false; |
xmwmx | 2:cd0ea77c7d66 | 124 | } |
xmwmx | 2:cd0ea77c7d66 | 125 | int mq::read() |
xmwmx | 2:cd0ea77c7d66 | 126 | { |
xmwmx | 2:cd0ea77c7d66 | 127 | return signal.read(); |
xmwmx | 1:1197997ae0ea | 128 | } |