久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12335|回復: 9
打印 上一主題 下一主題
收起左側

基于STC單片機的藍牙臺燈制作 帶源碼 原理圖

  [復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 橙子不灑脫 于 2017-5-16 16:04 編輯

模電&數電——卡通臺燈復活記

       大學生活離不開宿舍生活,而宿舍生活又離不開屬于自己的照明設備。有了它,才可以在熄燈之后的宿舍里繼續如魚得水。在剛進入大學校園的時候,母親就給我買了一個卡通臺燈,外觀如圖1所示。
                                                   
圖1 臺燈外觀
此款臺燈的照明部分由21個草帽型白發白高亮LED并聯構成,亮度勉強但是沒有亮度調整功能,在不同情況下亮度一致有些不盡人意。內置鋰電池以及220v直插式充電電路以及充電時亮起的指示燈。燈的亮滅靠小人腹部的自鎖開關控制。常有這樣的情況發生:有光線上床方便,但爬到上鋪卻才想起沒有關臺燈,只好下床關燈在摸黑上床。雖有種種不便,使用久了反倒也習慣了。可是就在前不久的一次充電時,插頭插入插座的瞬間外殼內發出“呲啦”聲響,接著LED板短暫的發出異常亮度接著熄滅。見狀我迅速將其拔出插座,嘗試著按下開關后LED沒有正常亮起,再次插入插座后充電指示燈也沒有正常亮起,疑似損壞。拆開外殼取出電路板以及電池,發現充電電路為容阻降壓電路,實物如圖2所示。


圖2 降壓板實物     
容阻降壓電路利用電容在一定的交流信號頻率下產生的容抗來限制最大工作電流,通常用于低成本取得非隔離的小電流電源,電路原理如圖3所示。



圖3 容阻降壓電路     
它的輸出電壓通常可在幾伏到三幾十伏,實際數值取決于所使用穩壓管的參數,所能提供的電流大小正比于限流電容容量。但是仔細分析此臺燈電路,只包括用于整流的四個二極管,降壓作用的無極性電容,以及并聯在電容兩端,用于拔掉插頭后對電容盡快放電的放電電阻,卻并沒有發現穩壓管的蹤影。如果輸入端電壓高于220v,后端電壓也會隨之升高,可能會損壞后級電路。與此同時,插入插座瞬間有浪涌電壓產生,也可能會損壞后級電路,所以應該加入浪涌抑制電路,但此電路也沒有包括,由此判斷電壓是損壞電路的主要元兇。隨即拆下LED板,發現所有并聯在一起的LED全部燒毀。到此,我打消了維修的欲望,打算將它丟掉重買自認倒霉。就在我將各部分殘骸聚攏時,我看到了桌子上的一枚三腳管,拿起定神一看,這不是老師前幾天才講過的三端穩壓芯片7805么,如果用它來作為輸出穩壓,效果會好很多,增加調光以及無線控制功能也不是不可能。這么想著,我打開了我的元件箱……一陣頭腦風暴后,我發現我的臺燈不但有救,還可以來個華麗大升級。
先來說說無線控制的實現。無線傳輸方式有很多種,我根據它們的主要特點對比列出了表格,見圖4。

圖4 常用無線通訊技術的對比     
                                                      
由表可以看出,藍牙無線通訊是DIY的不二選擇。價格對比其他幾種設備相對低廉,技術成熟且資料豐富。另一方面,藍牙技術最初由電信巨頭愛立信公司于1994年創制,當時是作為RS232數據線的替代方案,所以藍牙天生跟串口有著密切的關系。配對以后的藍牙串口模塊可以當作半雙工串口使用,無需了解任何藍牙協議,但僅支持8位數據位、1位停止位、無奇偶校驗的通信格式,不支持其他格式。不過這也是最常用的通信格式。可以說只要熟悉串口通信,就可以使用藍牙串口模塊實現無線控制了。順帶一提,藍牙模塊分為主機模塊、從機模塊、主從一體模塊,主機模塊只能配對從機模塊,主機模塊之間不能配對連接,主機模塊也不能跟帶藍牙的電腦或者手機等其他藍牙設備配對。從機模塊可以跟帶藍牙的電腦或者帶藍牙的手機配對使用,從機模塊之間也不能連接。因為這里僅僅要用手機的藍牙連接臺燈,所以選擇從機模塊。我選用的模塊型號為HC-06,外觀如圖5所示。

圖5 藍牙模塊外觀     
                 
模塊TXD連接到單片機RXD,RXD連接到單片機TXD,接著就像串口一樣使用了。其中STA為LED狀態引出腳,單片機可通過STA引腳狀態判斷藍牙是否已經連接,LED閃爍表示沒有連接,常亮表示藍牙已連接并打開了端口。EN為使能腳,懸空或接高時使能,使能就是當被外部拉低時關閉模塊電源以節省電能(電流消耗<20uA),這兩個引腳這里用不到,只做固定作用。

  接下來說供電方式,我打算去掉鋰電池改為直插電源的形式,正在學的模電書告訴了我怎么做,如圖6。

圖6 7805典型電路
這么經典的電路,自然不用多說什么,就是在7805輸出端上串聯了一個自鎖開關與臺燈本身的開關相呼應,并且在輸出端與地之間并聯一個LED跟電阻作為電源指示燈,給原來的充電指示燈一個新的任務。由于功率不大,7805的溫度并不高,所以未加裝散熱片。為了迎合臺燈外殼的形狀以便安裝,我把洞洞板裁成條形,并以條形排列焊接。為方便調試,接口處使用二端接線柱連線,焊接的實物如圖7所示。
     
圖7 7805焊接實物圖
外殼內唯一有可能安裝變壓器的空間就是原本安裝鋰電池的位置,我找遍了手頭上所有的變壓器,最后終于在一個小音響套件里找到了一個寬度跟鋰電池差不多的9V變壓器,安裝效果如圖8所示。
     
圖8 安裝變壓器
變壓器的220V輸入線從原本插頭的位置穿過,用熱熔膠固定,裸露的線纜全部用熱縮管保護。
接下來到了整個電路的核心控制單元了,是誰解讀藍牙模塊不斷送來的枯燥信號?又是誰日夜恪盡職守為我們關閉或開啟臺燈?沒錯!它就是那大名鼎鼎的單片機。今天我們請來的這位單片機先生是STC公司旗下的12C4052AD。別看它身材嬌小,干起活來可絕不馬虎,串口中斷的本領可以讓它不錯過藍牙模塊傳來的每一個消息,PWM(脈寬調制)的絕活可以使臺燈不僅具有開或者關兩種狀態,還可以根據我們的需要調整出不同的亮度。脈寬調制可以理解為:在一個固定周期內,產生時長不同的高低電平,通過不同時長比例的組合,在原本兩種狀態中間構建出一個線性變化,然后取出你要的比例值,如圖9。


  圖9 圖解PWM
通過PWM功能,我們就可以通過單片機控制臺燈的亮度。天生愛偷懶的我好想直接把LED燈板直接連在單片機的PWM引腳上,但是這樣做會要了單片機先生的命啊!因為不管是拉電流的方式還是灌電流的方式驅動這21個LED都是強人所難,就算單片機先生拿出強推挽模式的雄心還是有點牽強了,所以我們找一個三極管來幫幫它。這款單片機有兩個固定的PWM引腳,隨便選擇一個用限流電阻接到三極管的基極,就可以控制LED燈板的亮滅以及亮度啦。不過三極管控制的是7805輸出的5v電壓,為防止5v的電壓燒毀LED燈板,在三極管的發射極串聯了一個正偏的二極管,它會帶來0.7v的壓降,再加上電路中別處的壓降,LED就很安全了。同時電路中可能會存在雜波造成各種未知的影響,所以我們在電路中并聯一個104濾波電容。我想讓藍牙模塊可以隨意插拔方便調試,所以用排插跟控制板連接,焊接完成的電路如圖10所示。


  圖10 單片機焊接實物圖
到此,所有的電路部分都已經結束,完整的電路圖如圖11所示


圖11 完整電路圖
其中D3就代表LED燈板,特別說明的是,因為用到藍牙串口通訊,所以晶振頻率是11.0592MHz,用12.000MHz的代替會出錯。按照電路的大小對臺燈外殼進行了最后的修整,最終的效果如圖12所示。



圖12 裝入外殼
最后來說說軟件部分跟手機app的部分。程序的主要用處就是接收藍牙的數據,然后設置對應的PWM值。首先初始化串口和PWM:
void UART_PWM_init (void){

     EA = 1; //允許總中斷

     ES = 1; //允許UART串口的中斷


     TMOD = 0x20;  //定時器T/C1工作方式2

     SCON = 0x50;  //串口工作方式1,允許串口接收

     TH1 = 0xFD;   //定時器初值高8位設置

     TL1 = 0xFD;   //定時器初值低8位設置

     TR1 = 1; //定時器啟動  

/************/  

     CMOD=0x02; //設置PCA定時器

     CL=0x00;

     CH=0x00;

     CCAPM0=0x42; //PWM0設置PCA工作方式為PWM方式

     CCAP0L=0x00;//設置PWM0初始值與CCAP0H相同

     CCAP0H=0x00;// PWM0初始時為0

     CR=1; //啟動PCA定時器

}


當串口中斷觸發時,根據接收的數據設置對應的PWM值:
void UART_R (void) interrupt4  using 1{ //切換寄存器組到1
unsigned char UART_data; //定義串口接收數據變量
RI = 0;            //令接收中斷標志位為0(軟件清零)
UART_data = SBUF;  //將接收到的數據送入變量 UART_data
if(UART_data == 'U'){if(LD !=255){Ch = 1;LD = LD + 51; }}//串口接收到大寫字母U,增加亮度,51*5=255 即5級調光
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 即關燈
if(UART_data == 'O'){if(LD !=255){Ch = 1;LD = 255; }}    //串口接收到大寫字母O,改變亮度為255 即開燈
}
其中LD即為要設置的PWM值,范圍0—255,0為關燈,255為最亮,現在還需要一個PWM設置程序:
void PWM0_set (unsigned chara){
     CCAP0L= a; //設置值直接寫入CCAP0L
     CCAP0H=a; //設置值直接寫入CCAP0H
}
各老大已就位,但群龍無主,依然無法運作,這時主程序出來維持秩序了:
void main (void){
     LD = 153;//初始亮度
     Ch = 0;
     UART_PWM_init();//初始化

     while(1){
     if (CH == 1){//產生變化,送入新的pwm值
              PWM0_set(LD);Ch = 0;} //設置PWM占空比
     }
}
  單片機這邊的程序就搞定了,如果你懶得自己寫,我會在下面上傳源碼。至于手機的app呢,不需要自己寫,因為有很多現成的藍牙串口的app可供下載,我用的是一款名為“藍牙串口”的軟件,圖標如圖13所示。
                                             


圖13 藍牙串口圖標
打開app后界面如圖14所示,用手在屏幕上從右向左滑動2次,就能看到如圖15的界面。




    圖14 進入后的界面                圖15 需要用的界面
可能你看到的沒有圖片上的這些字,沒關系,這些是我自己設置的,
長按任意按鈕,會彈出這樣的設置窗口,設置的方式如圖16所示。


16 設置方式

按照單片機程序的規定,發送字符U是亮度加,字符D是亮度減,字符O是開燈,字符F是關燈。按照這樣設置好,程序會自動保存,你的藍牙臺燈遙控就做好了。


    做好了這一切,卻只是個開始,如果你愿意開動腦筋,會發現這套系統可以控制很多東西。心動不如行動,讓身邊的東西都互聯起來,親身感受一下物聯網時代的魅力吧!


完整源程序下載 藍牙臺燈.zip (13.6 KB, 下載次數: 97)


小橙出品,必屬精品!


請大家多多支持宅曉橙




評分

參與人數 3黑幣 +145 收起 理由
2430078927 + 30 贊一個!
h832ea + 15 贊一個!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:136460 發表于 2017-5-10 11:30 | 只看該作者
資料真不錯.下載學習
回復

使用道具 舉報

板凳
ID:160690 發表于 2017-5-13 00:39 | 只看該作者
東北那誰 發表于 2017-5-10 11:30
資料真不錯.下載學習

一起進步~
回復

使用道具 舉報

地板
ID:278308 發表于 2018-1-21 15:41 | 只看該作者
不行啊,我的實現不了藍牙功能
回復

使用道具 舉報

5#
ID:272625 發表于 2018-1-24 23:37 | 只看該作者
程序出錯

評分

參與人數 1黑幣 +5 收起 理由
zqy181818 + 5 確實有錯的

查看全部評分

回復

使用道具 舉報

6#
ID:235954 發表于 2018-1-26 12:49 | 只看該作者
數據傳輸不過去啊
回復

使用道具 舉報

7#
ID:222006 發表于 2018-2-9 14:26 | 只看該作者
感動的快哭了,代碼都寫好了就差樓主的原理圖了可以動手焊了
回復

使用道具 舉報

8#
ID:288788 發表于 2018-3-7 17:02 | 只看該作者
感謝分享
回復

使用道具 舉報

9#
ID:454243 發表于 2018-12-25 11:27 | 只看該作者
哈哈哈   厲害了  大神啊
回復

使用道具 舉報

10#
ID:463178 發表于 2019-1-6 17:28 | 只看該作者
牛牛
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品精品视频一区二区三区 | 亚洲精品1区2区3区 91免费看片 | 国产精品视频网 | 精品国产黄色片 | 亚洲视频www | www久久av | 欧美日韩中文国产一区发布 | 中文字幕在线免费视频 | 欧美精品一 | 成人免费看黄 | 狠狠久久 | 秋霞国产| 毛片免费视频 | 国产一区精品在线 | 超碰在线观看97 | 国产在线视频一区二区 | 神马久久春色视频 | 欧美性另类 | 日本二区 | 中文字幕精品视频 | 好姑娘高清在线观看电影 | 澳门永久av免费网站 | 电影91久久久 | a级毛片免费高清视频 | 男人天堂视频在线观看 | 国产电影一区 | 亚洲精久久久 | 久久精品久久久 | 久久精品网 | 免费精品| 免费一区| 亚洲成人精品 | 久久天天躁狠狠躁夜夜躁2014 | 色女人天堂| 亚洲国产高清免费 | 日本xx视频免费观看 | 日韩中文字幕一区二区 | 亚洲国产精品成人久久久 | 欧洲一级黄 | 成人在线国产 | 欧美久久久久久久 |