“检测光照强度”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 800px;" |- | <p style="color: #4F4E4E;font-size:220%">'''Sensor_Light库-检测光照强度示例'''</p> <br> 在下面的示例中,使用Core核...”)
 
 
(未显示同一用户的1个中间版本)
第13行: 第13行:
 
*[[Sensor-Light-D1/zh|Sensor-Light-D1]]
 
*[[Sensor-Light-D1/zh|Sensor-Light-D1]]
 
<br>
 
<br>
[[File:Sensor_Light_value_module.jpg|600px|center]]
+
[[File:Sensor_Light_value_module.jpg|500px|center]]
 
<br>
 
<br>
 
<br>
 
<br>
第21行: 第21行:
 
将Battery、Core、Hub堆叠在一起,通过MicroUSB数据线接入电脑。初次使用请参考:[[AVR核心:Getting_started/zh|Getting Started]]。
 
将Battery、Core、Hub堆叠在一起,通过MicroUSB数据线接入电脑。初次使用请参考:[[AVR核心:Getting_started/zh|Getting Started]]。
 
<br>
 
<br>
[[File:Sensor_Light_value_circuit.jpg|600px|center]]
+
[[File:Sensor_Light_value_circuit.jpg|500px|center]]
 
<br>
 
<br>
 
<br>
 
<br>
第35行: 第35行:
 
     By YLB
 
     By YLB
 
*/
 
*/
#include <Miroduino_TSL2561.h>
+
#include <Miroduino_Light.h>
  
TSL2561 tsl;
+
Light_D1 lightSensor;
  
 
void setup(void)
 
void setup(void)
 
{
 
{
 
   Serial.begin(9600);
 
   Serial.begin(9600);
  /*
+
   bool result = lightSensor.begin(); //初始化光照传感器,检测是否连接了
    begin()里面可以不写任意参数,默认
 
    tsl.begin()等同于tsl.begin(TSL2561_INTEGRATIONTIME_13MS,TSL2561_GAIN_1X)
 
 
 
    begin(tslIntegrationTime, tslGain)
 
      tslIntegrationTime:
 
        TSL2561_INTEGRATIONTIME_13MS
 
        TSL2561_INTEGRATIONTIME_101MS
 
        TSL2561_INTEGRATIONTIME_402MS
 
      tslGain:
 
        TSL2561_GAIN_1X
 
        TSL2561_GAIN_16X
 
  */
 
   bool result = tsl.begin(); //初始化光照传感器,检测是否连接了
 
  
 
   while (!result) // 当没识别到光照传感器,重复执行
 
   while (!result) // 当没识别到光照传感器,重复执行
 
   {
 
   {
 
     Serial.print("Ooops, no TSL2561 detected ... Check your wiring!");//串口打印警告
 
     Serial.print("Ooops, no TSL2561 detected ... Check your wiring!");//串口打印警告
     result = tsl.begin();  //检测是否连接了
+
     result = lightSensor.begin();  //检测是否连接了
 
   }
 
   }
  
   tsl.enableAutoGain(true);//设置自动增益
+
   lightSensor.enableAutoGain(true);//设置自动增益
 
}
 
}
  
 
void loop(void)
 
void loop(void)
 
{
 
{
   uint32_t tslLux = tsl.getLuminosity(); //获取光照强度
+
   uint32_t tslLux = lightSensor.getLuminosity(); //获取光照强度
  
 
   if (tslLux)  //如果检测到,串口打印出来
 
   if (tslLux)  //如果检测到,串口打印出来

2017年7月13日 (四) 08:52的最新版本

Sensor_Light库-检测光照强度示例


在下面的示例中,使用Core核心通过IIC接口检测光照强度,并将数据通过串口监视器打印出来。

所需硬件




电路搭建

将Sensor-Light-D1接到Hub的IIC引脚。
将Battery、Core、Hub堆叠在一起,通过MicroUSB数据线接入电脑。初次使用请参考:Getting Started



代码

/*
    获取光照强度,串口监视器打印数据。

    电路:
    * 接到核心的IIC引脚

    2017年7月11日修改
    By YLB
*/
#include <Miroduino_Light.h>

Light_D1 lightSensor;

void setup(void)
{
  Serial.begin(9600);
  bool result = lightSensor.begin(); //初始化光照传感器,检测是否连接了

  while (!result) // 当没识别到光照传感器,重复执行
  {
    Serial.print("Ooops, no TSL2561 detected ... Check your wiring!");//串口打印警告
    result = lightSensor.begin();  //检测是否连接了
  }

  lightSensor.enableAutoGain(true);//设置自动增益
}

void loop(void)
{
  uint32_t tslLux = lightSensor.getLuminosity(); //获取光照强度

  if (tslLux)   //如果检测到,串口打印出来
  {
    Serial.print(tslLux);
    Serial.println(" lux");
  }
  else       //否则认为光照强度超过检测范围
    Serial.println("Sensor overload");

  delay(250);
}


相关案例