太陽能LED燈可作路燈或庭院燈使用,白天采用太陽能電池板給蓄電池充電,晚上采用兩段式點燈,即天黑后點亮到深夜自動關(guān)閉,第二天天亮前自動點亮,天亮后關(guān)閉。這里涉及的控制有:定時開關(guān)燈;蓄電池充電和放電電壓的監(jiān)測,防止過充電和過放電;環(huán)境光照強度的測量,作為晚上天黑時開燈和早晨天亮時關(guān)燈的依據(jù)。由于一年四季黑夜的長度都不一樣,所以第二天提前開燈的時刻也不一樣。要完成上述功能,用傳統(tǒng)電路顯然很麻煩,甚至無法實現(xiàn),而使用單片機可以使電路變得很簡潔。
根據(jù)上述的功能要求對單片機有以下的要求:
1.單片機要處理兩個模擬量:電池電壓和環(huán)境照度,因此要求單片機有兩個A/D轉(zhuǎn)換器或兩個電壓比較器,比較一下用A/D轉(zhuǎn)換器比用電壓比較器外圍電路更簡單,引腳也少,因此決定采用A/D轉(zhuǎn)換器;2.單片機有兩個控制輸出,一個控制充電,一個控制點燈。加上兩個A/D轉(zhuǎn)換器要用兩個輸入端,這樣要用4個I/O口,3.由于系統(tǒng)的程序容量并不大,因此程序存儲器有1KB就足夠了;4.太陽能電池和蓄電池實際上組成不間斷電源,單片機的數(shù)據(jù)不存在掉電丟失的問題,而且每天都自動更新,因此可以不選用帶EEPROM的單片機。
綜上所述,經(jīng)過反復(fù)比較,可選用8只引腳的PIC12C671單片機。
為了充分利用I/O口,采用芯片內(nèi)部的RC振蕩器做時鐘源,采用上電復(fù)位的復(fù)位方式。電路見下圖。
上圖中R5、R6組成蓄電池電壓的取樣分壓電路,此電壓送單片機ANO端作A/D轉(zhuǎn)換后測量蓄電池的電壓,防止過充電和過放電。充電時如果發(fā)現(xiàn)電池電壓偏高,則單片機5腳輸出低電平,使三極管VT2截止,停止充電,防止電池過充電。二極管VD1提供電池放電的通路(放電電流和充電電流方向相反)。在點燈的時候,單片機3腳輸出高電平,三極管VT1導(dǎo)通使高亮度發(fā)光二極管點亮。當電池電壓偏低時,單片機3腳輸出低電平,VT1截止,發(fā)光二極管熄滅,防止電池過放電。R7、R8組成太陽能電池電壓取樣電路,此電壓送單片機AN1端作A/D轉(zhuǎn)換后判斷環(huán)境照度用,天黑以后太陽能電池的電壓下降,當取樣電壓小于設(shè)定的值時單片機3腳輸出高電平,點亮發(fā)光二極管。天亮時過程正好相反,發(fā)光二極管熄滅。同時單片機記錄下從天黑到天亮的時間,第二天以此時間為基準根據(jù)事先的約定計算出半夜熄燈和第二天提前開燈的時間。因為一年四季黑夜的長度是不同的,單片機具有智能學習的功能,因相鄰兩天黑夜的長度很接近,可用第一天測量的黑夜的長度作第二天黑夜的長度來使用,這就解決了黑夜長度不固定的難題,這是傳統(tǒng)電路不能完成的。