电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
【昊泽爷爷】Arduino动手做(101)---12位智能RGB彩环
分 享
扫描二维码分享
【昊泽爷爷】Arduino动手做(101)---12位智能RGB彩环
雕爷学编程
雕爷学编程
关注
发布时间: 2022-06-10
丨
阅读: 523
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 #### 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) #### #### 实验一百零一:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环 ![](https://cf04.ickimg.com/bbsimages/202205/bd081db68db0cb42cbc97db9d0f3d2db.jpg) WS2812B 是一种将控制电路和rgb芯片集成在一起的智能控制led光源。5050组件的包装。内部包括智能数字端口数据锁存和信号整形放大驱动电路。还包括精密内部振荡器和12V电压可编程恒流控制部分,有效保证了像素点光色高度一致。数据传输协议采用单NZR通信方式。像素上电复位后,DIN端口接收数据来自控制器,第一个像素收集初始24位数据,然后发送到内部数据锁存器,其他数据由内部信号整形放大电路通过DO端口发送到下一个级联像素进行整形。后对于每个像素的传输,信号要减少24位。像素采用自动整形传输技术,使像素级联数不受信号传输的限制,只取决于信号传输的速度。复位时间>280μs,中断时不会造成误复位,支持较低频率,价格低廉单片机。刷新频率更新到2kHz,画面频率低,高清摄像机无闪烁,提高出色的展示效果。LED具有驱动电压低、环保节能、亮度高、散射角大、一致性好、功率低、寿命长等优点。集成在led上的控制芯片越来越多电路简单,体积小,安装方便。 ![](https://cf04.ickimg.com/bbsimages/202205/fa07d820fde685cb0d13a6c596a819e3.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/89090e56736d4bdad464525635cd28f7.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/f70925d61c14f51b1a82790f0ba844bf.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/de846504bb78ae004c9c570622a0746f.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/16e632aaa89342aeeecc61f820ae43b7.jpg) 主要特点 控制电路和LED共用唯一的电源。 控制电路和RGB芯片集成在5050个组件的封装中,形成完整的可寻址像素。内置信号整形电路,对下一个驱动器进行波形整形后,确保波形不失真累积。 内置电气复位电路和失电复位电路。 三基色各像素可实现256亮度显示,完成16777216色全彩色显示,扫描频率为2kHz。 单线路级联端口传输信号。 任意两点距离不超过3米的传输信号,无任何增加电路。 刷新率为30fps时,层叠数不小于1024像素。以800Kbps的速度发送数据。 灯光颜色一致性高,性价比高。 应用 全彩模块,全彩软灯带。 LED装饰照明,室内外LED视频不规则屏幕。 ![](https://cf04.ickimg.com/bbsimages/202205/c1652992743703b9ff7d8af48d3518dc.jpg) 名称:12位WS2812智能全彩圆盘LED模块 整体尺寸:直径7cm 芯片:WS2812B(内置于LED) LED:5050封装RGB全彩高亮 电压:5V 端口:数字 平台:单片机(Arduino 、51单片机等) 控制方式:内置控制芯片,只需一个IO口即可控制 ![](https://cf04.ickimg.com/bbsimages/202205/4a884514769a0a4bf1e74de6a370c83d.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/4a07de6afda3ee43a5aed17d23a3bc63.jpg) ![](https://cf04.ickimg.com/bbsimages/202205/3809bd61153a291d501dd9a6f49c62cf.jpg) (1)Arduino参考开源代码 ```cpp /@@* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百零一:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环 1、安装库:IDE-工具-管理库-搜索Adafruit_NeoPixel-安装 2、项目:点亮环形LED模块,循环快闪绿色光 3、接脚: VCC → 5V GND → GND DI 接 D7 */ #include
#define PIN 7 #define MAX_LED 12 #define ADD true #define SUB false int val = 0; boolean stat = ADD; Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 ); void setup(){ strip.begin(); strip.show(); } void loop(){ uint8_t i,a=0; uint32_t color = strip.Color(255, 100, 0); while(a<17) { for(i=0;i<16;i++) { if(i==a) strip.setPixelColor(i, color); else strip.setPixelColor(i, 0); } strip.show(); delay(20); a++; } } ``` 实验场景图 ![](https://cf04.ickimg.com/bbsimages/202205/8eb52ec8c6e28a53e8eff5d29b789f52.jpg) ```cpp /@@* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百零一:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环 1、安装库:IDE-工具-管理库-搜索Adafruit_NeoPixel-安装 2、项目:灯环显示彩色 3、接脚: VCC → 5V GND → GND DI 接 D7 */ #include
#ifdef __AVR__ #include
#endif #define PIN 7 // Parameter 1 = number of pixels in strip // Parameter 2 = Arduino pin number (most are valid) // Parameter 3 = pixel type flags, add together as needed: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, PIN, NEO_GRB + NEO_KHZ800); // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input // and minimize distance between Arduino and first pixel. Avoid connecting // on a live circuit...if you must, connect GND first. void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code strip.begin(); strip.show(); // Initialize all pixels to 'off' } void loop() { // Some example procedures showing how to display to the pixels: //colorWipe(strip.Color(255, 0, 0), 50); // Red // colorWipe(strip.Color(0, 255, 0), 50); // Green //colorWipe(strip.Color(0, 0, 255), 50); // Blue //colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW // Send a theater pixel chase in... // theaterChase(strip.Color(127, 127, 127), 50); // White //theaterChase(strip.Color(127, 0, 0), 50); // Red //theaterChase(strip.Color(0, 0, 127), 50); // Blue rainbow(20); //rainbowCycle(20); //theaterChaseRainbow(50); } // Fill the dots one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i
#define LED_PIN 7 #define NUM_LEDS 12 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds
(leds, NUM_LEDS); } void loop() { leds[0] = CRGB(255, 0, 0); FastLED.show(); delay(500); leds[1] = CRGB(0, 255, 0); FastLED.show(); delay(500); leds[2] = CRGB(0, 0, 255); FastLED.show(); delay(500); leds[3] = CRGB(150, 0, 255); FastLED.show(); delay(500); leds[4] = CRGB(255, 200, 20); FastLED.show(); delay(500); leds[5] = CRGB(85, 60, 180); FastLED.show(); delay(500); leds[6] = CRGB(150, 255, 20); FastLED.show(); delay(500); leds[7] = CRGB(0, 50, 255); FastLED.show(); delay(500); leds[8] = CRGB(255, 255, 0); FastLED.show(); delay(500); leds[9] = CRGB(20, 25, 255); FastLED.show(); delay(500); leds[10] = CRGB(255, 0, 20); FastLED.show(); delay(500); leds[11] = CRGB(50, 0, 55); FastLED.show(); delay(500); } ``` 实验项目四 ```cpp /@@* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百零一:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环 1、安装库:IDE-工具-管理库-搜索FastLED-安装 2、项目:红蓝色快扫——这里第一个“for”循环点亮所有12个蓝色LED, 从第一个LED到最后一个LED,延迟40毫秒。 下一个“for”循环再 次点亮所有12个LED,但这次是红色,反之,从最后一个LED到第一个LED。 3、接脚: VCC → 5V GND → GND DI 接 D7 */ #include
#define LED_PIN 7 #define NUM_LEDS 12 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds
(leds, NUM_LEDS); } void loop() { for (int i = 0; i <= 11; i++) { leds = CRGB ( 0, 0, 255); FastLED.show(); delay(60); } for (int i = 11; i >= 0; i--) { leds = CRGB ( 255, 0, 0); FastLED.show(); delay(40); } } ``` 实验项目五 ```cpp /@@* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百零一:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环 1、安装库:IDE-工具-管理库-搜索FastLED-安装 2、项目:逐个点亮不同序列的LED(可设置为任何颜色) 3、接脚: VCC → 5V GND → GND DI 接 D7 */ #include
#define LED_PIN 7 #define NUM_LEDS 12 CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds
(leds, NUM_LEDS); } void loop() { leds[0] = CRGB(255, 0, 0); FastLED.show(); delay(500); leds[1] = CRGB(0, 255, 0); FastLED.show(); delay(500); leds[2] = CRGB(0, 0, 255); FastLED.show(); delay(500); leds[5] = CRGB(150, 0, 255); FastLED.show(); delay(500); leds[9] = CRGB(255, 200, 20); FastLED.show(); delay(500); leds[3] = CRGB(85, 60, 180); FastLED.show(); delay(500); leds[7] = CRGB(50, 255, 20); FastLED.show(); delay(500); } ``` 实验开源图形编程(Mind+、编玩边学) ![](https://cf04.ickimg.com/bbsimages/202205/4aa30b142ba8e0241b908a3510a85f8f.jpg) 实验开源仿真编程(Linkboy V4.63) ![](https://cf04.ickimg.com/bbsimages/202205/0e320c538a103a84f8f077b75495f101.jpg)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
雕爷学编程
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交