码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ESP8266-Arduino编程实例-WS2812驱动


    WS2812驱动

    1、WS2812介绍

    WS2812系列是控制电路和RGB芯片集成在5050个元件封装内的智能控制LED光源。它内部包括智能数字端口数据锁存器和信号整形放大驱动电路。有效保证像素点光色高度一致。
    数据传输协议采用单 NZR 通信方式。像素上电复位后,DIN 口接收控制器的数据,第一个像素采集初始 24 位数据,然后发送到内部数据锁存器,其他数据通过内部信号整形放大电路整形后发送到下一个级联像素通过 DO 端口。

    每个像素传输后,信号减少24bit。像素采用自动整形传输技术,使得像素级联数不受信号传输的限制,只取决于信号传输的速度。 LED具有驱动电压低、环保节能、亮度高、散射角大、一致性好、功耗低、寿命长等优点。

    在前面的文章中,对WS2812做了了详细的介绍,请参考:

    • Ardunio开发实例-WS2812B独立寻址LED调色调光
    • Arduino与Proteus仿真实例-WS2812-RGB-LED灯带酷炫效果仿真
    • Arduino与Proteus仿真实例-WS2812-RGB-LED点阵(8x8)驱动仿真
    • ESP32-IDF开发实例-传感器模块编程-WS2812

    2、硬件准备

    • ESP8266 NodeMCU开发板一块
    • WS2812模块(或灯带)一个/条
    • 面板板一个
    • 杜邦线若干
    • 数据线一条

    硬件接线如下:

    在这里插入图片描述

    3、软件准备

    • Arduino IDE或VSCode + PlatformIO

    在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

    • ESP8266-Arduino编程实例-开发环境搭建(基于Arduino IDE)
    • ESP8266-Arduino编程实例-开发环境搭建(基于PlatformIO)

    ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

    • ESP8266-Arduino编程实例-认识ESP8266

    4、代码实现

    本次使用WS2812驱动库如下:

    • https://github.com/adafruit/Adafruit_NeoPixel

    1)导入依赖库文件

    #include 
     
    // WS2812数据引脚
    #define PIN D2
    // WS2812数量
    #define NUMPIXELS 1
     
    // WS2812驱动对象
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2)设备初始化

    void setup() {
     // 启动WS2812
     pixels.begin();
    }
    
    • 1
    • 2
    • 3
    • 4

    3)驱动数据传输及显示效果

    void loop() {
     // 延时
     int delayval = 500;
     // 对于一组 NeoPixel,第一个 NeoPixel 为 0,第二个为 1,一直到像素数减一
     for(int i=0;i<NUMPIXELS;i++){
     // pixel.Color 采用 RGB 值,从 0,0,0 到 255,255,255
     pixels.setPixelColor(i, pixels.Color(0,255,0));
     // 显示
     pixels.show();
     delay(delayval);
     pixels.setPixelColor(i, pixels.Color(255,0,0));
     pixels.show();
     delay(delayval);
     pixels.setPixelColor(i, pixels.Color(0,0,255));
     pixels.show();
     delay(delayval);
     }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    Wireshark入门到超神-第一章-过滤器-数据包解析
    Java的XWPFTemplate word生成列表
    Camera Hal OEM模块 ---- cmr_snapshot.c
    为什么Git的教程都那么繁杂?
    Echarts 散点象限图(二)动态绘制
    1033 To Fill or Not to Fill
    【安卓基础1】初识Android
    c++未初始化的局部变量有巧合的初始值
    24、wpf之布局(二)
    产品的需求只有一句话,如何破局?
  • 原文地址:https://blog.csdn.net/wujuxKkoolerter/article/details/126136645
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号