“光照指示器”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
 
(未显示同一用户的1个中间版本)
第18行: 第18行:
 
|[[mCookie-CoreUSB/zh]]||1||核心板
 
|[[mCookie-CoreUSB/zh]]||1||核心板
 
|-
 
|-
|[[Microduino-Sensorhub/zh]]||1||传感器转接板
+
|[[mCookie-Hub/zh]]||1||传感器转接板
 
|-
 
|-
 
|[[Microduino-Light/zh]]||1||光敏传感器
 
|[[Microduino-Light/zh]]||1||光敏传感器
 
|-
 
|-
 
|[[Microduino-Color led/zh]]||1||彩色led灯
 
|[[Microduino-Color led/zh]]||1||彩色led灯
|-
 
| [[mCookie-BM/zh]]||1||电池管理
 
 
|}
 
|}
[[File:light_indicator-module.jpg|600px|center]]
+
*其他设备
 +
**USB数据线*1
 +
**传感器连接线*1
 +
[[File:light_indicator-module1.jpg|600px|center]]
  
 
==准备==
 
==准备==
*Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
+
*Setup 1:将Color led背面的'''IN'''和Hub的数字口(D6)接起来,光照传感器接A0。
[[File:CoreUSB_Ble_pc.jpg|600px|center]]
+
[[file:mCookie-light_indicator-sensor.JPG|600px|center]]
*Setup 2:下载程序: [https://github.com/Microduino/Microduino_Tutorials/blob/master/MCookie_Tutorial/light_led/light_led.ino light_led]
+
*Setup 2:将CoreUSB,Hub,Color LED,Light连接在一起。通过USB数据线将接入电脑。
[[File: light_indicator-load.jpg|600px|center]]
+
[[file:mCookie-light_indicator-pc.JPG|600px|center]]
* Setup 3:加载代码,将程序代买拷贝到IDE中。程序编译通过后选择好板卡和COM端口下载程序。
+
 
 +
==调试==
 +
*打开Arduino IDE,把原来IDE里的代码都删除,将下列代码复制到IDE中。
 +
<source lang="cpp">
 +
#include <Adafruit_NeoPixel.h>
 +
 
 +
#define PIN 6
 +
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
 +
 
 +
#define Light_PIN A0
 +
 
 +
#define Light_value1 400
 +
#define Light_value2 800
 +
 
 +
int sensorValue;
 +
 
 +
void setup() {
 +
  Serial.begin(115200);
 +
  strip.begin();
 +
  strip.show(); // Initialize all pixels to 'off'
 +
}
 +
 
 +
void loop() {
 +
  sensorValue = analogRead(Light_PIN);
 +
  Serial.println(sensorValue);
 +
  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));
 +
}
 +
 
 +
void colorWipe(uint32_t c) {
 +
  for (uint16_t i = 0; i < strip.numPixels(); i++) {
 +
    strip.setPixelColor(i, c);
 +
    strip.show();
 +
  }
 +
}
 +
</source>
 +
*选择正确的板卡和COM端口
 +
[[file:upload.JPG|600px|center]]
 +
*编译
 +
**编译时会提示保存项目,用户可以自己命名保存到你的文件夹即可。
 +
*下载
 +
**编译成功后可以直接下载,提示下载成功表示程序下载完毕。
 +
[[file:upload-led.JPG|600px|center]]
 +
*结果
 +
改变光的环境,光从暗到亮颜色依次变化为绿-蓝-红,并且光越弱,亮度越低。
 +
 
 
==程序说明==
 
==程序说明==
 
*传感器引脚定义,彩灯接D6,光照传感器接A0
 
*传感器引脚定义,彩灯接D6,光照传感器接A0
第63行: 第113行:
 
</source>
 
</source>
 
*“map(val,x,y,m,n)”函数为映射函数,可将某个区间的值(x-y)变幻成(m-n),val则是你需要用来映射的数据。
 
*“map(val,x,y,m,n)”函数为映射函数,可将某个区间的值(x-y)变幻成(m-n),val则是你需要用来映射的数据。
 
==搭建硬件==
 
*Setup 1:将光敏电阻接到Sensorhub的A0引脚上,将彩色led灯接到D6引脚上。
 
[[file: light_indicator _A0_6.JPG|800px|center]]
 
*Setup 2:将激活后的电池盒与BM模块相连.
 
[[File:CoreUSB_Ble_steup2.jpg|600px|center]]
 
*Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。
 
[[File: ight_indicator_steup-all.jpg|600px|center]]
 
==结果==
 
改变光的环境,光从暗到亮颜色依次变化为绿-蓝-红,并且光越弱,亮度越低。
 
你也可以通过乐高搭建一个漂亮的外观。
 
  
 
==视频==
 
==视频==
  
 
|}
 
|}

2015年11月23日 (一) 11:39的最新版本

Language English

目的

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

原理

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

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-Light/zh 1 光敏传感器
Microduino-Color led/zh 1 彩色led灯
  • 其他设备
    • USB数据线*1
    • 传感器连接线*1

准备

  • Setup 1:将Color led背面的IN和Hub的数字口(D6)接起来,光照传感器接A0。
  • Setup 2:将CoreUSB,Hub,Color LED,Light连接在一起。通过USB数据线将接入电脑。

调试

  • 打开Arduino IDE,把原来IDE里的代码都删除,将下列代码复制到IDE中。
#include <Adafruit_NeoPixel.h>

#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);

#define Light_PIN A0

#define Light_value1 400
#define Light_value2 800

int sensorValue;

void setup() {
  Serial.begin(115200);
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  sensorValue = analogRead(Light_PIN);
  Serial.println(sensorValue);
  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));
}

void colorWipe(uint32_t c) {
  for (uint16_t i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
  }
}
  • 选择正确的板卡和COM端口
Upload.JPG
  • 编译
    • 编译时会提示保存项目,用户可以自己命名保存到你的文件夹即可。
  • 下载
    • 编译成功后可以直接下载,提示下载成功表示程序下载完毕。
  • 结果

改变光的环境,光从暗到亮颜色依次变化为绿-蓝-红,并且光越弱,亮度越低。

程序说明

  • 传感器引脚定义,彩灯接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则是你需要用来映射的数据。

视频