4.1 Введение в ШИМ
Широтно-импульсная модуляция (ШИМ), аббревиатура от «широтно-импульсной модуляции» на английском языке, называемая широтно-импульсной модуляцией, представляет собой очень эффективную технологию, использующую цифровой выход микропроцессора для управления аналоговыми цепями. Проще говоря, это контроль ширины импульса, а это значит, что в одном цикле время, когда управляющий сигнал находится на высоком уровне, занимает процент от всего цикла сигнала, то есть настраивается скважность.
В Интернете много информации о ШИМ, поэтому я не буду здесь вдаваться в подробности.
4.2 Реализация ШИМ-диммирования
Вот модификация предыдущего примера, здесь осталось управлять 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 очень проста.Tianwen Block IDE предоставляет следующие модули: инициализация и настройка рабочего цикла.
Но здесь следует отметить, что режим вывода GPIO необходимо изменить. Согласно справочнику.
Режим PWM3 по умолчанию — обычный GPIO, который необходимо установить во второй режим (PWM).
Далее, как и в предыдущей главе, компилируем и скачиваем. Окончательный эффект выглядит следующим образом:
Я: умная домработница
TWen-ASR-ONE: Я
Я: голубой свет средней яркости
TWen-ASR-ONE: синий свет средней яркости
Я: минимальная яркость синего света
TWen-ASR-ONE: минимальная яркость синего света