查看“Sensor-Dot Matrix-Color/zh”的源代码
←
Sensor-Dot Matrix-Color/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Microduino-Dot Matrix}} {| style="width: 800px;" |- | [[file:Dot Matrixfront.jpg|thumb|400px|right]] Microduino-Dot Matrix模块是一个8x8多彩LED显示矩阵模块,可单个点阵或多个点阵级联(组合成不同的形状)使用,用于显示图片或文字,甚至是简单的动画效果。 ==特色== *8x8点阵,尺寸60mm*60mm; *每个点颜色显示质量为15位,RGB三基色32级调节,整体32k色彩色显示效果; *支持IIC通讯协议,IIC地址可设(1~64),点阵序列采用平面直角坐标系,便于控制; *板载2个IIC接口,便于多个点阵进行级联; *一个I/O口可灵活操作每个灯珠的发光颜色; *开源的硬件电路设计,与 Arduino 兼容的编程开发环境程; *统一的 Microduino 接口规范,和丰富的外围模块,可方便、灵活的与其他符合 Microduino 接口规范的模块、传感器进行快速的连接和扩展; ==规格== *电气规格 **工作电压:5V **工作电流:最大300mA **IIC通讯速率:400Kbps *显示质量 **三基色灰度:32级可调 **单个点大小:6mm*6mm *控制 **通过模块背面按键设置IIC地址(1~64),设置方法见下 ==文档== Eagle PCB: 下载:http://pan.baidu.com/s/1nuuTv8P ===主要元件=== *WS2812维基页面:http://wiki.hacdc.org/index.php/WS2811_Digital_RGB_LED#Individual_LEDs ==开发== ===点阵地址设置方法=== *查看点阵地址: Microduino-Dot Matrix模块上电后,在初始3秒钟内处于IIC地址初始化状态,此时点阵上会显示绿色的点,绿色点的数量即代表当前点阵的地址值,在这3秒钟内设置按键没有按下, 点阵自动进入工作状态,点阵的IIC地址即是刚刚显示的地址,此时点阵的显示状态可由IIC控制。 *进入点阵地址设置状态: 在Microduino-Dot Matrix模块上电后,在IIC地址初始化的3秒钟内按下设置按键,点阵上表示地址值的绿色点会变成白色,表示点阵已进入地址设置状态。 *改变点阵地址: 在进入地址设置状态后,按下按键即可改变地址(点阵上表示地址值得白色点会随之变化),慢按按键(2次按键间隔大于0.5s)会增加地址,快按按键(2次按键间隔小于0.5s)会减小 地址,地址设置范围为1~64。 *退出点阵地址设置状态: 将点阵地址调整至需要的设定值后,长按设置按键,3秒钟后表示地址值的白色点熄灭,即点阵退出地址设置状态,进入工作状态,此时点阵的IIC地址即是设置好的地址。 ===Arduino库及支持包=== *采用adafruit_NeoPixel库文件: **Adafruit_NeoPixel:https://github.com/adafruit/Adafruit_NeoPixel ==应用== ===[[点阵时钟/zh]]=== ===测试程序=== <source lang="cpp"> #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); } </source> ==购买== ==图库== [[file:Dot Matrix-front.jpg|thumb|600px|center|Back]] [[file:DOTmatrixback.jpg|thumb|600px|center|Back]]
返回至
Sensor-Dot Matrix-Color/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息