sr501/BH1750/mq-2/dht11

Dependencies:   mbed

Fork of sensors_2 by w mx

Revision:
1:1197997ae0ea
Parent:
0:6dca851b4779
Child:
2:cd0ea77c7d66
--- a/sensors.cpp	Sun Sep 09 13:44:05 2018 +0000
+++ b/sensors.cpp	Wed Sep 12 15:51:26 2018 +0000
@@ -1,29 +1,82 @@
 #include "sensors.h"
 #include "mbed.h"
 
-//extern Serial usb;
-
-void sr501::triggered()
+extern Serial usb2pc;  
+extern DigitalOut myled;
+//============================================================
+void sr501::triggered()                                     //触发中断!!
 {
-    //usb.printf("Triggered!\r\n");
+    usb2pc.printf("sr501 Triggered!\r\n");
     status = true;
 }
-
-sr501::sr501(PinName pSignal)
-    : status(false), signal(pSignal)
+//--------
+sr501::sr501(PinName pSignal)                               //启动热释电!!!
+    : status(false), signal1(pSignal),signal2(pSignal)
 {
-    signal.rise(this, &sr501::triggered);
+    signal1.rise(this, &sr501::triggered);
+    usb2pc.printf("sr501 start!\r\n");
 }
-
-bool sr501::operator ==(const bool &target)
+//-------
+bool sr501::operator==(const bool &target)
 {
     if(status == target)
+    {
         return true;
+    }
     else
+    {
         return false;
+    }
 }
-
+//-------
 void sr501::reset()
 {
     status = false;
 }
+//-------
+int sr501::read()
+{
+    return signal2.read();
+}
+//==========================================
+BH1750::BH1750(PinName sda,PinName scl)                     //启动光强!!!!!(默认设置)
+    :link(sda,scl)                   
+{
+    status = true;
+    char mode[1]={BH1750_CONTINUOUS_HIGH_RES_MODE};
+    usb2pc.printf("modify\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;
+    }
+}
\ No newline at end of file