步驟1:設計
電路
這是一個非常簡單的電路,基于8針Picaxe 08M。這就是我手頭上的東西,您也可以使用較新的08M2。它使用LDR和1M2電阻器在Picaxe的引腳1上形成分壓器。通過1k2電阻將一個橙色LED連接到Picaxe的引腳4。這將通過LED的電流限制在約5mA。這會降低LED的亮度,但是如果您的眼睛適應了黑暗,它仍然足以提供昏暗的燈光(我在走廊上使用它,這樣我可以避免在夜間絆倒,但不會通過打開主燈來喚醒家庭)下拉電阻用于未使用的Picaxe引腳上-優良作法是不要使微控制器上的I/O引腳“浮動”,而且我認為它還可以稍微降低電流消耗。我使用110k電阻作為下拉電阻,因為我手頭上有很多電阻。您可以使用大約100k的任何電流。
LED是直接從Picaxe驅動的,因此將來自此引腳的總電流限制在20mA以下非常重要。
當LED熄滅時,燈的電流消耗小于1mA,大約LED亮起時為5.5mA。我使用4節AA NiMH充電電池(可提供約5V電壓)運行,平均可持續使用一個月左右,然后再為它們充電。
軟件
該軟件用盡了大部分電量時間處于“睡眠”模式,并且僅每2.3秒喚醒一次以檢查LDR的狀態。在讀取LDR之前,它會關閉LED,以便其光輸出不會影響讀數。讀數發生得如此之快,以至于在非常短暫地關閉LED時幾乎看不到LED閃爍。為了避免LED在黃昏附近重復打開和關閉,代碼中內置了一些滯后現象。這是通過計算環境光的平均值非常粗略地完成的,因此環境光的變化需要一段時間才能在代碼中傳播。 ADC的原始讀數也被除以10,以最大程度地降低噪聲。
我所附的代碼在Picaxe 08M上有效。您應該能夠通過使用Picaxe軟件內置的向導將其轉換為在08M2上運行。
硬件
CPU:Picaxe 08M。
LDR:與Philips相似ORP12。我使用了www.jaycar.com.au
LED上的RD3480:高亮度5mm琥珀色LED。我使用了www.jaycar.com.au
PCB上的ZD0295:我在Eagle中設計并蝕刻了自己的定制板。所有設計文件都附在此Instructionable Case上:我設計了上述PCB,以安裝在www.jaycar.com.au HB6005透明塑料外殼中電容器:1x 100uF 16v; 1x 100nF,50v。
電阻:1x 1M2; 2個110k; 1個22k; 1x 10k; 1個1k2。都是1/4w薄膜薄膜(但可能沒關系)
其他:電源插座,電池座(電路需要5V-我用了4個1.2V AA可充電電池),編程接頭,約15cm絕緣連接線
如果對此電路有很大的興趣,我將獲得一批PCB并提供一個套件。
下載
下面是該電路的Eagle文件原理圖和PCB。如果要蝕刻自己的PCB,則還有一個完整尺寸的PCB軌跡PDF。
步驟2:構造
都很簡單。如果您沒有PCB,則需要制作一個PCB,或者使用剝離板(veroboard)
如果您以前從未制作過自己的PCB,請在此處根據指示進行搜索,或者閱讀我的說明本地hackerspace:http://www.makehackvoid.com/projects/pc-pcb-under-30-minutes-quick-n-easy-pcb-fabrication。
如果您使用的是雙面板,頂層只有一個軌道。如果您使用的是單面電路板,則必須用電線鏈接替換此軌道。
我使用了一個小的IC插座來安裝Picaxe芯片本身。
我使用了3針接頭用于Picaxe編程電纜。更改此電纜以適合您的編程電纜-有些電纜使用3.5毫米立體聲插頭。
在照片中,您可以看到LDR與所有其他組件都安裝在PCB的另一側。這是因為我的原始固件在測量環境光之前沒有關閉LED,因此必須對LDR進行物理屏蔽。它不能很好地工作,這就是為什么我修復了固件。現在可以將LDR安裝在PCB的任何一側,這無關緊要。
PCB的尺寸適合于流行的UB5項目箱。我使用了一個透明盒子,使LED發出的光線柔和且漫射。
步驟3:下載
Picaxe程序編輯器
http://www.picaxe.com/
Cadsoft Eagle原理圖和PCB套件
http://www.cadsoftusa.com/download-eagle/
開放源代碼?
這可能是我最后發布的依賴于上述軟件的Instructable。為了支持開源軟件,我正在嘗試將Arduino用于微控制器,將Kicad用于示意圖和PCB設計。在過去的幾年中,這兩個軟件包都變得非常用戶友好,我強烈推薦它們。有關更多信息,請訪問http://www.arduino.ccandhttp://www.kicad-pcb.org/。
固件
將以下文本復制并粘貼到Picaxe編程編輯器。對于Picaxe 08M,它應該保持原樣工作。使用編程編輯器中內置的向導將代碼轉換為與08M2兼容的代碼。
‘用于Picaxe 08M的LED夜燈。
’由Nick West 2012和2013編寫。
‘在知識共享署名下發布&符號相似的許可證。
符號AVE_ADC = w0’連接到LDR的ADC的移動平均值
符號ADC_READ = b2
符號LED = 4‘LED在此引腳上
符號LED_FLAG = b3
符號TWILIGHT_THRESHHOLD = 20’更改此項以更改觸發LED的光強度
main:
enableBOD 暫停20‘讓喚醒后一切穩定。
如果pin4 = 1,則讓LED_FLAG = 1
否則讓LED_FLAG = 0 endif
low LED’短時關閉LED以讀取環境光。 readadc 1,ADC_READ‘分壓器,通過引腳1上的LDR和1M2電阻
如果LED_FLAG = 1如果LED在ADC讀取之前就亮了,請重新打開LED,因此它不會閃爍,因此不會顯著閃爍。
endif
ADC_READ = ADC_READ/10’降低ADC的分辨率以改善磁滯現象
AVE_ADC = AVE_ADC + ADC _READ‘ADC的移動平均值
AVE_ADC = AVE_ADC/2
如果AVE_ADC》 TWILIGHT_THRESHHOLD則為高電平LED’高亮LED并在引腳4
elseif上施加1k限流電阻AVE_ADC 《= TWILIGHT_THRESHHOLD然后為低LED
endif
sertxd(#AVE_ADC,CR,LF)
disableBOD‘掉電檢測禁用,以最小化睡眠電流
sleep 1’最小電流消耗約2.3sec
goto main
-
LED小夜燈
+關注
關注
0文章
11瀏覽量
6653
發布評論請先 登錄
開發案例 | 用CI1302 AI語音開發板4步打造智能語音床頭小夜燈,手殘黨也能玩轉開發!

松下影像制作方案分享會成功舉辦
松下MPS媒體制作平臺概述
用Ai-WB2開發板做智能家居全彩LED小夜燈

小夜燈語音識別芯片,燈具聲控方案,NRK3301

燈具聲控方案 基于小夜燈語音識別芯片NRK3301

冷暖色觸摸無極調光桌面小夜燈方案開發

AIGC在視頻內容制作中的應用前景
0元改造一個USB小夜燈控制器?

光刻掩膜版制作流程
智能家居之旅(11):如何使用HA交流通斷器來控制家里的電器?

如何用安信可Ai-M61系列控制WS2812實現小夜燈?

評論