“Microduino-Module LED Matrix/zh”的版本间的差异
502748957@qq.com(讨论 | 贡献) (Created page with "{{Language|Microduino-LED Matrix}} {| style="width: 800px;" |- | //此处应有外形图片 //Wiki施工中 ==特色== *采用6块WS2812作为光源; *一个模拟口可...") |
18811016169(讨论 | 贡献) |
||
(未显示6个用户的26个中间版本) | |||
第3行: | 第3行: | ||
|- | |- | ||
| | | | ||
− | + | [[file:Matrixfront.jpg|thumb|400px|right]] | |
− | + | Microduino-LED Matrix模块集成了6个WS2812灯珠,每个灯珠内置IC控制芯片,6个灯珠采用单总线控制,可用一个I/O口控制每个灯珠的发光状态。可作为全彩模组提供光源。 | |
− | / | ||
− | |||
==特色== | ==特色== | ||
− | * | + | *集成6个WS2812灯珠,可作为多彩光源; |
− | * | + | *一个I/O口可灵活操作每个灯珠的发光颜色; |
*开源的硬件电路设计,与 Arduino 兼容的编程开发环境程; | *开源的硬件电路设计,与 Arduino 兼容的编程开发环境程; | ||
*统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展; | *统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展; | ||
*2.54间距的排母接口方便集成到洞洞板。 | *2.54间距的排母接口方便集成到洞洞板。 | ||
− | |||
==规格== | ==规格== | ||
− | * | + | *电气规格 |
− | ** | + | **工作电压:5V |
− | ** | + | **控制光源:WS2812*6 |
+ | *WS2812 | ||
+ | **三基色灰度:256级可调 | ||
+ | **LED灯大小:5mm*5mm | ||
**数据发送速度可达800Kbps。 | **数据发送速度可达800Kbps。 | ||
+ | *控制 | ||
+ | **通过模块背面跳线选择I/O口控制,可选端口为A0,A1,A2,A3,A6,A7,默认选择A0端口 | ||
+ | [[File:Pinout.jpg|800px|thumb|center|Microduino-RTC-Pinout1]] | ||
− | |||
− | |||
==文档== | ==文档== | ||
− | |||
===主要元件=== | ===主要元件=== | ||
− | * | + | *WS2812维基页面:http://wiki.hacdc.org/index.php/WS2811_Digital_RGB_LED#Individual_LEDs |
− | // | + | |
==开发== | ==开发== | ||
===Arduino库及支持包=== | ===Arduino库及支持包=== | ||
− | *Adafruit_NeoPixel: | + | *采用adafruit_NeoPixel库文件: |
+ | **Adafruit_NeoPixel:https://github.com/adafruit/Adafruit_NeoPixel | ||
+ | |||
==应用== | ==应用== | ||
===[[语音情景灯/zh]]=== | ===[[语音情景灯/zh]]=== | ||
第42行: | 第44行: | ||
<source lang="cpp"> | <source lang="cpp"> | ||
#include <Adafruit_NeoPixel.h> | #include <Adafruit_NeoPixel.h> | ||
− | # | + | #define PIN A0 //定义控制引脚 |
// 参数 1 = strip中彩灯的数目 | // 参数 1 = strip中彩灯的数目 | ||
// 参数 2 = 引脚号 | // 参数 2 = 引脚号 | ||
第50行: | 第52行: | ||
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) | // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) | ||
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip) | // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip) | ||
− | Adafruit_NeoPixel strip = Adafruit_NeoPixel( | + | Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800); |
void setup() | void setup() | ||
{ | { | ||
第100行: | 第102行: | ||
for(i = 0; i < strip.numPixels(); i++) | for(i = 0; i < strip.numPixels(); i++) | ||
{ | { | ||
− | strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); | + | //为了循环而添加的数学变换 |
+ | strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); | ||
} | } | ||
strip.show(); | strip.show(); | ||
第127行: | 第130行: | ||
} | } | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
==图库== | ==图库== | ||
− | file: | + | [[file:LEDMATRIXFRONT.jpg|thumb|600px|center|Front]] |
− | file: | + | [[file:LEDmatrixback.jpg|thumb|600px|center|Back]] |
2018年6月12日 (二) 06:59的最新版本
Language | English |
---|
Microduino-LED Matrix模块集成了6个WS2812灯珠,每个灯珠内置IC控制芯片,6个灯珠采用单总线控制,可用一个I/O口控制每个灯珠的发光状态。可作为全彩模组提供光源。 特色
规格
文档主要元件开发Arduino库及支持包
应用语音情景灯/zh测试程序使用Arduino for Micrduino IDE自带的Adafruit_NeoPixel库中的示例程序 打开IDE,点击文件→示例→找到LED_WS2812 #include <Adafruit_NeoPixel.h>
#define PIN A0 //定义控制引脚
// 参数 1 = strip中彩灯的数目
// 参数 2 = 引脚号
// 参数 3 = 彩灯类型, 可多选(前两个中选一个,后两个中选一个):
// NEO_RGB Pixels are wired for RGB bitstream
// NEO_GRB Pixels are wired for GRB bitstream
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show(); //初始化所有彩灯都为灭
}
void loop()
{
// 点亮彩灯的方法
colorWipe(strip.Color(255, 0, 0), 50); // 点亮红色
colorWipe(strip.Color(0, 255, 0), 50); // 点亮绿色
colorWipe(strip.Color(0, 0, 255), 50); // 点亮蓝色
rainbow(20);
rainbowCycle(20);
}
//用“c”所代表的颜色依次点亮各盏彩灯,每点亮一盏等“wait”秒
void colorWipe(uint32_t c, uint8_t wait)
{
for(uint16_t i = 0; i < strip.numPixels(); i++) //依次点亮
{
strip.setPixelColor(i, c); //这个函数用于把第i盏灯用“c”所指颜色点亮
strip.show(); //这个函数会将setPixelColor函数所写入的控制信息显示
//出来,也就是靠它点亮LAMP模块
delay(wait);
}
}
void rainbow(uint8_t wait) //彩虹显示
{
uint16_t i, j;
for(j = 0; j < 256; j++) //渐变255种颜色
{
for(i = 0; i < strip.numPixels(); i++) //依次点亮彩灯,间隔wait毫秒
{
strip.setPixelColor(i, Wheel((i + j) & 255));
}
strip.show();
delay(wait);
}
}
// 与上面的函数稍有区别,添加了彩虹的循环
void rainbowCycle(uint8_t wait)
{
uint16_t i, j;
for(j = 0; j < 256 * 5; j++) //彩虹循环5次
{
for(i = 0; i < strip.numPixels(); i++)
{
//为了循环而添加的数学变换
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
// 输入0-255任意一个数得到对应的唯一的一种颜色
// 颜色会从红-绿->蓝->红依次渐变循环
uint32_t Wheel(byte WheelPos)
{
if(WheelPos < 85)
{
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
else if(WheelPos < 170)
{
//因为WheelPos * 3在85到170的情况下会超过255,因此要先自减85
WheelPos -= 85;
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
else
{
//因为WheelPos * 3在170以上的情况下会超过255,因此要先自减170
WheelPos -= 170;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
图库 |