物联网AI MicroPython传感器学习 之 WS2812 RGB点阵灯环

news2025/1/23 7:14:26

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

ws2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。
image.png
引脚定义

  • DI: 控制信号输入引脚
  • VCC:电源5V
  • GND:电源地
  • DO: 信号输出引脚,串联下一个灯珠

二、技术参数

  • 工作电压:5V
  • 发送速率:800Kbps
  • 亮度显示:支持256级亮度显示,rgb三色支持16777216种颜色的显示
  • 通信方式:单线通信
  • 工作特性:刷新速率30帧/秒时,级联数不小于1024
  • 工作温度:-20°C~85°C

三、软件接口

WS2812 - 创建WS2812驱动对象

  • 函数原型

relayObj = WS2812(gpioObj, ledPixel)

  • 参数说明
参数类型必选参数?说明
gpioObjGPIOWS2812控制引脚的GPIO对象
ledPixelint默认ledPixel为24个RGB点灯,开发者根据自己的实际需求创建
  • 返回值

若WS2812对象创建成功,返回WS2812对象;否则抛出Exception

  • 示例代码
from machine import Pin
import ws2812

gpioObj=Pin(2, Pin.OUT, Pin.PULLDOWN)
ws2812Obj = ws2812.WS2812(gpioObj)
print("ws2812 inited!")
  • 输出
ws2812 inited!

set(r,g,b,index) - 点亮对应index的RGB点阵灯环

  • 函数功能:

点亮对应index的RGB点阵灯环

  • 函数原型:

WS2812.set(r,g,b,index)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
indexint对应的灯珠索引号,范围:0~(ledPixel-1),例如:第一个灯珠的index为0
  • 返回值:

dot(r,g,b,time) - 将RGB点阵灯环逐个点亮,每次只有一个灯珠被点亮

  • 函数功能:

将RGB点阵灯环逐个点亮,每次只有一个灯珠被点亮

  • 函数原型:

WS2812.dot(r,g,b,time)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
timeint逐个点灯的时间,单位(ms)
  • 返回值:

wipe(r,g,b,time) - 将RGB点阵灯环一一点亮

  • 函数功能:

将RGB点阵灯环一一点亮

  • 函数原型:

WS2812.wipe(r,g,b,time)

  • 参数说明:
参数类型说明
rint红色灯珠的值,取值范围:0-255
gint绿色灯珠的值,取值范围:0-255
bint蓝色灯珠的值,取值范围:0-255
timeint逐次点灯的时间,单位(ms)
  • 返回值:

rainbow(time) - RGB点阵灯环实现彩虹变换

  • 函数功能:

RGB点阵灯环实现彩虹变换

  • 函数原型:

WS2812.rainbow(time)

  • 参数说明:
参数类型说明
timeint彩虹渐变的时间,单位(ms)
  • 返回值:

clear(index) - 熄灭对应index的RGB点阵灯环

  • 函数功能:

熄灭对应index的RGB点阵灯环

  • 函数原型:

WS2812.clear(index)

  • 参数说明:
参数类型是否必选说明
indexint当不选参数的时候,所有的灯珠会熄灭。
index对应的灯珠索引号,范围:0~(ledPixel-1),例如:第一个灯珠的index为0
  • 返回值:

四、接口案例

  • 示例代码
from machine import Pin
import ws2812

gpioObj=Pin(2, Pin.OUT, Pin.PULLDOWN)
ws2812Obj = ws2812.WS2812(gpioObj)
print("ws2812 inited!")
while True:
  ws2812Obj.dot(128,0,0,100)

五、工作原理

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

参考文献及购买链接

[1] WS2812原理介绍
[2] WS2812购买链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于vue框架的uniapp小程序开发发现了新大陆

项目场景: 在基于vue框架的uniapp小程序开发中,在页面跳转时,当前页路径带参数,在跳转页中接受数据除了用官方推荐的保留当前页面,跳转到应用内的某个页面,使用onLoad(option)接受数据,但是我发…

【动手学深度学习】课程笔记 04 数据操作和数据预处理

目录 数据操作 N维数组样例 访问元素 数据操作实现 入门 运算符 广播机制 节省内存 转换为其他Python对象 数据预处理实现 数据操作 N维数组是机器学习和神经网路的主要数据结构。 N维数组样例 访问元素 数据操作实现 下面介绍一下本课程中需要用到的PyTorch相关操…

【jvm--堆】

文章目录 1. 堆(Heap)的核心概述2. 图解对象分配过程2.1 Minor GC,MajorGC、Full GC 1. 堆(Heap)的核心概述 堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程…

Leetcode hot 100之回溯O(N!):选择/DFS

目录 框架:排列/组合/子集 元素无重不可复选 全排列 子集 组合:[1, n] 中的 k 个数 分割成回文串 元素无重不可复选:排序,多条值相同的只遍历第一条 子集/组合 先进行排序,让相同的元素靠在一起,如…

玩重生奇迹MU如何搭配武器装备

在游戏里面怎么搭配装备呢,玩家是否在思考这个问题呢,肯定要不断的了解所玩的职业,必须要懂得掌握不一样的装备搭配方法,这样才可以更好的发挥所玩职业最强大的伤害输出。 一、武器装备搭配技巧 在游戏中需要懂得搭配装备的技巧…

