4.1 PWM简介

脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制,指在一个周期内,控制信号处于高电平的时间占据整个信号周期的百分比,也就是调节占空比。

关于PWM网上资料很多,这里就不在赘述了。

4.2 PWM调光实现

这里再前一个例子上修改,这里还是来控制RGB灯。

以蓝灯为例。

图形代码如下:

字符代码如下:

#include "asr.h"
#include "setup.h"uint32_t snid;
void ASR_CODE();//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
/*描述该功能...
*/
void ASR_CODE(){if((snid) == 4){digitalWrite(13,1);}if((snid) == 6){digitalWrite(13,0);}if((snid) == 8){digitalWrite(13,0);setPinFun(12,SECOND_FUNCTION);pwm_set_duty(PWM3,500,1000);}if((snid) == 10){digitalWrite(13,0);setPinFun(12,SECOND_FUNCTION);pwm_set_duty(PWM3,10,1000);}
}void setup()
{//{speak:小蝶-清新女声,vol:10,speed:10}//{playid:10001,voice:欢迎使用智能管家,用智能管家唤醒我。}//{playid:10002,voice:我退下了,用智能管家唤醒我}//{ID:2,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}//{ID:4,keyword:"命令词",ASR:"打开红灯",ASRTO:"好的,马上打开红灯"}//{ID:6,keyword:"命令词",ASR:"关闭红灯",ASRTO:"好的,马上关闭红灯"}//{ID:8,keyword:"命令词",ASR:"蓝灯中等亮度",ASRTO:"蓝灯中等亮度"}//{ID:10,keyword:"命令词",ASR:"蓝灯最小亮度",ASRTO:"蓝灯最小亮度"}PWM_enble(PWM3,1000,1000,1);setPinFun(12,FIRST_FUNCTION);
}

PWM的开发很简单,天问Block IDE提供了以下模块:初始化、设置占空比。

但这里需要注意的是,需要改变GPIO的输出模式。根据参考手册。

PWM3默认的模式是普通的GPIO,需要将其设置为第二模式(PWM)。

接下来就和上一章一样,编译下载。
最后的效果如下:

我:智能管家
TWen-ASR-ONE:我在
我:蓝灯中等亮度
TWen-ASR-ONE:蓝灯中等亮度

我:蓝灯最小亮度
TWen-ASR-ONE:蓝灯最小亮度



欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光相关推荐

  1. 大数据开发笔记(四):Hive数仓调优

      ✨大数据开发笔记推荐: 大数据开发面试知识点总结_GoAI的博客-CSDN博客_大数据开发面试​本文详细介绍大数据hadoop生态圈各部分知识,包括不限于hdfs.yarn.mapreduce.h ...

  2. Ardunio开发实例-管场效应(MOSFET)控制12V电机PWM调速

    管场效应(Mosset)控制12V电机PWM调速 Arduino微控制器无疑是市场上最便宜的控制组件. 可以使用这些开发板或微控制器轻松控制负载. 但是,如果要切换电动机或大功率灯等大负载,则由于没有 ...

  3. Web前端开发笔记——第三章 CSS语言 第六节 CSS定位

    目录 一.定义 二.文档流定位 (一)block类型元素 (二)inline类型元素 (三)inline-block类型元素 三.浮动定位 (一)左浮动和右浮动 (二)清除浮动 四.层定位 (一)st ...

  4. Web前端开发笔记——第三章 CSS语言 第五节 盒子模型

    目录 一.CSS布局与定位 二.盒子模型 三.盒子模型的组成 四.设置边框的属性 五.设置外.内边距的属性 六.overflow 属性 结语 一.CSS布局与定位 在CSS中对一个网页进行布局与定位, ...

  5. 《ZigBee开发笔记》第二部分 基础篇-第5章 CC2530 PWM调光

    1 理论分析 PWM 就是Pulse-Width Modulation (脉冲宽度调制),这里面的脉冲宽度即在一个周期内输出高电平的时间,假如说周期T=64US,脉冲宽度D=32us,则占空比=D/T ...

  6. 云炬WEB开发笔记 第2章小结回顾

  7. Web前端开发笔记——第四章 JavaScript程序设计 第五节 数组

    目录 一.数组的创建 (一)Array()构造函数 (二)字面量方法 二.数组元素的读写和遍历 三.添加和删除数组元素 (一)添加数组元素 (二)删除数组元素 (三)splice()方法 四.二维数组 ...

  8. Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句

    目录 一.if条件语句 二.while循环语句 (一)while()语句 (二)do--while语句 三.for循环语句 四.switch语句 五.break语句和continue语句 一.if条件 ...

  9. Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型

    目录 一.基本数据类型 (一)String类型 (二)Number类型 1.字面量 2.无穷大 3.非数值 (三)Boollean类型 (四)Undefined类型和Null类型 二.引用数据类型 ( ...

  10. Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量

    目录 一.JavaScript中的注释 二.变量的命名规则 三.变量声明以及赋值 四.变量作用域 五.变量提升 一.JavaScript中的注释 JavaScript中单行注释通过"//&q ...

最新文章

  1. 多年iOS开发经验总结(一)
  2. 专题 20 常用调试技术
  3. 搜索专题【2010】四2.过河问题
  4. 环境变量_UG环境变量设置
  5. mysql连接数紧张_Mysql 查看连接数,状态,最大并发数
  6. 什么是python编程例子_案例详解:优化Python编程的4个妙招
  7. 使用git管理github项目
  8. Git 企业开发者教程
  9. c++保存图标到dll_自动保存邮件附件至指定文件夹
  10. token要加编码decode吗_彻底弄明白Base64 编码
  11. android指南针校准 代码_Android 指南针传感器
  12. 微信引擎插件会对小游戏带来怎样的利好?(深度解读)
  13. 1108. Finding Average (20)-PAT甲级真题
  14. 为静态Checkbox动态地添加checked属性
  15. IDEA取消双击shift出现的搜索框
  16. 中山大学计算机学院离散数学,中大信科院计算机复试专业课离散数学.pdf
  17. Java字符串排序(根据字节及字符长度进行排序)
  18. java证明角谷猜想_Java程序(角谷猜想,applet) -
  19. 力扣解法汇总838-推多米诺
  20. 程序员应了解的那些事(107)之图灵完备

热门文章

  1. java课程设计 博客园_201521123098 JAVA课程设计
  2. TrueLaunchBar 4.2
  3. mysql 时间加五分钟_mysql当前时间增加5分钟的实现方法
  4. Java中区分中英文
  5. H5:MathJax解析数学公式
  6. Failed to load language: zh-CN from的解决办法
  7. 凉鞋问题之贝叶斯公式
  8. 数据结构 c语言 试卷,数据结构(C语言)试卷(1)
  9. [论文评析]Density‑based weighting for imbalanced regression,Machine Learning,2021
  10. kafka 报错 SyntaxError: invalid syntax