“炫彩LED灯”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
853387039@qq.com(讨论 | 贡献) (→实验一:呼吸灯) |
||
第100行: | 第100行: | ||
**例子:colorWipe(strip.Color(255, 0, 0), 500);每隔500ms切换到下一个灯显示红色。 | **例子:colorWipe(strip.Color(255, 0, 0), 500);每隔500ms切换到下一个灯显示红色。 | ||
**用户可以用颜色工具来更改颜色[http://www.atool.org/colorpicker.php color]。 | **用户可以用颜色工具来更改颜色[http://www.atool.org/colorpicker.php color]。 | ||
− | === | + | ===实验二:呼吸灯=== |
*打开Arduino IDE,将下列代码复制到IDE中。 | *打开Arduino IDE,将下列代码复制到IDE中。 | ||
<source lang="cpp"> | <source lang="cpp"> | ||
第146行: | 第146行: | ||
*选择正确的板卡和COM端口,编译通过后直接下载。 | *选择正确的板卡和COM端口,编译通过后直接下载。 | ||
[[file:upload.JPG|thumb|800px|center]] | [[file:upload.JPG|thumb|800px|center]] | ||
− | * | + | *结果红,绿,蓝灯依次循环呼吸。 |
+ | |||
===调试代码=== | ===调试代码=== | ||
*“rainbowCycle( int r, int g, int b, uint8_t wait)”函数说明: | *“rainbowCycle( int r, int g, int b, uint8_t wait)”函数说明: |
2015年10月14日 (三) 14:55的版本
Language | English |
---|
概述Microduino-Color led是彩色LED灯,内置IC控制芯片,单总线控制,可任意级联,只需要一个I/O口就可以控制所有的灯,每个彩灯都可以单独控制。 特色
规格
文档开发设备
准备
实验一:点亮彩灯
#include <Adafruit_NeoPixel.h>
#define PIN 6 //led灯控制引脚
#define PIN_NUM 2 //允许接的led灯的个数
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIN_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show();
}
void loop() {
colorWipe(strip.Color(255, 0, 0), 500); // 第一个灯亮红色隔500ms第二个灯亮红色
colorWipe(strip.Color(0, 255, 0), 500); // 第一个灯亮红色隔500ms第二个灯亮绿色
colorWipe(strip.Color(0, 0, 255), 500); // 第一个灯亮红色隔500ms第二个灯亮蓝色
}
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
//循环依次让每隔灯亮指定的颜色,C表示颜色,wait表示每个灯的颜色持续的时间
for (uint16_t i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
程序调试
实验二:呼吸灯
#include <Adafruit_NeoPixel.h>
#define PIN 6 //led灯控制引脚
#define PIN_NUM 2 //允许接的led灯的个数
#define val_max 255
#define val_min 0
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIN_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
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);
}
}
调试代码
应用
|