sr501/BH1750/mq-2/dht11

Dependencies:   mbed

Fork of sensors_2 by w mx

Committer:
xmwmx
Date:
Wed Sep 12 15:51:26 2018 +0000
Revision:
1:1197997ae0ea
Parent:
0:6dca851b4779
Child:
2:cd0ea77c7d66
???+??

Who changed what in which revision?

UserRevisionLine numberNew 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 }