本篇介绍ESP8266使用NeoPixel库来驱动IOT Kit板载WS2812彩灯。

1. WS2812彩灯介绍

WS2812是一个集控制电路与发光电路于一体的智能外控LED光源,外型与5050LED灯珠相同,每个灯珠都是一个像素点。像素点内包含数字接口、数据锁存、信号整形放大驱动电路,还包含高精度的内部振荡器和12V高压可编程定电流控制部分。

数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。

按照数据传输协议即可对WS2812进行驱动,当然对于WS2812有许多开源的驱动库,下面进行Adafruit_NeoPixel驱动库的安装。

2. 安装驱动库

在Arduino IDE中点击「项目」—「加载库」—「管理库」,查找Adafruit_NeoPixel库,选择最新版本,点击安装。

在弹出的对话框中选择Install all,安装全部的关联库。

3. 硬件连接及程序下载

在IOT Kit上,WS2812通过跳线帽连接到ESP8266的GPIO0。

在Arduino IDE中新建sketch,拷贝如下代码保存并下载到开发板。

/** ws2812b* ESP8266驱动WS2812彩灯* 板载接口GPIO0*/#include <Adafruit_NeoPixel.h>#define PIN        0  //GPIO0接口
#define NUMPIXELS  1  //彩灯个数Adafruit_NeoPixel led(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);void setup() {led.begin();led.setBrightness(10); //设置亮度 (0~255)
}void loop() {led.setPixelColor(0,led.Color(255, 0, 0)); //红色led.show(); //刷新显示delay(1000);led.setPixelColor(0,led.Color(0, 255, 0)); //绿色led.show(); //刷新显示delay(1000);led.setPixelColor(0,led.Color(0, 0, 2550)); //蓝色led.show(); //刷新显示delay(1000);led.clear();//清空显示led.show(); //刷新显示delay(1000);}

上传成功后,板载WS2812彩灯将红绿蓝交替显示。

4.常用库函数介绍

下面对Adafruit_NeoPixel库常用函数进行介绍:

  • Adafruit_NeoPixel led(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800):创建对象,包括信号引脚以及像素点数量,最后一个参数是像素类型标志,一般默认即可。
  • led.begin():对象初始化。
  • led.show():显示刷新,每次设置完毕必须调用此函数。
  • led.clean():将颜色值清除到0。
  • led.setBrightness():设置亮度。范围0~255。
  • led.setPixelColor():设置颜色值,第一个参数为像素点序号。
  • led.Color():将RGB单独颜色值打包成32位颜色值。

关于Adafruit_NeoPixel库详细介绍,请参考GitHub。


关注公众号「TonyCode」,获取完整代码。

个人博客1
个人博客2

08.ESP8266驱动WS2812彩灯相关推荐

  1. ② ESP8266 开发学习笔记_By_GYC 【ESP8266 驱动 ws2812 三原色灯(spi方式 稳定灯光)】

    目录 ② ESP8266 开发学习笔记_By_GYC [ESP8266 驱动 ws2812 三原色灯(spi方式 稳定灯光)] 一.驱动ws2812遇到的问题 二.可能的方案 三.具体实现 四.测试程 ...

  2. 最简单DIY基于ESP8266的智能彩灯⑦(APP通过彩虹调色板和WIFI控制WS2812彩灯)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...

  3. 最简单DIY基于ESP8266的智能彩灯⑥(Android开发通过WIFI控制彩灯实现表白神器)

    ESP8266和ESP32智能彩灯开发系列文章目录 第一篇:最简单DIY基于ESP8266的智能彩灯①(在网页用按钮点亮普通RGB灯) 第二篇:最简单DIY基于ESP8266的智能彩灯②(在网页用按键 ...

  4. 【微信小程序控制硬件⑦ 进阶篇】巧借阿里云物联网平台的免费连接,从微信小程序颜色采集控制 esp8266 输出七彩灯效果,中秋节来个直播如何?!

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  5. esp8266驱动_【直播视频】微信小程序连接阿里云物联网控制esp8266实现rgb调节。...

    前天晚上感谢各位小伙伴的捧场直播:我今年下半年立志会出一档实战视频<微信和支付宝小程序如何控制esp8266>,会第一时间通知大家! 昨晚在遇到一些小问题,耽误了一个小时,开始直播时候喉咙 ...

  6. STC15F104W驱动WS2812

    STC15F104W驱动WS2812 提示:学习目标:了解WS2812的驱动原理,写出驱动代码. 内容: 提示:这里可以添加要学的内容 例如: 1. 连接WS2812时序: 2. 基于STC15F10 ...

  7. MS51FB9AE驱动WS2812

    新塘单片机MS51FB9AE驱动WS2812 文章目录 新塘单片机MS51FB9AE驱动WS2812 一.原理图 二.代码讲解 三.资料整理 这个模块可以和所有单片机进行通讯,既可以用iic也可以用串 ...

  8. ESP8266 驱动1.3寸SH1106 OLED屏幕显示库

    ESP8266 驱动1.3寸SH1106 OLED屏幕显示库 Adafruit_SH110X 接线说明 SDA---D2(GPIO4) SCL---D1(GPIO5) 驱动示例程序 /******** ...

  9. 用esp8266驱动0.96寸OLED屏幕 太空人动画

    昨天闲来没事玩了一下OLED屏幕 之前只是做过显示图片 还没弄过动画的 (其实差不多–) 用esp8266驱动0.96寸LED屏幕 太空人动画 入门esp8266 看这篇文章 参考https://bl ...

最新文章

  1. 从上到下打印二叉树 II
  2. What???你的GitHub爆款项目,面试官可能问都不问
  3. Buck-Boost变换
  4. 码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable...
  5. Qt中的QByteArray和自定义结构体之间的相互转换
  6. java相关的国际化步骤_Java语言资源国际化步骤
  7. python登录接口测试_接口测试,基于Python
  8. Linux设备驱动之字符设备(二)
  9. Criteo数据集探索
  10. 黑马程序员 python 数据分析 代码_2020年最新版 5.0程序员 黑马python人工智能数据分析机器学习软件测试全栈开发...
  11. 评分卡Bad rate单调性问题
  12. 什么是JAVA?JAVA能用来干什么?
  13. 开源机器学习之MATLAB代码--LSTM-SVRNN(五)
  14. CGAffineTransform 视频旋转(转)
  15. 机械革命Umi电脑蓝屏怎么U盘重装系统操作分享
  16. 01章 象数易理篇之一
  17. [035] 微信公众帐号开发教程第11篇-符号表情的发送(上)
  18. 2022七夕程序员必备的表白黑科技(七夕限定款)
  19. iOS Charles IM抓包
  20. 跨地区信息服务SP许可证(不含互联网信息服务业务)是什么许可证?

热门文章

  1. Popular Cows POJ 2186(强连通分解)
  2. 2019 Android开发工程师面经
  3. scala列表-List.tabulate方法
  4. 操作系统成组链接法(@王道论坛)
  5. mysql 显示行号
  6. 神州数码牵手国内最大远程接入平台提供商
  7. CSS 背景鼠标滑过,提示文字
  8. Python 猜数字小游戏,3次机会
  9. [Python] openpyxl读存大数据 Exception: String longer than 32767 characters
  10. windows winrar 指令_windows中winrar命令行方式使用