“炫彩LED灯”的版本间的差异
502748957@qq.com(讨论 | 贡献) (→调试) |
(→实验二:呼吸灯) |
||
(未显示4个用户的26个中间版本) | |||
第1行: | 第1行: | ||
− | |||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
| | | | ||
− | == | + | ==概述== |
+ | Microduino-Color led是彩色LED灯,内置IC控制芯片,单总线控制,可任意级联,只需要一个I/O口就可以控制所有的灯,每个彩灯都可以单独控制。 | ||
− | + | ==特色== | |
+ | *控制电路与RGB芯片集成在一个5050封装的元器件中; | ||
+ | *单总线控制,只需要一个I/O口就可以控制,完成数据的接收与解码; | ||
+ | *内置IC控制,串行级联接口,可以级联控制; | ||
+ | *每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s; | ||
+ | *内置上电复位和掉电复位电路; | ||
+ | *超低功率,超长寿命。 | ||
− | == | + | ==规格== |
− | * | + | *电器规格 |
− | * | + | **工作电压:3.3V~5V |
− | * | + | **输出设备 |
− | + | *技术参数 | |
− | + | **采用WS2812集成控制光源; | |
− | + | **每个像素点的RGB可实现256级亮度显示 | |
− | * | + | **当刷新速率30帧/秒时,级联数不小于1024点; |
− | ** | + | **任意两点传传输距离在不超过3米时无需增加任何电路; |
− | + | *尺寸 | |
− | + | **LED灯大小:5mm*5mm, | |
− | + | **板子大小:20mm*20mm | |
− | + | **1.27mm间距的4Pin接口与Hub相连 | |
− | + | *接法 | |
− | + | **系统与LED(<big>IN</big>):系统控制LED需要将Hub端的信号接到LED的<big>IN</big>底座。 | |
− | + | **LED级联(<big>OUT</big>):前一个LED的<big>OUT</big>接下一个LED的<big>IN</big>。 | |
− | + | [[File: CoreUSB_Ble_steup11.jpg|600px|center]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[File: | ||
+ | ==文档== | ||
+ | [[File:ws2812.pdf]] | ||
+ | ==开发== | ||
+ | ===设备=== | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |模块||数量||功能 | ||
+ | |- | ||
+ | |[[mCookie-Core/zh|mCookie-Core]]||1||核心板 | ||
+ | |- | ||
+ | |[[mCookie-Hub/zh]]||1||传感器转接板 | ||
+ | |- | ||
+ | |[[mCookie-Battery|电池盒]]||1||程序下载和供电模块 | ||
+ | |- | ||
+ | |[[Microduino-Color led/zh]]||1||彩灯 | ||
+ | |} | ||
+ | *其他设备 | ||
+ | **USB数据线*1 | ||
+ | **传感器连接线*1 | ||
+ | [[File:color_led-module.jpg|center|600px]] | ||
− | + | ===准备=== | |
− | + | *Setup 1:将Color led背面的'''IN'''和Hub的数字口(D6)接起来,这个就是控制LED的引脚,用户可自己更改。 | |
− | [[ | + | [[file:mCookie-strandtext-sensor.JPG|600px|center]] |
+ | *Setup 2:将CoreUSB,Hub,Color LED连接在一起。通过USB数据线将接入电脑。 | ||
+ | [[file:mCookie-strandtext-pc.JPG|600px|center]] | ||
+ | ===实验一:点亮彩灯=== | ||
+ | *打开Arduino IDE,把原来IDE里的代码都删除,将下列代码复制到IDE中。 | ||
+ | <source lang="cpp"> | ||
+ | #include <Microduino_ColorLED.h> //引用彩灯库 | ||
+ | #define PIN 6 //led灯控制引脚 | ||
+ | #define NUMPIXELS 2 //级联彩灯数量 | ||
− | + | ColorLED strip = ColorLED(NUMPIXELS, PIN); //将ColorLED类命名为strip,并定义彩灯数量和彩灯引脚号 | |
− | + | void setup() { | |
− | + | strip.begin(); | |
+ | strip.setBrightness(60); //设置彩灯亮度 | ||
+ | strip.show(); | ||
+ | } | ||
+ | void loop() { | ||
+ | strip.setPixelColor(0, strip.Color(255, 0, 0));//红 | ||
+ | strip.show(); | ||
+ | delay(1000); | ||
+ | strip.setPixelColor(0, strip.Color(0, 255, 0));//绿 | ||
+ | strip.show(); | ||
+ | delay(1000); | ||
+ | strip.setPixelColor(0, strip.Color(0, 0, 255));//蓝 | ||
+ | strip.show(); | ||
+ | delay(1000); | ||
+ | strip.setPixelColor(0, strip.Color(0, 0, 0));//灭 | ||
+ | strip.show(); | ||
+ | delay(1000); | ||
+ | } | ||
+ | </source> | ||
+ | *选择正确的板卡和COM端口 | ||
+ | [[file:upload.JPG|600px|center]] | ||
+ | *编译 | ||
+ | **编译时会提示保存项目,用户可以自己命名保存到你的文件夹即可。 | ||
+ | *下载 | ||
+ | **编译成功后可以直接下载,提示下载成功表示程序下载完毕。 | ||
+ | [[file:upload-led.JPG|600px|center]] | ||
+ | *结果每隔1s切换一个灯显示,颜色分别是红,绿,蓝,灭依次循环。 | ||
− | + | ===程序调试=== | |
− | + | *“#define PIN 6”定义了控制LED的引脚,6表示Microduino的D6引脚,可通过Hub转接出来,用户可以更改。 | |
− | [ | + | *“#define PIN_NUM 2”定义了允许接的led灯的个数。 |
+ | *“strip.setPixelColor(i, strip.Color(R, G, B));”函数说明: | ||
+ | **i:第几个灯,从0开始算第一个灯。 | ||
+ | **R:红色值(0-255)。 | ||
+ | **G:绿色值(0-255)。 | ||
+ | **B:蓝色值(0-255)。 | ||
+ | **用户可以用颜色工具来更改颜色[http://www.atool.org/colorpicker.php color]。 | ||
+ | *“strip.show();”表示LED显示。 | ||
+ | ===实验二:呼吸灯=== | ||
+ | *打开Arduino IDE,将下列代码复制到IDE中。 | ||
+ | <source lang="cpp"> | ||
+ | #include <Microduino_ColorLED.h> //引用彩灯库 | ||
− | + | #define PIN 6 //led灯控制引脚 | |
− | + | #define NUMPIXELS 2 //级联彩灯数量 | |
− | |||
− | |||
− | + | #define val_max 255 | |
− | + | #define val_min 0 | |
+ | ColorLED strip = ColorLED(NUMPIXELS, PIN); //将ColorLED类命名为strip,并定义彩灯数量和彩灯引脚号 | ||
− | + | void setup() { | |
− | + | strip.begin(); | |
− | + | strip.setBrightness(60); //设置彩灯亮度 | |
+ | strip.show(); | ||
+ | } | ||
− | + | void loop() { | |
+ | rainbowCycle( 255, 0, 0, 10);//红色呼吸 | ||
+ | rainbowCycle( 0, 255, 0, 10);//绿色呼吸 | ||
+ | rainbowCycle( 0, 0, 255, 10);//蓝色呼吸 | ||
+ | } | ||
− | + | void colorSet(uint32_t c) { | |
+ | for (uint16_t i = 0; i < strip.numPixels(); i++) { | ||
+ | strip.setPixelColor(i, c); | ||
+ | } | ||
+ | strip.show(); | ||
+ | } | ||
− | == | + | void rainbowCycle( int r, int g, int b, uint8_t wait) { |
+ | for (int val = 0; val < 255; val++) | ||
+ | { | ||
+ | colorSet(strip.Color(map(val, val_min, val_max, 0, r), map(val, val_min, val_max, 0, g), map(val, val_min, val_max, 0, b))); | ||
+ | delay(wait); | ||
+ | } | ||
+ | for (int val = 255; val >= 0; val--) | ||
+ | { | ||
+ | colorSet(strip.Color(map(val, val_min, val_max, 0, r), map(val, val_min, val_max, 0, g), map(val, val_min, val_max, 0, b))); | ||
+ | delay(wait); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *选择正确的板卡和COM端口,编译通过后直接下载。 | ||
+ | [[file:upload.JPG|600px|center]] | ||
+ | *结果红,绿,蓝灯依次循环呼吸。 | ||
+ | ===调试代码=== | ||
+ | *“rainbowCycle( int r, int g, int b, uint8_t wait)”函数说明: | ||
+ | **r:红色值(0-255)。 | ||
+ | **g:绿色值(0-255)。 | ||
+ | **b:蓝色值(0-255)。 | ||
+ | **“uint8_t wait”定义呼吸的速度,数值越小呼吸速度越快。 | ||
+ | ==应用== | ||
+ | *LED全彩发光字灯串,LED全彩模组, LED全彩软灯条硬灯条,LED护栏管。 | ||
+ | *LED点光源,LED像素屏,LED异形屏,各种电子产品,电器设备跑马灯。 | ||
|} | |} |
2017年8月3日 (四) 06:16的最新版本
概述Microduino-Color led是彩色LED灯,内置IC控制芯片,单总线控制,可任意级联,只需要一个I/O口就可以控制所有的灯,每个彩灯都可以单独控制。 特色
规格
文档开发设备
准备
实验一:点亮彩灯
#include <Microduino_ColorLED.h> //引用彩灯库
#define PIN 6 //led灯控制引脚
#define NUMPIXELS 2 //级联彩灯数量
ColorLED strip = ColorLED(NUMPIXELS, PIN); //将ColorLED类命名为strip,并定义彩灯数量和彩灯引脚号
void setup() {
strip.begin();
strip.setBrightness(60); //设置彩灯亮度
strip.show();
}
void loop() {
strip.setPixelColor(0, strip.Color(255, 0, 0));//红
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 255, 0));//绿
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 0, 255));//蓝
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 0, 0));//灭
strip.show();
delay(1000);
}
程序调试
实验二:呼吸灯
#include <Microduino_ColorLED.h> //引用彩灯库
#define PIN 6 //led灯控制引脚
#define NUMPIXELS 2 //级联彩灯数量
#define val_max 255
#define val_min 0
ColorLED strip = ColorLED(NUMPIXELS, PIN); //将ColorLED类命名为strip,并定义彩灯数量和彩灯引脚号
void setup() {
strip.begin();
strip.setBrightness(60); //设置彩灯亮度
strip.show();
}
void loop() {
rainbowCycle( 255, 0, 0, 10);//红色呼吸
rainbowCycle( 0, 255, 0, 10);//绿色呼吸
rainbowCycle( 0, 0, 255, 10);//蓝色呼吸
}
void colorSet(uint32_t c) {
for (uint16_t i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, c);
}
strip.show();
}
void rainbowCycle( int r, int g, int b, uint8_t wait) {
for (int val = 0; val < 255; val++)
{
colorSet(strip.Color(map(val, val_min, val_max, 0, r), map(val, val_min, val_max, 0, g), map(val, val_min, val_max, 0, b)));
delay(wait);
}
for (int val = 255; val >= 0; val--)
{
colorSet(strip.Color(map(val, val_min, val_max, 0, r), map(val, val_min, val_max, 0, g), map(val, val_min, val_max, 0, b)));
delay(wait);
}
}
调试代码
应用
|