本帖最后由 橙子不灑脫 于 2017-5-16 16:04 編輯
模電&數(shù)電——卡通臺(tái)燈復(fù)活記
大學(xué)生活離不開宿舍生活,而宿舍生活又離不開屬于自己的照明設(shè)備。有了它,才可以在熄燈之后的宿舍里繼續(xù)如魚得水。在剛進(jìn)入大學(xué)校園的時(shí)候,母親就給我買了一個(gè)卡通臺(tái)燈,外觀如圖1所示。
圖1 臺(tái)燈外觀.jpg (316.93 KB, 下載次數(shù): 128)
下載附件
2017-5-8 16:01 上傳
圖1 臺(tái)燈外觀 此款臺(tái)燈的照明部分由21個(gè)草帽型白發(fā)白高亮LED并聯(lián)構(gòu)成,亮度勉強(qiáng)但是沒有亮度調(diào)整功能,在不同情況下亮度一致有些不盡人意。內(nèi)置鋰電池以及220v直插式充電電路以及充電時(shí)亮起的指示燈。燈的亮滅靠小人腹部的自鎖開關(guān)控制。常有這樣的情況發(fā)生:有光線上床方便,但爬到上鋪卻才想起沒有關(guān)臺(tái)燈,只好下床關(guān)燈在摸黑上床。雖有種種不便,使用久了反倒也習(xí)慣了�?墒蔷驮谇安痪玫囊淮纬潆姇r(shí),插頭插入插座的瞬間外殼內(nèi)發(fā)出“呲啦”聲響,接著LED板短暫的發(fā)出異常亮度接著熄滅。見狀我迅速將其拔出插座,嘗試著按下開關(guān)后LED沒有正常亮起,再次插入插座后充電指示燈也沒有正常亮起,疑似損壞。拆開外殼取出電路板以及電池,發(fā)現(xiàn)充電電路為容阻降壓電路,實(shí)物如圖2所示。
圖2 降壓板實(shí)物.jpg (365.57 KB, 下載次數(shù): 115)
下載附件
2017-5-8 16:01 上傳
圖2 降壓板實(shí)物
容阻降壓電路利用電容在一定的交流信號(hào)頻率下產(chǎn)生的容抗來限制最大工作電流,通常用于低成本取得非隔離的小電流電源,電路原理如圖3所示。
圖3 容阻降壓電路.jpg (11.43 KB, 下載次數(shù): 119)
下載附件
2017-5-8 12:22 上傳
圖3 容阻降壓電路
它的輸出電壓通�?稍趲追饺龓资瑢�(shí)際數(shù)值取決于所使用穩(wěn)壓管的參數(shù),所能提供的電流大小正比于限流電容容量。但是仔細(xì)分析此臺(tái)燈電路,只包括用于整流的四個(gè)二極管,降壓作用的無極性電容,以及并聯(lián)在電容兩端,用于拔掉插頭后對(duì)電容盡快放電的放電電阻,卻并沒有發(fā)現(xiàn)穩(wěn)壓管的蹤影。如果輸入端電壓高于220v,后端電壓也會(huì)隨之升高,可能會(huì)損壞后級(jí)電路。與此同時(shí),插入插座瞬間有浪涌電壓產(chǎn)生,也可能會(huì)損壞后級(jí)電路,所以應(yīng)該加入浪涌抑制電路,但此電路也沒有包括,由此判斷電壓是損壞電路的主要元兇。隨即拆下LED板,發(fā)現(xiàn)所有并聯(lián)在一起的LED全部燒毀。到此,我打消了維修的欲望,打算將它丟掉重買自認(rèn)倒霉。就在我將各部分殘骸聚攏時(shí),我看到了桌子上的一枚三腳管,拿起定神一看,這不是老師前幾天才講過的三端穩(wěn)壓芯片7805么,如果用它來作為輸出穩(wěn)壓,效果會(huì)好很多,增加調(diào)光以及無線控制功能也不是不可能。這么想著,我打開了我的元件箱……一陣頭腦風(fēng)暴后,我發(fā)現(xiàn)我的臺(tái)燈不但有救,還可以來個(gè)華麗大升級(jí)。
先來說說無線控制的實(shí)現(xiàn)。無線傳輸方式有很多種,我根據(jù)它們的主要特點(diǎn)對(duì)比列出了表格,見圖4。
圖4 常用無線通訊技術(shù)的對(duì)比.png (62.77 KB, 下載次數(shù): 117)
下載附件
2017-5-8 12:22 上傳
圖4 常用無線通訊技術(shù)的對(duì)比
由表可以看出,藍(lán)牙無線通訊是DIY的不二選擇。價(jià)格對(duì)比其他幾種設(shè)備相對(duì)低廉,技術(shù)成熟且資料豐富。另一方面,藍(lán)牙技術(shù)最初由電信巨頭愛立信公司于1994年創(chuàng)制,當(dāng)時(shí)是作為RS232數(shù)據(jù)線的替代方案,所以藍(lán)牙天生跟串口有著密切的關(guān)系。配對(duì)以后的藍(lán)牙串口模塊可以當(dāng)作半雙工串口使用,無需了解任何藍(lán)牙協(xié)議,但僅支持8位數(shù)據(jù)位、1位停止位、無奇偶校驗(yàn)的通信格式,不支持其他格式。不過這也是最常用的通信格式�?梢哉f只要熟悉串口通信,就可以使用藍(lán)牙串口模塊實(shí)現(xiàn)無線控制了。順帶一提,藍(lán)牙模塊分為主機(jī)模塊、從機(jī)模塊、主從一體模塊,主機(jī)模塊只能配對(duì)從機(jī)模塊,主機(jī)模塊之間不能配對(duì)連接,主機(jī)模塊也不能跟帶藍(lán)牙的電腦或者手機(jī)等其他藍(lán)牙設(shè)備配對(duì)。從機(jī)模塊可以跟帶藍(lán)牙的電腦或者帶藍(lán)牙的手機(jī)配對(duì)使用,從機(jī)模塊之間也不能連接。因?yàn)檫@里僅僅要用手機(jī)的藍(lán)牙連接臺(tái)燈,所以選擇從機(jī)模塊。我選用的模塊型號(hào)為HC-06,外觀如圖5所示。
圖5 藍(lán)牙模塊外觀.JPG (521.3 KB, 下載次數(shù): 124)
下載附件
2017-5-8 12:22 上傳
圖5 藍(lán)牙模塊外觀
模塊TXD連接到單片機(jī)RXD,RXD連接到單片機(jī)TXD,接著就像串口一樣使用了。其中STA為L(zhǎng)ED狀態(tài)引出腳,單片機(jī)可通過STA引腳狀態(tài)判斷藍(lán)牙是否已經(jīng)連接,LED閃爍表示沒有連接,常亮表示藍(lán)牙已連接并打開了端口。EN為使能腳,懸空或接高時(shí)使能,使能就是當(dāng)被外部拉低時(shí)關(guān)閉模塊電源以節(jié)省電能(電流消耗<20uA),這兩個(gè)引腳這里用不到,只做固定作用。
接下來說供電方式,我打算去掉鋰電池改為直插電源的形式,正在學(xué)的模電書告訴了我怎么做,如圖6。
圖6 7805典型電路.png (56.85 KB, 下載次數(shù): 151)
下載附件
2017-5-8 12:22 上傳
圖6 7805典型電路 這么經(jīng)典的電路,自然不用多說什么,就是在7805輸出端上串聯(lián)了一個(gè)自鎖開關(guān)與臺(tái)燈本身的開關(guān)相呼應(yīng),并且在輸出端與地之間并聯(lián)一個(gè)LED跟電阻作為電源指示燈,給原來的充電指示燈一個(gè)新的任務(wù)。由于功率不大,7805的溫度并不高,所以未加裝散熱片。為了迎合臺(tái)燈外殼的形狀以便安裝,我把洞洞板裁成條形,并以條形排列焊接。為方便調(diào)試,接口處使用二端接線柱連線,焊接的實(shí)物如圖7所示。
圖7 7805焊接實(shí)物圖.jpg (340.47 KB, 下載次數(shù): 105)
下載附件
2017-5-8 16:01 上傳
圖7 7805焊接實(shí)物圖 外殼內(nèi)唯一有可能安裝變壓器的空間就是原本安裝鋰電池的位置,我找遍了手頭上所有的變壓器,最后終于在一個(gè)小音響套件里找到了一個(gè)寬度跟鋰電池差不多的9V變壓器,安裝效果如圖8所示。
圖8 安裝變壓器.jpg (376 KB, 下載次數(shù): 120)
下載附件
2017-5-8 16:01 上傳
圖8 安裝變壓器 變壓器的220V輸入線從原本插頭的位置穿過,用熱熔膠固定,裸露的線纜全部用熱縮管保護(hù)。
接下來到了整個(gè)電路的核心控制單元了,是誰解讀藍(lán)牙模塊不斷送來的枯燥信號(hào)?又是誰日夜恪盡職守為我們關(guān)閉或開啟臺(tái)燈?沒錯(cuò)!它就是那大名鼎鼎的單片機(jī)。今天我們請(qǐng)來的這位單片機(jī)先生是STC公司旗下的12C4052AD。別看它身材嬌小,干起活來可絕不馬虎,串口中斷的本領(lǐng)可以讓它不錯(cuò)過藍(lán)牙模塊傳來的每一個(gè)消息,PWM(脈寬調(diào)制)的絕活可以使臺(tái)燈不僅具有開或者關(guān)兩種狀態(tài),還可以根據(jù)我們的需要調(diào)整出不同的亮度。脈寬調(diào)制可以理解為:在一個(gè)固定周期內(nèi),產(chǎn)生時(shí)長(zhǎng)不同的高低電平,通過不同時(shí)長(zhǎng)比例的組合,在原本兩種狀態(tài)中間構(gòu)建出一個(gè)線性變化,然后取出你要的比例值,如圖9。
圖9 圖解PWM.jpg (8.97 KB, 下載次數(shù): 143)
下載附件
2017-5-8 12:22 上傳
圖9 圖解PWM 通過PWM功能,我們就可以通過單片機(jī)控制臺(tái)燈的亮度。天生愛偷懶的我好想直接把LED燈板直接連在單片機(jī)的PWM引腳上,但是這樣做會(huì)要了單片機(jī)先生的命�。∫�?yàn)椴还苁抢娏鞯姆绞竭€是灌電流的方式驅(qū)動(dòng)這21個(gè)LED都是強(qiáng)人所難,就算單片機(jī)先生拿出強(qiáng)推挽模式的雄心還是有點(diǎn)牽強(qiáng)了,所以我們找一個(gè)三極管來幫幫它。這款單片機(jī)有兩個(gè)固定的PWM引腳,隨便選擇一個(gè)用限流電阻接到三極管的基極,就可以控制LED燈板的亮滅以及亮度啦。不過三極管控制的是7805輸出的5v電壓,為防止5v的電壓燒毀LED燈板,在三極管的發(fā)射極串聯(lián)了一個(gè)正偏的二極管,它會(huì)帶來0.7v的壓降,再加上電路中別處的壓降,LED就很安全了。同時(shí)電路中可能會(huì)存在雜波造成各種未知的影響,所以我們?cè)陔娐分胁⒙?lián)一個(gè)104濾波電容。我想讓藍(lán)牙模塊可以隨意插拔方便調(diào)試,所以用排插跟控制板連接,焊接完成的電路如圖10所示。
圖10 單片機(jī)焊接實(shí)物圖.jpg (423.93 KB, 下載次數(shù): 133)
下載附件
2017-5-8 16:01 上傳
圖10 單片機(jī)焊接實(shí)物圖 到此,所有的電路部分都已經(jīng)結(jié)束,完整的電路圖如圖11所示
圖11 完整電路圖.png (148.83 KB, 下載次數(shù): 145)
下載附件
2017-5-8 12:22 上傳
圖11 完整電路圖 其中D3就代表LED燈板,特別說明的是,因?yàn)橛玫剿{(lán)牙串口通訊,所以晶振頻率是11.0592MHz,用12.000MHz的代替會(huì)出錯(cuò)。按照電路的大小對(duì)臺(tái)燈外殼進(jìn)行了最后的修整,最終的效果如圖12所示。
圖12 裝入外殼.jpg (486.58 KB, 下載次數(shù): 127)
下載附件
2017-5-8 16:01 上傳
圖12 裝入外殼 最后來說說軟件部分跟手機(jī)app的部分。程序的主要用處就是接收藍(lán)牙的數(shù)據(jù),然后設(shè)置對(duì)應(yīng)的PWM值。首先初始化串口和PWM:
void UART_PWM_init (void){
EA = 1; //允許總中斷
ES = 1; //允許UART串口的中斷
TMOD = 0x20; //定時(shí)器T/C1工作方式2
SCON = 0x50; //串口工作方式1,允許串口接收
TH1 = 0xFD; //定時(shí)器初值高8位設(shè)置
TL1 = 0xFD; //定時(shí)器初值低8位設(shè)置
TR1 = 1; //定時(shí)器啟動(dòng)
/************/
CMOD=0x02; //設(shè)置PCA定時(shí)器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0設(shè)置PCA工作方式為PWM方式
CCAP0L=0x00;//設(shè)置PWM0初始值與CCAP0H相同
CCAP0H=0x00;// PWM0初始時(shí)為0
CR=1; //啟動(dòng)PCA定時(shí)器
}
當(dāng)串口中斷觸發(fā)時(shí),根據(jù)接收的數(shù)據(jù)設(shè)置對(duì)應(yīng)的PWM值:
void UART_R (void) interrupt4 using 1{ //切換寄存器組到1
unsigned char UART_data; //定義串口接收數(shù)據(jù)變量
RI = 0; //令接收中斷標(biāo)志位為0(軟件清零)
UART_data = SBUF; //將接收到的數(shù)據(jù)送入變量 UART_data
if(UART_data == 'U'){if(LD !=255){Ch = 1;LD = LD + 51; }}//串口接收到大寫字母U,增加亮度,51*5=255 即5級(jí)調(diào)光
if(UART_data == 'D'){if(LD !=0){Ch = 1;LD = LD - 51; }} //串口接收到大寫字母D,減少亮度
if(UART_data == 'F'){if(LD !=0){Ch = 1;LD = 0; }} //串口接收到大寫字母F,改變亮度為0 即關(guān)燈
if(UART_data == 'O'){if(LD !=255){Ch = 1;LD = 255; }} //串口接收到大寫字母O,改變亮度為255 即開燈
}
其中LD即為要設(shè)置的PWM值,范圍0—255,0為關(guān)燈,255為最亮,現(xiàn)在還需要一個(gè)PWM設(shè)置程序:
void PWM0_set (unsigned chara){
CCAP0L= a; //設(shè)置值直接寫入CCAP0L
CCAP0H=a; //設(shè)置值直接寫入CCAP0H
}
各老大已就位,但群龍無主,依然無法運(yùn)作,這時(shí)主程序出來維持秩序了:
void main (void){
LD = 153;//初始亮度
Ch = 0;
UART_PWM_init();//初始化
while(1){
if (CH == 1){//產(chǎn)生變化,送入新的pwm值
PWM0_set(LD);Ch = 0;} //設(shè)置PWM占空比
}
}
單片機(jī)這邊的程序就搞定了,如果你懶得自己寫,我會(huì)在下面上傳源碼。至于手機(jī)的app呢,不需要自己寫,因?yàn)橛泻芏喱F(xiàn)成的藍(lán)牙串口的app可供下載,我用的是一款名為“藍(lán)牙串口”的軟件,圖標(biāo)如圖13所示。
圖13 藍(lán)牙串口圖標(biāo).png (46.25 KB, 下載次數(shù): 142)
下載附件
2017-5-8 12:22 上傳
圖13 藍(lán)牙串口圖標(biāo) 打開app后界面如圖14所示,用手在屏幕上從右向左滑動(dòng)2次,就能看到如圖15的界面。
圖14 進(jìn)入后的界面.png (25.96 KB, 下載次數(shù): 140)
下載附件
2017-5-8 12:22 上傳
圖15 需要用的界面.png (77.25 KB, 下載次數(shù): 155)
下載附件
2017-5-8 12:22 上傳
圖14 進(jìn)入后的界面 圖15 需要用的界面 可能你看到的沒有圖片上的這些字,沒關(guān)系,這些是我自己設(shè)置的,
長(zhǎng)按任意按鈕,會(huì)彈出這樣的設(shè)置窗口,設(shè)置的方式如圖16所示。
圖16 設(shè)置方式.png (107.56 KB, 下載次數(shù): 131)
下載附件
2017-5-8 12:22 上傳
圖16 設(shè)置方式
按照單片機(jī)程序的規(guī)定,發(fā)送字符U是亮度加,字符D是亮度減,字符O是開燈,字符F是關(guān)燈。按照這樣設(shè)置好,程序會(huì)自動(dòng)保存,你的藍(lán)牙臺(tái)燈遙控就做好了。
做好了這一切,卻只是個(gè)開始,如果你愿意開動(dòng)腦筋,會(huì)發(fā)現(xiàn)這套系統(tǒng)可以控制很多東西。心動(dòng)不如行動(dòng),讓身邊的東西都互聯(lián)起來,親身感受一下物聯(lián)網(wǎng)時(shí)代的魅力吧!
0.png (59.55 KB, 下載次數(shù): 123)
下載附件
2017-5-8 15:59 上傳
完整源程序下載:
藍(lán)牙臺(tái)燈.zip
(13.6 KB, 下載次數(shù): 97)
2017-5-8 12:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
格式工廠99545_看圖王.png (196.92 KB, 下載次數(shù): 151)
下載附件
2017-5-16 16:04 上傳
小橙出品,必屬精品!
請(qǐng)大家多多支持宅曉橙
|