使用proteus仿真arduino节约时间和经济成本,初学者的不二选择。所以这里我们在使用ws2812前,我们也使用proteus来进行仿真。proteus必学案列arduino必学案例proteus+arduino+ws2812仿真。
我们常常在楼宇夜景或者马路边上的树干上看到的就是它,绚丽多彩吧!但使用起来需要购买专门的控制器,淘宝少都是几十块一个,下面我们用arduino也来做一个!
文章目录
一、预览效果
二、代码
三、函数说明
1、strip构造函数
2、show函数
3、setBrightness函数
4、setPixelColor
(1) 两个参数
(2)三个参数
(3)四个参数
5、numPixels查询数量函数
6、getPixelColor查询颜色函数
文章原出处: https://blog.csdn.net/haigear/article/details/129518378
一、预览效果
有关ws2812的知识我在前面的博文中已经讲过(用proteus中的信号源测试WS2812原理试验),这里我们就来实战一次,做个彩虹流水灯带环。我们首先来看看效果吧。
完整效果请访问视频: proteus必学案列源码arduino必学案例proteus+arduino+ws2812仿真
电流图很简单没有啥可以说的,四个8颗粒的led灯带连接起来,我这里采用的是逆时针,你可以顺时针也行,随你!
二、代码
我们要注意的是必须在你的arduino的IDE中安装好Adafruit_NeoPixel,直接搜即可,安装好才能确保我们的代码编译成功。
上面有些函数可能大家初次看到不是很明白,别着急下面会详细介绍。
三、函数说明
Adafruit_NeoPixel是已经封装好的库文件,用起来特别方便,这里有几个函数需要说明:
Adafruit_NeoPixel封装了一个最主要的类strip,它就是我们操作的灯带对象。其初始化类似我们最熟悉的serial,有个begin函数,这里不单独说了。
函数名 作用
strip 构造函数
begin 初始化
show 启动输出
setBrightness 设置亮度
clear 清除所有LED灯的色彩
setPixelColor 设置某颗led颜色
getPixelColor 获取某颗led颜色参数
numPixels 查询LED灯的总数量
getPixelColor 查询当前LED颗粒的颜色
1、strip构造函数
Adafruit_NeoPixel strip(NUM_LEDS , PIN, NEO_GRB + NEO_KHZ800);
三个参数,第一个就是灯的数量,第二关管脚,第三个频率(照着写即可),对照上面的程序参看。
2、show函数
每次设置完后需要调用此函数进行输出,否则你的灯带不会正常显示
调用方法:strip.show();
3、setBrightness函数
这个是一个亮度设置函数,仿真的时候可以设置亮一些,唯一的参数为整型,范围0到255
调用方法:strip.setBrightness();
4、setPixelColor
这函数有三个重载,分别有两个参数,三个参数和四个参数的
(1) 两个参数
调用方法:strip.setBrightness(n,color);
其中,第一个参数n是彩带中LED的编号,第二个参数color是一种32位类型(自然是代表颜色),将红色,绿色和蓝色值合并为一个数字,有时这样做能提高程序的效率。通过下面的方法,可以将红色、绿色和蓝色值转换为32位类型。
(2)三个参数
strip.setPixelColor(n, red, green, blue);
第一个参数同上,其余三个参数只是将颜色分成了RGB三个分量来描述而已。
(3)四个参数
strip.setPixelColor(n, red, green, blue, white);
其中,这个是给RGBW型LED使用的,相比三个参数的重载多了一个白色。
5、numPixels查询数量函数
查询先前声明的彩带中LED的数量,使用numPixels()方法,返回值16位整型。
用法:uint16_t n = strip.numPixels();
6、getPixelColor查询颜色函数
使用getPixelColor()方法可以查询某像素的颜色,该方法返回32位颜色值。
用法:uint32_t color = strip.getPixelColor(11);
创造不易,转载请注明出处: https://www.bilibili.com/video/BV1wo4y1z768/
相信看过上面的函数介绍,大家应该不难理解上面的代码了,而且用起来也会非常容了。
喜欢请关注!