2023年中国互联网本地生活服务行业发展历程及趋势分析:国内市场仍有增长潜力[图]

我国本地生活进入4.0时代,“附近消费”场景迭代、渠道多元;更多玩家涌入本地生活赛道,本地消费场景分散到多平台、多模式,线下门店短视频直播运营组合蔚然成风。 本地生活行业发展历程 资料来源:共研产业咨询&#xf…

阿里云轻量应用服务器月流量限制说明(部分套餐不限流量)

阿里云轻量应用服务器部分套餐限制月流量,轻量应用服务器按照套餐售卖,有的套餐限制月流量,有的不限制流量。像阿里云轻量2核2G3M带宽轻量服务器一年108元和轻量2核4G4M带宽一年297.98元12个月,这两款是不限制月流量的。阿里云百科…

前端TypeScript学习day02-TS常用类型

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 TypeScript 常用类型 接口 元组 类型推论 类型断言 字面量类型 枚举 any 类型 typeof TypeScrip…

yolov5及yolov7实战之剪枝

之前有讲过一次yolov5的剪枝:yolov5实战之模型剪枝_yolov5模型剪枝-CSDN博客 当时基于的是比较老的yolov5版本,剪枝对整个训练代码的改动也比较多。最近发现一个比较好用的剪枝库,可以在不怎么改动原有训练代码的情况下,实现剪枝的…

c#学生管理系统

一、系统概述 学生管理系统是一个旨在帮助学校、教育机构和教育者有效管理学生信息、课程安排和成绩记录的应用程序。该系统旨在简化学生管理的各个方面,提供高效的解决方案,以满足教育机构的需求。 二、功能模块 1. 学生信息管理 添加学生:录入学生…

HashMapConcurrentHashMap

文章目录 1、HashMap基础类属性node容量负载因子hash算法 2、数组链表/树为什么引入链表为什么jdk1.8会引入红黑树为什么一开始不就使用红黑树?HashMap的底层数组取值的时候,为什么不用取模,而是&数组的长度为什么是2的次幂如果指定数组的…

数据结构--》数组和广义表:从基础到应用的全面剖析

数据结构为我们提供了组织和处理数据的基本工具。而在这个广袤的数据结构领域中,数组和广义表是两个不可或缺的重要概念。它们作为线性结构的代表,在算法与应用中扮演着重要的角色。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可…

青少年近视问题不容小觑,蔡司用专业技术助力孩子视力健康发展

根据国家卫健委公布的数据显示,2022年全国儿童青少年近视率达到53.6%,青少年近视已成为社会普遍的眼健康问题。对家长来说,也需要提高对孩子眼视光健康重要性的认知,日常培养青少年良好的用眼习惯,并通过矫正视力的方式…

如何使用 Tensor.art 实现文生图

摘要:Tensor.art 是一个基于 AI 的文本生成图像工具。本文介绍了如何使用 Tensor.art 来实现文生图的功能。 正文: 文生图是指将文本转换为图像的技术。它具有广泛的应用,例如在广告、教育和娱乐等领域。 Tensor.art 是一个基于 AI 的文本…

外汇天眼:真实记录,投资者在盗版MT4平台SCE Group上做交易的经历!

外汇市场是全球最大的金融市场,比起其他市场有着更多天然的优势,但也因为资讯的不对等,导致很多人上当受骗。而在外汇市场上最常见的骗局之一,就是黑平台使用盗版MT4/5交易软件,因为截至目前MT4/5仍是外汇市场交易使用…

汽车电子中的安森美深力科分享一款高性能车规级芯片NCV7520MWTXG

安森美深力科NCV7520MWTXG可编程六沟道低压侧 MOSFET 预驱动器,是一个 FLEXMOS™ 汽车级产品系列,用于驱动逻辑电平 MOSFET。该产品可通过串行 SPI 和并行输入组合控制。该器件提供可兼容 3.3 V/5 V 的输入,串行输出驱动器可基于 3.3 V 或 5 …

在模拟器上安装magisk实现Charles抓https包(三)

经过前两篇的内容,链接如下: 在模拟器上安装magisk实现Charles抓https包(一)_小小爬虾的博客-CSDN博客 在模拟器上安装magisk实现Charles抓https包(二)_小小爬虾的博客-CSDN博客 电脑端的Charles就可以抓…

VS2022 17.8 功能更新:现已支持 C11 线程

早在 VS2022 17.5 版本,Microsoft Visual C 库已经初步支持了 C11 atomics。今天,我们很高兴地宣布,在最新版本 VS2022 17.8 预览版 2 中已正式支持 C11 线程。开发者可以更轻松地将跨平台 C 应用程序移植到 Windows,而无需开发线…

华为OD机试 - 最小步骤数(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入:4 8 7 5 2 3 6 4 8 12、输出:23、说明:4、思路分析 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《…

网络安全总结

前言 本文内容主要摘抄网络规划设计师的教材和腾讯-SUMMER课堂,主要对网络安全进行简单梳理和总结 OSI安全体系 X轴表示8种安全机制,Y轴表示OSI7层模型,Z轴表示5种安全服务,图中X是水平,Y轴竖直,Z轴向外…