標題: 極客DIY:自制詭異的人體紅外感應燈 [打印本頁]

作者: 51黑電子論壇    時間: 2015-12-19 18:34
標題: 極客DIY:自制詭異的人體紅外感應燈
放假回家了,基本上都是一個人在家,晚上除了自己的房間有光,其他房間都是黑漆漆的,每當要去客廳接水喝,走到門口時都有種恐怖的感覺……

于是想到很久以前用89C52做的人體紅外感應燈,從柜子里翻出來看了看,LED什么的都拆了,但是人體紅外感應模 塊還在,89C52的最小系統(tǒng)也是完整的,反正51單片機現(xiàn)在不用以后也用不到了,于是就開干,把這個人體紅外感應等做完整,正好也復習(學習)一下51單片機的玩法。

第一部分 原理圖設計

這就是板子原本的樣子。其實這是我當年自己焊的第一塊板子,背后太難看就不拍了。

然后這就是STM89C52,注意方向哦,認真看圖能發(fā)現(xiàn)上面是有個半圓弧的缺口的,他朝上。

然后基于目前的板子來設計電路圖吧。

首先我們要知道89C52封裝后的引腳和原理圖中標的是不同的,所以看89C52的引腳圖。

結(jié)合圖看到我們?nèi)梭w紅外傳感器離P2.0這個IO口很近,于是決定把P2.0口作為輸入口。

51單片機需要最小系統(tǒng)才能正確運行,所以我們是來了解一下,雖然板子上已經(jīng)焊好了。

打開Proteus,開始設計原理圖。

這就是最基本的電路了。XTAL1和XTAL2這一部分是時鐘電路,RST接出去的就是復位電路。

復位電路很好理解,就是按一下就復位嘛,51單片機是高電平復位,所以平時應該要通過下拉電阻下拉,保證平時是低電平,那個10K的電阻一頭接地一頭接RST,所以他就是下拉電阻了。

可能沒玩過51單片機的同學不清楚時鐘電路是什么回事,時鐘電路就是產(chǎn)生象時鐘一樣準確的振蕩電路。震蕩電路就相當于我們的心臟,他要按一定的頻率跳動我們才能活。另外時鐘電路就像是我們做廣播體操一樣,需要提供一個節(jié)拍,我們每個人跟著節(jié)拍做才能做整齊,而這個節(jié)拍就是單片機心臟跳動的頻率。

我們平時玩Arduino時并不用關心振蕩電路或者復位電路,因為板子上已經(jīng)都設計好了,比如我的UNO就是16MHz的晶振,并且AVR單片機可以使用內(nèi)部的晶振。而51單片機沒有內(nèi)部晶振,必須要使用外部晶振。

另外可以看到圖上EA口接了高電平,EA為片外程序存儲器選擇輸入端,低電平時,使用片外程序存儲器;高電平時,使用片內(nèi)程序存儲器。當然我們就是使用片內(nèi)程序存儲器咯。

這樣連接好單片機最基本的電路就完成了,燒上程序供電就能運行了。

在我們編程之前,先把電路設計完整。

這里我們加了2部分。

第一部分就是P2.0的輸入,由于沒有人體紅外傳感器的仿真模塊,就用一個按鈕來代替。我們的人體紅外傳感器使用的是HC-SR501,根據(jù)文檔我們可以知道當感應到有人時,OUT引腳是置為高電平3.3V的。在51中,或者Arduino中,單片機系統(tǒng)使用5V作為高電平時,3.3V也是算作高電平的。

第二部分就是LED啦。電阻是作為限流用的,防止電流過大燒壞LED或者單片機,我這里使用了玩Arduino都陪的220歐電阻,當然可以小一點,也可以大一點,只不過太小了起不到限流的作用,太大了雖然對硬件沒有損壞但是亮度就太小了。

第二部分 程序設計

直接上程序。


這樣就是最簡易的代碼了,大家應該都有C語言基礎就不用講太細了。P1,P2都是“reg51.h”里面定義了的,直接拿來用就行了。sbit是位定義,我們定義了“in”為P2.0這個引腳。P1我們沒有單獨定義每個引腳,因為我們可以直接將所有P1的端口置0或者置1。延時函數(shù)大家都能理解嘛,執(zhí)行空循環(huán)浪費時間就行了。而while(1){}就相當于Arduino的loop(){}。

這里我們只要判斷,P2.0口如果是高電平,那么就把P1口設置為0,即低電平,延時1000毫秒,再將P1口設置為1,即高電平。當然,真正使用時延時1秒肯定不夠,我最后設置的是60秒。

第三部分 仿真

Proteus有仿真功能,加載Keil C生成的HEX文件,然后點擊左下角的運行仿真即可。

這樣就開始仿真了,然后點擊P2.0口的按鈕。

