w mx
/
sensors3
sr501/BH1750/mq-2/dht11
Fork of sensors_2 by
sensors.cpp
- Committer:
- xmwmx
- Date:
- 2018-09-13
- Revision:
- 2:cd0ea77c7d66
- Parent:
- 1:1197997ae0ea
- Child:
- 3:31aec950f7dc
File content as of revision 2:cd0ea77c7d66:
#include "sensors.h" #include "mbed.h" extern Serial usb2pc; extern DigitalOut myled; //============================================================ void sr501::triggered() //触发中断!! { usb2pc.printf("sr501 Triggered!\r\n"); status = true; } //-------- sr501::sr501(PinName pSignal) //启动热释电!!! : status(false), signal(pSignal) { signal.rise(this, &sr501::triggered); usb2pc.printf("sr501 start!\r\n"); } //------- bool sr501::operator==(const bool &target) { if(status == target) { return true; } else { return false; } } //------- void sr501::reset() { status = false; } //------- int sr501::read() { return signal.read(); } //========================================== BH1750::BH1750(PinName sda,PinName scl) //启动光强!!!!!(默认设置) :link(sda,scl) { status = true; char mode[1]={BH1750_CONTINUOUS_HIGH_RES_MODE}; //usb2pc.printf("modifying\r\n"); while(status) { status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false); wait_ms(10); } usb2pc.printf("BH1750 start with default mode!\r\n"); } //-------- BH1750::BH1750(PinName sda,PinName scl,char mode[]) //启动光强!!!!!(自定义设置) :link(sda,scl) { status = true; while(status) { status = link.write(BH1750_I2CADDR, mode, sizeof(mode), false); wait_ms(10); } usb2pc.printf("BH1750 start with customize mode!\r\n"); } //-------- float BH1750::getlightdata() //读取光强(lux) { status = true; status = link.read(BH1750_I2CADDR, rawdata, 2, false); if(!status) { float result = ((rawdata[0]<<8)|rawdata[1])/1.2; return result; } else { usb2pc.printf("BH1750 read fail!\r\n"); return -1; } } //============================================== mq::mq(PinName dio) : status(false), signal(dio),signallevel(PC_13) { signal.fall(this, &mq::triggered); usb2pc.printf("mq start!\r\n"); } //-------- mq::mq(PinName dio,PinName aio) : status(false), signal(dio),signallevel(aio) { signal.fall(this, &mq::triggered); usb2pc.printf("mq start!\r\n"); } //-------- void mq::triggered() //触发中断!! { usb2pc.printf("mq Triggered!\r\n"); status = true; } //-------- bool mq::operator==(const bool &target) { if(status == target) { return true; } else { return false; } } //-------- float mq::getairdata() { } //----------- void mq::reset() { status = false; } int mq::read() { return signal.read(); }