精品无码国产一区二区三区麻豆,国产a毛片精品视频日日夜,国产毛片精品性无码,久欠精品国国产99国产精

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> MM32/靈動微電子 >> MM32W無線MCU系列產品應用筆記 —— 智能炫彩遙控燈方案

MM32W無線MCU系列產品應用筆記 —— 智能炫彩遙控燈方案

關鍵字:靈動微電子 MM32W無線MCU 智能炫彩遙控燈方案 作者: 來源: 發(fā)布時間:2022-06-16  瀏覽:48
基于藍牙技術的智能燈控方案是智能家居應用重要組成部分,通過連接手機APP可以控制燈的開關、亮度、設定開關時間、統(tǒng)計耗電量等功能。該方案具有控制方便,功能多樣,操作迅速,設計開發(fā)簡單等優(yōu)勢。

硬件資源:

LED的驅動分別使用PA9/10/11輸出PWM波形控制三極管來驅動RGB燈。通過控制灰度來實現(xiàn)視覺上的亮度和顏色變化,紅、綠、藍三個顏色通道每種顏色各分為255階亮度,在0時"燈"最弱--是關掉的,而在255時"燈"最亮。當三色數值相同時為無色彩的灰度色,而三色都為255時為最亮的白色,都為0時為黑色控制頻率?梢允褂脦装俸掌澋綆资甂赫茲來進行調節(jié)不同色彩的燈光。驅動控制原理部分詳見下圖:

原理圖

圖1 RGB燈驅動原理圖

軟件資源:

1、PA9/10/11為TIM1的CH2、3、4的捕獲比較輸出通道,需要將三個IO工作模式的配置為復用推挽輸出,同時配置AF寄存器為TIM1的CH2、3、4功能,TIM1需要配置CH2、3、4為脈沖寬度調制模式。配置方式實現(xiàn)代碼如下:

void PWM_Init(void)

{


GPIO_InitTypeDef GPIO_InitStructure;


TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;


TIM_OCInitTypeDef  TIM_OCInitStructure;


RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA , ENABLE); 


GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;


GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;


GPIO_Init(GPIOA, &GPIO_InitStructure);


GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,GPIO_AF_2);


GPIO_PinAFConfig(GPIOA, GPIO_PinSource10,GPIO_AF_2);


GPIO_PinAFConfig(GPIOA, GPIO_PinSource11,GPIO_AF_2);


TIM_TimeBaseStructure.TIM_Period = 255*100;


TIM_TimeBaseStructure.TIM_Prescaler = 0;


TIM_TimeBaseStructure.TIM_ClockDivision = 0;


TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;


TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); 


TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;


TIM_OCInitStructure.TIM_Pulse = 0;


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 


TIM_OC2Init(TIM1, &TIM_OCInitStructure);


TIM_OC3Init(TIM1, &TIM_OCInitStructure);


TIM_OC4Init(TIM1, &TIM_OCInitStructure);


TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);


TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);


TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);


TIM_ARRPreloadConfig(TIM1, ENABLE);


TIM_Cmd(TIM1, ENABLE);


TIM1->BDTR |= 0x8000;


//上電亮白光


SetLEDLum(0,0,0,100);


SetLEDLum(0,0,100,101);


}


2、我們在UpdateLEDValueAll函數中調用Led_getInfo(data)來獲取RGB的配置信息,data是一個數組指針,數組成員包含RGB三個LED的灰度值(0-255),而Led_getInfo(data)最終通過調用server_rd_rsp(u8 attOpcode, u16 attHandle, u8 pdu_type)函數來獲取手機APP發(fā)送給我們的信息。根據data信息修改TIM1的CCR2、3、4的大小來調節(jié)CH2、3、4三路PWM輸出的占空比,進而調節(jié)REB的三個LED的亮度,來實現(xiàn)我們對于不同色彩、亮度的需求。詳細實現(xiàn)代碼如下:

void UpdateLEDValueAll(void) //porting function

{


int t;


unsigned char data[7];


unsigned char EnableLED_Flag = 0;


unsigned int Led_Lum_percent = 100;


Led_getInfo(data);


EnableLED_Flag = data[0];


if(EnableLED_Flag == 0) {


TIM_SetCompare2(TIM1,0); //G


TIM_SetCompare3(TIM1,0); //B


TIM_SetCompare4(TIM1,0); //R


} else {


Led_Lum_percent = data[6];


t = data[3] * Led_Lum_percent; TIM_SetCompare2(TIM1,t); //Rx100


t = data[2] * Led_Lum_percent; TIM_SetCompare3(TIM1,t); //Gx100


t = data[1] * Led_Lum_percent; TIM_SetCompare4(TIM1,t); //Bx100


}


}


我們選用一款通用APP做為控制端,操作流程如下:


1.     手機打開App,會自動開始搜索藍牙設備名(如MindMotionLED)并連接。

2.     連接成功以后app出現(xiàn)RGB控制界面,可以在APP界面中點選不同區(qū)域來改變LED燈的顏色。                        

原理圖

如需要了解更多靈動微MCU產品,請聯(lián)系靈動微核心代理商,穎特新科技


編輯:ls  最后修改時間:2022-06-16

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4