微控制器紅外遙控格力空調
https://blog.csdn.net/u013247982/article/details/37914581
https://blog.csdn.net/yannanxiu/article/details/48174649
參考以上兩章文章瞭解格力空調碼
紅外接收頭輸出的電平:
0的電平寬度為:600us低電平+600us高電平
1的電平寬度為:600us低電平+1700us高電平(1600更改為1700)
起始碼S電平寬度為:9000us低電平+4500us高電平
連線碼C電平寬度為:600us低電平+20000us高電平
37.9KHz的載波週期是指紅外發射二極體的發光頻率為37.9KHz。
由於任何物體都會發射紅外線,所以紅外通訊需要抗干擾,紅外接收頭被調整為只接收發光頻率為37.9KHz左右的紅外光。
實際上就是37.9KHz的PWM驅動紅外管發射,並且其有效電平佔比為25%~33%。如果紅外發射管是高電平發光,那麼高電平就是有效電平。
紅外二極體被37.9KHz,有效電平佔比為30%的PWM驅動發光,這時候被紅外接收頭接收到,紅外接收頭就會發出低電平。沒收到訊號就會發高電平訊號。
訊號組成:起始訊號+35位資料+連線訊號+32位資料+結束訊號。結束訊號和連線訊號一樣
每一個位元組都是倒序傳送的,例如制熱,開,自動風速。那麼第一位元組資料被紅外接收頭接收到的訊號依次是00110000,但是制熱模式是4,是100,實際在位元組裡的排列為00001100,所以倒序傳送可解決該問題。
我用的是stm32,使用定時器3產生37.9KHz的PWM。
高電平為有效電平
TIM_SetCompare2(TIM3,570);//傳送低電平訊號。高電平佔比:1900x30%=570
TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<900); //等待9000us
TIM_SetCompare2(TIM3,0);//傳送高電平訊號。紅外二極體不發光
TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<450);//等待4500us
//PWM部分程式碼
TIM_TimeBaseInitStructure.TIM_Period = 1900-1; //37.9khz
TIM_TimeBaseInitStructure.TIM_Prescaler = 1-1; //不分頻
TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;//設定時鐘分割:TDTS = Tck_tim
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計數模式
TIM_TimeBaseInit(TIM3, & TIM_TimeBaseInitStructure);
空調碼的計算與傳送
u8 fsc=0;
u8 fsdat[5];//前35位
u8 fsdat2[4];//後32位
//mode 0~4,run 0~1,wind 0~3,wod wlr 0~1,wd 0~14
void Airc(u8 mode,u8 run,u8 wind,u8 wod,u8 wlr,u8 wd)
{
u8 i;
fsdat[0]=wind<<4|run<<3|mode+0x40;//風速,開關和模式
fsdat[1]=wd; //溫度
fsdat[2]=0xa0;
fsdat[3]=0x50;
fsdat[4]=0x02;
fsdat2[0]=wod|wlr<<4;//上下左右掃風
fsdat2[1]=0x20;
fsdat2[2]=0;
fsdat2[3]=((mode-1)+wd+5+wod-8+run*8)<<4;//校驗碼
printf("Start run:%d mode:%d wd:%d wind:%d wod:%d wlr:%d\n",run,mode,wd+16,wind,wod,wlr);//串列埠傳送需傳送的紅外碼
for(i=0;i<35;i++)
{
if(i%8==0)printf("\n");
printf("%d ",(fsdat[i/8]>>i%8)&0x01);
}
for(i=0;i<32;i++)
{
if(i%8==0)printf("\n");
printf("%d ",(fsdat2[i/8]>>i%8)&0x01);
}
//起始碼
TIM_SetCompare2(TIM3,570);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<900);
TIM_SetCompare2(TIM3,0);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<450);
for(i=0;i<35;i++)
{
TIM_SetCompare2(TIM3,570);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<60);
TIM_SetCompare2(TIM3,0);TIM_SetCounter(TIM2, 0);
if(((fsdat[i/8]>>i%8)&0x01)==0){while(TIM_GetCounter(TIM2)<60);}
else {while(TIM_GetCounter(TIM2)<170);}
}
//連線碼
TIM_SetCompare2(TIM3,570);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<60);
TIM_SetCompare2(TIM3,0);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<2000);
for(i=0;i<32;i++)
{
TIM_SetCompare2(TIM3,570);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<60);
TIM_SetCompare2(TIM3,0);TIM_SetCounter(TIM2, 0);
if(((fsdat2[i/8]>>i%8)&0x01)==0){while(TIM_GetCounter(TIM2)<60);}
else {while(TIM_GetCounter(TIM2)<170);}
}
TIM_SetCompare2(TIM3,570);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<60);
TIM_SetCompare2(TIM3,0);TIM_SetCounter(TIM2, 0);while(TIM_GetCounter(TIM2)<2000);
}
就是這樣
相關文章
- 榮耀V20支援紅外遙控嗎?榮耀V20手機紅外遙控遙控空調的方法
- C51微控制器——紅外遙控 驅動程式
- 微控制器學習(十)紅外遙控與外部中斷
- stm32與紅外遙控器(NEC協議)協議
- 華為手機怎麼控制空調開關?華為手機遙控空調的操作
- 小米8 SE支援NFC功能嗎?小米8 SE支援紅外遙控嗎?
- 幾種不同資料採集的概念:遙測、遙控、遙信、遙調、遙視、遙感
- 紅米Note7支援NFC和紅外遙控功能嗎?紅米Note7刷公交地鐵的方法
- 小米MIX3支不支援紅外人臉識別,小米mix3支援紅外遙控功能嗎?
- 《暖通空調與熱泵》:2023年格力中央空調市場佔有率穩居第一
- 基於微控制器的無線語音遙控智慧車設計
- 格力空調全國各點售後服務電話/官方統一24小時格力客服熱線號碼
- (未完)STM32硬體開發——智慧小車(超聲波避障 紅外循跡 藍芽遙控)藍芽
- 格力空調全國各點售後服務熱線電話/24小時格力官方統一客服熱線號碼
- 情趣震動遙控智慧情趣解決方案/手機連線遠端遙控
- 格力電器將兌現分紅承諾:董明珠分紅超2600萬!
- 51微控制器紅外接收
- 基於微控制器的紅外電子密碼鎖程式設計思路密碼程式設計
- 戶外怎麼安裝可以遠端遙控的智慧斷路器呢?
- 紅巨星調色外掛套裝:Magic Bullet Suite for MacUIMac
- Magic Bullet Suite Mac(紅巨人調色降噪外掛集)UIMac
- 紅巨星調色外掛套裝:Magic Bullet Suite 16 for MacUIMac
- 電視遙控器失靈原因和解決辦法 電視遙控器壞了怎麼辦?
- 機房空調比普通空調好在哪
- 暖通空調節能監控物聯網解決方案
- 基於各種感測器的空調系統監控
- Red Giant Magic Bullet Suite for Mac(紅巨人調色降噪外掛合集)UIMac
- 格力入局的數控機床,掌握“核心科技”有多難?
- J20航模遙控器開源專案系列教程(六)亞克力外殼製作
- 格力,有些不妙
- 小米米家空調發布:0.1℃細膩溫控 僅售2199元!
- Magic Bullet Suite for Mac(紅巨人調色降噪外掛合集)2024.0.1啟用版UIMac
- 紅巨人視訊後期調色降噪外掛Red Giant Magic Bullet SuiteUI
- 韓餐:遙控器無法控制電動門
- 使用C#實現一個PPT遙控器C#
- 紅巨人調色looks調色外掛:Red Giant Magic Bullet Looks啟用序列號+完整安裝教程
- 空調控制器
- 3.4格力