楼主: eagler8

[教程] 【Arduino】108种传感器模块系列实验(61)---WS2812直条8位模块

[复制链接]

该用户从未签到

发表于 2019-10-9 18:36 | 显示全部楼层
大师,这几个灯可以是别的颜色吗?可以自己换颜色吗?

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-10-10 07:49 | 显示全部楼层
最想念的季节 发表于 2019-10-9 18:36
大师,这几个灯可以是别的颜色吗?可以自己换颜色吗?

三原色原理——人眼对红、绿、蓝最为敏感,人的眼睛像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。同样,绝大多数单色光也可以分解成红、绿、蓝三种色光,这是色度学的最基本的原理,也称三原色原理。

芯片控制的红、绿和蓝色三只LED灯,每种色的赋值范围是0-255,不同的搭配组合就会发出不同的颜色
timg.jpeg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-10-10 07:56 | 显示全部楼层

RGB色彩模式由自然界中光的三原色的混合原理发展而来。RGB分别代表红色(Red)、绿色(Green)、蓝色(Blue)。它的每个象素在每种颜色上可以负载2的8次方(256)种亮度级别,这样三种颜色通道合在一起就可以产生256的3次方(1670多万)种颜色,它在理论上可以还原自然界中存在的任何颜色。

在RGB色彩模式的图像中,某种颜色的含量越多,那么这种颜色的亮度也越高,由其产生的结果中这种颜色也就越亮。例如如果三种颜色的亮度级别都为0(亮度级别最低),则它们混合出来的颜色就是黑色;如果它们的亮度级别都为255(亮度级别最高),则其结果为白色。这和自然界中光的三原色的混合原理相同。

RGB色彩模式是目前运用最广泛的色彩模式之一,它能适应多种输出的需要,并能较完整地还原图像的颜色信息。如现在大多数的显示屏、RGB打印、多种写真输出设备都需要用RGB色彩模式的图像来输出。

timg.jpeg

该用户从未签到

发表于 2019-10-15 22:31 | 显示全部楼层
恩,学习到了,谢谢大师指导

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-10-16 06:34 | 显示全部楼层
最想念的季节 发表于 2019-10-15 22:31
恩,学习到了,谢谢大师指导

不是指导,我也是新人,有空多交流

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-12-31 08:05 | 显示全部楼层
本帖最后由 eagler8 于 2020-10-9 10:35 编辑
嘻嘻嘻嘻嘻 发表于 2019-12-30 20:58
怎么同时6路输出pwm控制ws2812灯?

调整程序参数为“#define MAX_LED 8”就行了

  1. /*
  2. 【Arduino】66种传感器模块系列实验(61)
  3. 实验六十一: 直条8位 WS2812B 5050 RGB LED内置全彩驱动彩灯模块
  4. 实验一,点亮ws2812直条LED
  5. */

  6. #include <Adafruit_NeoPixel.h>

  7. #define PIN 6
  8. #define MAX_LED 6

  9. #define ADD true
  10. #define SUB false

  11. int val = 0;
  12. boolean stat = ADD;

  13. Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );

  14. void setup()
  15. {
  16.   strip.begin();           
  17.   strip.show();           
  18. }

  19. void loop()
  20. {
  21.   uint8_t i,a=0;                                       
  22.   uint32_t color = strip.Color(0, 100, 255);         
  23.   while(a<10)
  24.   {
  25.       for(i=0;i<9;i++)
  26.       {
  27.         if(i==a) strip.setPixelColor(i, color);     
  28.         else strip.setPixelColor(i, 0);            
  29.       }
  30.        strip.show();                                
  31.        delay(20);                                   
  32.        a++;                                         
  33.   }
  34. }
复制代码


签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-12-31 13:23 | 显示全部楼层
本帖最后由 eagler8 于 2019-12-31 13:25 编辑
嘻嘻嘻嘻嘻 发表于 2019-12-31 11:50
不是吧?我是想实现同时点亮6个ws2812的板子的


有电原理图吗? 看看学学下

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-12-31 13:28 | 显示全部楼层
嘻嘻嘻嘻嘻 发表于 2019-12-31 11:50
不是吧?我是想实现同时点亮6个ws2812的板子的

每个ws2812板子多少位LED?

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-12-31 13:40 | 显示全部楼层
本帖最后由 eagler8 于 2019-12-31 13:41 编辑

0.jpg

u=2484175132,624161432&amp;fm=26&amp;gp=0.jpg

使用nano板六个数字端口分别控制不同的WS2812(2811)板子,注意不要超出每个端口的最大输出电流值

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2020-1-1 07:47 | 显示全部楼层
本帖最后由 eagler8 于 2020-1-1 07:49 编辑
嘻嘻嘻嘻嘻 发表于 2019-12-31 21:44
每块板也就3个ws2812led灯。实现独立控制6路六块灯板的话。代码怎么搞?

新年快乐
感觉你基础不错,完全可以自己做做实验试试看,多交流
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

原价299元【语音开发板套件】限时免费领!
原价299元【语音开发板套
教你让OLED动起来!多重字符串版!
教你让OLED动起来!多重字
大家都知道:arduino单片机是单线程的 而上次教程中的多段字符串的运行速度必须一致
TTGO T8 1.7.1使用TFT_eSPI库驱动2.4寸ILI9341屏幕显示板载SD内图片
TTGO T8 1.7.1使用TFT_eSP
TTGO T8 1.7.1采用Espressif官方ESP32-WROVER模块制作,4MB闪存和8MB PSRAM,支持TF
TTGO TFT屏幕Arduino使用的小结
TTGO TFT屏幕Arduino使用
TTGO TFT屏幕是一款ESP32和1.44寸LCD屏幕组合的产品,屏幕由ST7789驱动。ESP32自带520
分享我的第一个点灯程序——家庭控制中心
分享我的第一个点灯程序—
2020年,在B站上初识ESP8266,被ESP8266的低门槛、高性价比深深吸引,2020年6月20日,
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表