《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
Posted Bruceoxl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光相关的知识,希望对你有一定的参考价值。
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调光的主要内容,如果未能解决你的问题,请参考以下文章
《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第3章 TWen-ASR-ONE 多线程和消息队列
《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光