本本针对Telink BLE MESH SDK  灯控的使用进行说明。
1、调整灯光的频率
默认情况下 SDK PWM波的频率是 600HZ的,有时我们需要将它调整频率,例如调整为4K,只需要更改参数 PMW_MAX_TICK_MULTI 为31 就好了。
计算 PWM 频率公式
freq = CLOCK_SYS_CLOCK_HZ / (PMW_MAX_TICK)
PMW_MAX_TICK=PMW_MAX_TICK_BASE*PMW_MAX_TICK_MULTI
PMW_MAX_TICK_BASE=255 为常量 不变化。
 
 
2、调整灯光的亮度,
SDK中,灯光的亮度范围5%~100%,但是发现设置亮度为50%, 实际亮度却不是50%,实际上对应的表格如下。你设置的亮度百分比只是一个 索引号,例如设置亮度为50%, 实际PWM频率为
rgb_lumen_map[50]=(75*256)/255=29.4%;设置亮度为10%,实际PWM频率为rgb_lumen_map[10]=(7*256)/255=2.75%;

以下为逻辑分析仪抓图。设置亮度为50%,
PWM波频率为4K,设置亮度为50%波形
 

PWM波频率为4K,设置亮度为10%波形
 
实际测试,某些灯具设置占空比太小时,会出现闪烁的情况,因此SDK中做了限制,亮度值设置为0~4时,认为是无效值。
 
3、色度与亮度的关系
有时为了渲染效果需要改变灯的颜色,本质其实是调整Red Green Blue 3路PWM波达到一个效果,每个灯厂商的灯珠的RGB与色温 都有对应的表格。具体可以去网上查找“常用色温对应RGB颜色表http://blog.csdn.net/vrix/article/details/44037737
色温的定义:以绝对温度K来表示。是将一标准黑体加热,温度升高至某一程度时,颜色开始由红—浅红-橙黄-白-蓝白-蓝,逐渐变化,利用这种光色变化的特性,某光源的光色与黑体在某一温度下呈现的光色相同时,我们将黑体当时的绝对温度称为该光源的相关色温。
3000K 黄色光,强穿透力 
4200K 白中带黄,原车配氙气灯 
5000K 光全白,欧规最高色温 
6000K 光全白,略带蓝色 
6500K 阳光下的白天 
7000??8000K白中明显带蓝 
8000K以上蓝光,穿透力极差推荐6000K左右的色温正好是最白略微开始转蓝的色温,人眼容易接受,不易疲劳,提高安全性,而卤素灯则较差。
   
 
 
4、色温的实现
为了方便测试,先将亮度百分比设置为100%,发送 指令 LGT_CMD_LIGHT_RC_SET_RGB,也是对应的索引值,例如说1,那么 R G B对应的占空比即为 ((8/255 )*lum)、((8/252 )*lum)、((8/132 )*lum),
 
因此如果需要微调整灯的颜色,只需修改这个表格即可。
 
 
 
 
 
 前期调试也可以通过命令LGT_CMD_SET_RGB_VALUE 来微调整,将值放入上面表格即可

 

