尹序臻,吳明煌,陳方斯,林佳萍
(廈門理工學(xué)院電氣工程與自動(dòng)化學(xué)院,福建 廈門 361024)
隨著電子技術(shù)的快速發(fā)展,智能手機(jī)、平板電腦等一些電子產(chǎn)品在不斷地更新?lián)Q代,但是,相應(yīng)電子產(chǎn)品的電池電量有限,各種電子產(chǎn)品有線充電接頭不兼容又給人們的使用帶來了不便。無線充電具有使用方便、造型美觀等優(yōu)點(diǎn),因而受到人們廣泛的關(guān)注,但是市面上現(xiàn)有的無線充電產(chǎn)品主要給單個(gè)便攜式電子設(shè)備進(jìn)行充電。相對(duì)于市面上的無線充電產(chǎn)品,本設(shè)計(jì)可實(shí)現(xiàn)對(duì)多臺(tái)手機(jī)同時(shí)充電,避免了凌亂充電線的困擾;同時(shí)充電有效區(qū)域更大,讓手機(jī)充電擺放位置不受限制;此外本設(shè)計(jì)具有嵌入桌面的功能,方便且美觀。兼容性決定手機(jī)無線充電技術(shù)的發(fā)展前景,Qi協(xié)議無線充電標(biāo)準(zhǔn)旨在保證不同品牌間的兼容性,相配套的接收端使得無線充電不再受手機(jī)型號(hào)限制[1]。
系統(tǒng)整體硬件結(jié)構(gòu)如圖1所示。該裝置主要由51單片機(jī)、開關(guān)電源、應(yīng)變式壓力傳感器、電流傳感器和LED背光燈條組成。
圖1 系統(tǒng)硬件結(jié)構(gòu)
本設(shè)計(jì)的整體思路為:將接入的220V交流電壓通過變電器變壓整流輸出12V直流電壓為系統(tǒng)進(jìn)行供電,各模塊間通過51單片機(jī)進(jìn)行協(xié)調(diào)控制。
本設(shè)計(jì)具有以下3大功能:
⑴實(shí)現(xiàn)對(duì)4部手機(jī)進(jìn)行無線充電:文章所提出的方法可根據(jù)需求擴(kuò)展到更多手機(jī)的無線充電。
⑵識(shí)別手機(jī)并執(zhí)行充電操作:移開或電池充滿情況下自動(dòng)進(jìn)入待機(jī)狀態(tài),從而降低功耗。
⑶實(shí)現(xiàn)過充、過流保護(hù)并顯示充電狀態(tài):當(dāng)手機(jī)充滿后,關(guān)閉充電器的充電電路實(shí)現(xiàn)保護(hù);如果用戶誤把金屬放置在充電面板上或手機(jī)電池?fù)p壞,關(guān)閉充電電路并發(fā)出警報(bào);手機(jī)的充電狀態(tài)有相應(yīng)的指示燈閃爍提示用戶。
目前,利用電磁感應(yīng)原理實(shí)現(xiàn)電能的無線傳輸主要分為3類:感應(yīng)耦合方式、電磁諧振方式和微波輻射方式[2]。本設(shè)計(jì)采用感應(yīng)耦合方式的電磁感應(yīng)原理,由電源管理模塊將220 V交流電通過變電器降壓整流輸出12 V的直流電用于驅(qū)動(dòng)各模塊,使用MOS管對(duì)半橋逆變電路控制關(guān)斷,同時(shí)提高信號(hào)功率[3]。
無線充電發(fā)射端由5 V直流電壓供電,由51單片機(jī)產(chǎn)生PWM控制信號(hào)控制逆變電路的 MOS管的導(dǎo)通和截止,驅(qū)動(dòng)芯片
TPS28225內(nèi)置14 ns的自適應(yīng)死區(qū)時(shí)間,使用逆變電路使得上下2個(gè)橋臂的MOS管不能同時(shí)導(dǎo)通。通過功率驅(qū)動(dòng)電路將功率放大后傳送到高頻全橋逆變模塊,然后驅(qū)動(dòng)發(fā)射線圈陣列。接收端接收電能后通過整流、濾波和電壓調(diào)節(jié)向負(fù)載端供電?;玖鞒倘鐖D2。
圖2 充電模塊基本流程
在手機(jī)識(shí)別方面是基于壓力檢測機(jī)制。本設(shè)計(jì)采用壓力傳感器YTC-133定時(shí)掃描的方式檢測重量變化,通過定時(shí)判斷重量變化差值判斷負(fù)載是否存在以及是否有新的手機(jī)存在,相對(duì)于使用負(fù)載檢測技術(shù)[4],這種控制方法更簡單,且功耗更低。YTC-133采用16位的讀取儲(chǔ)存方式,單片機(jī)發(fā)送信號(hào),YTC-133將檢測的數(shù)據(jù)通過自身的AD模數(shù)轉(zhuǎn)換生成16位2進(jìn)制數(shù)字量傳給單片機(jī)。充電器面板上內(nèi)置壓力傳感器,若有物體放在充電器面板上時(shí),壓力傳感器產(chǎn)生信號(hào),單片機(jī)檢測到信號(hào)后進(jìn)行判斷,當(dāng)質(zhì)量大于150 g時(shí)輸出PWM到發(fā)射電路,進(jìn)入充電模式。啟動(dòng)4個(gè)發(fā)射電路,利用這個(gè)原理我們可以讓無線充電器不用時(shí)刻保持在工作狀態(tài),從而達(dá)到節(jié)能減耗的目的。
圖3 負(fù)載檢測流程
為了實(shí)現(xiàn)過充、過流保護(hù),我們采用電流傳感器HTC-LTS。充電過程中單片機(jī)通過電流傳感器實(shí)時(shí)監(jiān)控電流變化。
當(dāng)4個(gè)發(fā)射電路啟動(dòng)時(shí)通過電流傳感器掃描線圈以確定手機(jī)放置位置,即確定相對(duì)應(yīng)發(fā)射電路電流是否大于設(shè)定的閾值(1.2 A),根據(jù)手機(jī)位置信息保留對(duì)應(yīng)的發(fā)射電路,給手機(jī)供電。當(dāng)手機(jī)充滿,電流傳感器檢測到發(fā)射電路電流減小,即發(fā)射電路電流小于設(shè)定閾值(1.2 A),則單片機(jī)關(guān)閉發(fā)射電路,停止供電進(jìn)入待機(jī)模式。在過流保護(hù)方面,我們通過設(shè)定一個(gè)安全電流上限值,當(dāng)充電電流超過安全上限(1.5 A),則停止充電。在充電過程中我們采用LED背光燈條顯示充電狀態(tài),共有以下狀態(tài):
⑴ 進(jìn)行電路檢測時(shí)4個(gè)藍(lán)色呼吸燈點(diǎn)亮。
⑵ 檢測到充電線路時(shí)將當(dāng)前線路的紅色呼吸燈點(diǎn)亮,熄滅所有藍(lán)色呼吸燈。
⑶ 當(dāng)電流充滿時(shí),點(diǎn)亮當(dāng)前線路的藍(lán)色呼吸燈。
這里通過一個(gè)按鈕控制綠色背光燈條是否工作,可根據(jù)用戶喜好進(jìn)行選擇。
軟件設(shè)計(jì)如下圖4所示,當(dāng)壓力傳感器檢測到物體后,51單片機(jī)啟動(dòng)所有發(fā)射電路。電流傳感器采集發(fā)射端電流值,首先判斷電流值是否超出安全上限,如果超過則代表手機(jī)損壞或誤放金屬類物體,單片機(jī)關(guān)閉所有發(fā)射電路。然后判斷電流值是否低于設(shè)定閾值,如果低于設(shè)定閾值則代表手機(jī)已經(jīng)充滿或是由于其他充電位的干擾而產(chǎn)生的干擾電流,單片機(jī)關(guān)閉相對(duì)應(yīng)的發(fā)射電路。具體的程序見附件。
圖4 軟件流程
相對(duì)于市面上的無線充電產(chǎn)品,本設(shè)計(jì)可實(shí)現(xiàn)對(duì)多臺(tái)手機(jī)同時(shí)充電的功能,讓用戶再也不用被凌亂的充電線所困擾。充電有效區(qū)域更大,讓手機(jī)充電擺放位置不受限制。相配套的接收端使得無線充電不再受手機(jī)型號(hào)限制。此外,本裝置設(shè)計(jì)具有嵌入桌面的功能,方便且美觀。
附件
壓力傳感程序
#include <reg52.h>
#include <intrins.h>
//函數(shù)或者變量聲明
void Delay_ms(unsigned int n);
void Get_Weight();
unsigned long HX711_Read(void);
sbit HX711_DOUT=P2^1;
sbit HX711_SCK=P2^0;
unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0;
long Weight_Shiwu = 0;
unsigned char flag = 0;
bit Flag_ERROR = 0;
sbit error= P1^0;
#define GapValue 400
void main()
{
Delay_ms(1000); //延時(shí)1s,等待
傳感器穩(wěn)定
Weight_Maopi = HX711_Read();
//稱初始重量
while(1)
{
Get_Weight(); //稱重
if(Flag_ERROR == 1)
{
error=0;
}
else
{
error=1;
}
}
}
void Get_Weight()
{
Weight_Shiwu = HX711_Read();
Weight_Shiwu = Weight_Shiwu -
Weight_Maopi; //獲取凈重
if(Weight_Shiwu > 0)
{
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/GapValue);
//計(jì)算實(shí)物的實(shí)際重量
if(Weight_Shiwu > 150)
//超重報(bào)警 MX5 170g
{
Flag_ERROR = 1;
}
else
{
Flag_ERROR = 0;
}
}
else
{
Weight_Shiwu = 0;
}
}
unsigned long HX711_Read(void)
//增益128
{
unsigned long count;
unsigned char i;
HX711_SCK=0;
count=0;
while(HX711_DOUT);
for(i=0;i<24;i++)
{
HX711_SCK=1;
count=count<<1;
HX711_SCK=0;
if(HX711_DOUT)
count++;
}
HX711_SCK=1;
count=count^0x800000;
//第25個(gè)脈沖下降沿來時(shí),轉(zhuǎn)換數(shù)據(jù)
HX711_SCK=0;
return(count);
}
void Delay_ms(unsigned int n)
//12M 1ms
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}