光照指示器

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

目的

做一个的光照指示器,将光值分为三个等级,通过绿、蓝、红三种颜来反应光的强弱。

原理

通过Light光线传感器检测光的强弱,系统判断光强在定义的哪个范围区间,对应让彩灯亮不同颜色,同时,在同一区间内光越强,颜色越亮。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
Microduino-Sensorhub/zh 1 传感器转接板
Microduino-Light/zh 1 光敏传感器
Microduino-Color led/zh 1 彩色led灯
mCookie-BM/zh 1 电池管理

准备

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 3:加载代码,将程序代买拷贝到IDE中。程序编译通过后选择好板卡和COM端口下载程序。

程序说明

  • 传感器引脚定义,彩灯接D6,光照传感器接A0
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);

#define Light_PIN A0
  • 光强预设值,可以把光分为3个阶级。
#define Light_value1 400
#define Light_value2 800
  • 光检测
sensorValue = analogRead(Light_PIN);
  • 彩色led灯根据光强调节颜色和亮度。
if (sensorValue < Light_value1)
    colorWipe(strip.Color(0, map(sensorValue, 10, 400, 0, 255), 0));
  else if (sensorValue >= Light_value1 && sensorValue < Light_value2)
    colorWipe(strip.Color(0, 0, map(sensorValue, 400, 800, 0, 255)));
  else if (Light_value2 >= 800)
    colorWipe(strip.Color(map(sensorValue, 800, 960, 0, 255), 0, 0));
  • “map(val,x,y,m,n)”函数为映射函数,可将某个区间的值(x-y)变幻成(m-n),val则是你需要用来映射的数据。

搭建硬件

  • Setup 1:将光敏电阻接到Sensorhub的A0引脚上,将彩色led灯接到D6引脚上。
  • Setup 2:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。

结果

改变光的环境,光从暗到亮颜色依次变化为绿-蓝-红,并且光越弱,亮度越低。 你也可以通过乐高搭建一个漂亮的外观。

视频