Telink BLE MESH PWM波的小结的更多相关文章

  1. PWM波控制舵机总结

    文章转自:http://www.geek-workshop.com/thread-70-1-1.html 一.关于舵机: 舵机(英文叫Servo):它由直流电机.减速齿轮组.传感器和控制电路组成的一套 ...

  2. stm32cube--通用定时器--产生pwm波

    看了通用定时器的资料,发现内容挺多,挺难看懂,现在还是先掌握使用方法,以后再多看几遍吧. ① ② ③生成mdk工程后,在main.c的while(1)前面加上HAL_TIM_PWM_Start(&am ...

  3. 使用引脚模拟PWM波控制引脚

    /********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...

  4. STM32F103定时器输出PWM波控制直流电机

    这个暑假没有回家,在学校准备九月份的电子设计竞赛.今天想给大家分享一下STM32高级定时器输出PWM波驱动直流电机的问题.. 要想用定时器输出的PWM控制直流电机,,首先要理解“通道”的概念..一个定 ...

  5. STM32 PWM波

    利用STM32产生占空比可以调节的PWM波 科普:pwm(Pulse Width Modulation)脉宽调制 关于pwm波的产生:1.首先来看一下代码: pwm波模式的相关配置(利用的是定时器TI ...

  6. STM32高级定时器TIM1产生两路互补的PWM波(带死区)

    测试环境:Keil 5.20.0.0 STM32F103RBT6 固件库版本:STM32F10x_StdPeriph_Lib_V3.5.0(2011) 本文使用TIM1的通道1,通道2,产生两路1kh ...

  7. 定时器同步+触发三ADC采样+输出6路PWM波

    为了熟悉定时器定时器和ADC 用STM32F407DIS做了一个简单的工程: 通过高级定时器TIM1溢出更新时间作为触发输出信号(TRGO),触发TIM8开始计数: 同时TIM1的通道1.2.3以及分 ...

  8. 进阶之路(基础篇) - 005 模拟PWM波控制引脚

    /********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...

  9. STM8S003F3通过PWM波实现三基色呼吸灯(转)

    源: STM8S003F3通过PWM波实现三基色呼吸灯

随机推荐

  1. 2021.10.27考试总结[冲刺NOIP模拟17]

    T1 宝藏 发现每个数成为中位数的长度是关于权值单调的.线段树二分判断是否合法,单调指针扫即可. 考场上写了二分,平添\(\log\). \(code:\) T1 #include<bits/s ...

  2. 关于QGIS的插件开发(C++)

    关于C++插件的开发材料较少,根据网上的指导,我采用了早期版本的插件模板生成的方法来创建QGIS的插件,其方法是从以前版本(2.18.25)里面拷贝插件模板的方法进行,具体的执行步骤为 1.拷贝文件 ...

  3. 21.10.12 test

    题目 **WOJ5110 ** 到 WOJ5113 校内自测没开捆绑,于是输出 -1 和 n! 的程序拿到了高分,我的得分也比期望得分略有提升 T1 problem a \(\color{red}{2 ...

  4. 21.7.24 test

    \(NOIP\) 模拟赛 考差了. T1签到题.注意存在字符串长度为0,不能直接模.\(100\rightarrow0\) 代码: #include<bits/stdc++.h> usin ...

  5. 从0到1搭建自己的组件(vue-code-view)库(下)

    0x00 前言 书接上文,本文将从源码功能方面讲解下 vue-code-view 组件核心逻辑,您可以了解以下内容: 动态组件的使用. codeMirror插件的使用. 单文件组件(SFC,singl ...

  6. SkyWalking部署及.Net Core简单使用

    SkyWalking官方网站非常详细,以下只是本人学习过程的整理 一.SkyWalking简介 1.概念 SkyWalking是分布式系统的应用程序性能监视工具,专为微服务.云原生架构而设计 SkyW ...

  7. kafka的安装

    kafka是基于java环境的,所以需要先安装java环境 centos:yum install java-11-openjdk ubuntu:apt install default-jdk 默安装默 ...

  8. 区块链开发学习第三章:私有链上部署helloBlockchain简单合约

    前面讲了部署私有链以及新增账户,现在进行到了部署合约了,此操作真是踩了无数无数无数的坑,到写文章为止确实是已经部署好了,但是还有些坑是还没有解决的! 一.Solidity编译器 开始的时候用的http ...

  9. sprint boot 自动创建web应用(3)

    1. springboot自动创建地址:https://start.spring.io/ 2.选择web(springMVC) 3.点击创建 4.创建成功 5.解压,导入项目 6.新建成功 7.原因 ...

  10. VSCode 微信小程序 开发环境配置 详细教程

    本博客已暂停更新,需要请转新博客http://www.whbwiki.com/231.html 配置 VsCode 微信小程序开发环境并非不用官方的 微信小程序开发者工具 ,而是两者配合适用,可以极大 ...