按下按鈕后對比發(fā)現(xiàn)LED亮了,并且延時約1秒后又熄滅了,說明程序正確執(zhí)行了。

第四部分 動手開工

先來把程序燒錄上。記得把延時程序改成60秒哦。

通過USB2TTL,RX,TX反接。

按通常的燒錄方法就行了。

然后上電烙鐵,對照原理圖設計電路圖。因為這個原理圖很簡單,直接在大腦里就能畫出電路圖。如果復雜了,還是先把電路圖設計好再焊接。

我一直記得我有白光LED,但是找來找去都沒有找到,翻了翻淘寶發(fā)現(xiàn)真的是我記錯了,于是我就用2個紅色LED和2個藍色LED來代替了。

注意LED的導線,由于要安裝在不同的位置所以導線也不一樣長,這個要根據(jù)自身情況而定。

要說的就是我把面包版的電源模塊拿來用了,又可以用電池又可以通過USB用移動電源。

然后開始部署,我是用透明膠固定導線。想到拆的時候會留膠,所以沒粘很多,看起來不太美觀。

正好我門口對面就有個平臺可以放。然后需要調(diào)節(jié)下傳感器的感知距離,我調(diào)到最低的,反正完全夠用了。

第五部分 使用測試

好不容易等到了晚上,可以測試了。

先打開電源,單片機運行,感受到了我的人體紅外,燈亮。于是我進房間,留下一條門縫,一分鐘左右燈熄滅了,于是我拉開門,燈又一下亮了起來。程序是沒問題,單片機能正確運行。蛋似!光線真的太弱了。雖然我們看得到,但是本來就弱的光線,還是紅色和藍色的,這氛圍更加詭異了……

這是什么!瞬間有種進了鬼屋的感覺啊!嚇死本寶寶了!

我覺得還是早睡早起好!

第六部分 總結(jié)

如果真的要做的話,還是賣個大功率白光LED吧,有條件的同學還可以繼電器加電燈。

最后附上所有資料的下載。

*本文作者:zhangtory

人體紅外感應燈.zip

42.91 KB, 下載次數(shù): 380, 下載積分: 黑幣 -5


作者: 騰飛的龍    時間: 2015-12-20 13:41
好的創(chuàng)意加上喇叭做防盜用也行。
作者: Mad_dog    時間: 2016-5-4 17:31
樓主寫的很詳細
作者: MCSLGH    時間: 2016-5-17 19:03
感謝分享。!
作者: huajinshuangpin    時間: 2016-5-30 12:32
非常有用,論壇下載了幾個都是廣告
作者: huajinshuangpin    時間: 2016-5-30 12:33
黑幣不夠。。。好尷尬
作者: 827254237    時間: 2016-6-4 23:06
樓主,用你那個程序  輸入在P2.0口為什么燈會感應亮了滅了后會自己又亮一次?
作者: greatfun2006    時間: 2016-6-5 09:20
不錯的分享,支持!!
作者: hclin    時間: 2016-6-25 23:01
那個 PIR 模組本身就有調(diào)整延長時間的VR,不必用MCU來處理,板主做法似乎殺雞用牛刀。
作者: Mr_oll    時間: 2016-9-28 09:33
傳感器那部分怎么處理?
作者: Mr_oll    時間: 2016-9-28 09:39
黑幣不夠,新人怎么獲取黑幣?
作者: 單片機小白123    時間: 2017-3-16 13:40
可是我也按照你寫的程序?qū)懥搜剑趺磳崿F(xiàn)不了,我的燈是常亮的
作者: 單片機小白123    時間: 2017-3-16 13:41
這是我的連接圖,我用的是stc89c52的
作者: qinanhg    時間: 2017-3-24 12:28
好好看下,謝謝分享
作者: maoyazhou    時間: 2017-3-26 10:29
謝謝分享。。。
作者: hkt5352789    時間: 2017-4-30 23:41
謝謝樓主分享
作者: fuckjg    時間: 2017-5-3 18:58
很詳細,就是藍光直看刺眼
作者: liquanbing    時間: 2017-5-6 18:19
可以可以
作者: QWER01234    時間: 2017-7-1 15:00
感謝分享正好用到
作者: adls    時間: 2017-7-1 15:55
謝謝樓主分享
作者: 天使之淚雨揚    時間: 2017-7-16 12:15
人體紅外感應器外加三極管直接就可以驅(qū)動繼電器,LED了,
作者: sky_t    時間: 2017-12-19 11:10
用單片機控制a/d采樣人體紅外信號該怎么實現(xiàn)呢?
作者: 夏風之歌    時間: 2017-12-20 16:51
樓主你的proteus漢化版哪里下的
作者: 蠟青mos    時間: 2018-1-4 22:46
怎么我仿真的時候沒有反應?

作者: tieq1952    時間: 2018-1-5 07:28
為新手周到服務,贊一個
作者: 都市郎    時間: 2018-1-20 22:13
編譯有一個錯誤不通過,如圖所示:還有樓主仿真圖里的R7是干嗎用的?

有在一個錯誤.jpg (55.03 KB, 下載次數(shù): 198)

有在一個錯誤.jpg

作者: 天才小壯    時間: 2018-2-4 23:03
程序里沒  有傳感器的部分吧
作者: lcq403    時間: 2018-2-28 10:57
謝謝樓主分享
作者: KUNGONG    時間: 2018-3-11 23:30
樓主寫的很詳細,受益匪淺呀
作者: cyghayd    時間: 2018-3-12 14:38
hclin 發(fā)表于 2016-6-25 23:01
那個 PIR 模組本身就有調(diào)整延長時間的VR,不必用MCU來處理,板主做法似乎殺雞用牛刀。

同意,用單片機和沒用單片都一樣的功能
作者: 1677844682    時間: 2018-4-1 21:36
樓主我按照你說的做了一遍仿真,發(fā)現(xiàn)達不到和你一樣的效果,一運行程序仿真燈就亮,按下按鈕沒反應,檢查好多次了,沒錯誤呀!
作者: 1677844682    時間: 2018-4-1 22:10
為什么運行程序仿真燈就亮了,都還沒按按鈕,而且按了按鈕也沒什么反應,沒達到樓主說的功能,我是下載你的程序燒入的
作者: wodecuo    時間: 2018-4-25 17:14
827254237 發(fā)表于 2016-6-4 23:06
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

為什么?
作者: wodecuo    時間: 2018-4-25 17:16
為什么燒好程序后,連接電源,燈一亮一滅?
作者: wodecuo    時間: 2018-4-26 17:48
wodecuo 發(fā)表于 2018-4-25 17:16
為什么燒好程序后,連接電源,燈一亮一滅?

EA沒接高電平;在EA接完高電平后,再次測試成功了。
作者: 10357    時間: 2018-12-28 08:50
受教了,非常感謝樓主!
作者: Comet111    時間: 2018-12-28 10:19
仿真是有問題的

作者: Comet111    時間: 2018-12-28 10:40
1677844682 發(fā)表于 2018-4-1 21:36
樓主我按照你說的做了一遍仿真,發(fā)現(xiàn)達不到和你一樣的效果,一運行程序仿真燈就亮,按下按鈕沒反應,檢查好 ...

我的也是,應該是樓主代碼問題
作者: lingofly    時間: 2019-1-28 16:19

好好看下,謝謝分享
作者: .小破孩    時間: 2019-2-14 13:21
都市郎 發(fā)表于 2018-1-20 22:13
編譯有一個錯誤不通過,如圖所示:還有樓主仿真圖里的R7是干嗎用的?

延時函數(shù)最后一句少了個;分號
作者: 木大本    時間: 2019-2-15 17:39
剛好用的上,非常感謝
作者: lijunhui0601    時間: 2019-3-3 22:20
感謝樓主分享,學習了
作者: aq0022    時間: 2019-3-5 07:20
雖然是2015年的制作,現(xiàn)在看依然有借鑒價值,很好,這就是技術的魅力。
作者: ddu    時間: 2019-3-29 16:41
非常有用!
作者: fengdangsheng    時間: 2019-3-30 16:50
謝謝嘍!
作者: 55955156    時間: 2019-4-3 23:32
接線碉堡了
作者: wpppmlah    時間: 2019-5-10 10:27
這個不錯,可以做一個放到門口 ,有人來就會打開燈,人走了延時一會兒就會燈滅.好.
作者: xjx51    時間: 2021-8-10 15:44
都市郎 發(fā)表于 2018-1-20 22:13
編譯有一個錯誤不通過,如圖所示:還有樓主仿真圖里的R7是干嗎用的?

你的while() 后面加了分號,去掉看看,如果有這個東西的話很可能導致程序不運行!
作者: 啤酒瓶子老大    時間: 2021-8-27 22:08
熱釋電紅外線傳感器模塊不用單片機。接個三極管接個燈就行了。自帶延時。樓主辛苦了。
作者: 老愚童63    時間: 2021-8-28 07:03
練習單片機可以,但作為紅外線感應燈沒有意義!因為模塊本身可以實現(xiàn)的功能樓主卻畫蛇添足增加單片機這一塊的成本,顯然,失去了實用價值。
作者: llyjili    時間: 2021-12-4 16:13
這要有個鏡子。。。。。。。嚇死人了
作者: kz0018    時間: 2022-7-14 23:49
程序沒問題,只是用stc89c52,大材小用了,權當對單片機應用的又一次學習




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1