1. 跪求大神!!!!!51單片機製作光立方(8*8*8LED)時用到ULN2803,在proteus中模擬時,不知道ULN2803怎麼用
你好!
1、 第10腳應該接在 VCC上
2、ULN相當於反相器
3、輸入高電平時,輸出低電平,驅動設備工作
2. 你好,作為一個單片機初學者,對光立方真心看不懂,可不可以詳細點介紹一下光立方怎麼工作的,求程序參考
光立方簡單講就是用單片機控制很多規則排列的LED的亮和滅。
1、先了解單個LED的控制方式,可以是將正極接電源,負極通過一個限流電阻連接至單片機的某個IO口。IO口輸出低電平時,LED就亮,反之,LED滅。
2、若按照單個LED的控制方式,每個LED需要佔用單片機的一個IO口,控制100個LED就需要100個IO口。那麼,有沒有一種方式,可以用較少的IO口,控制較多的LED呢?答案是肯定的,這種方法,就是掃描驅動電路。
3、掃描驅動電路基本原理是利用人眼的視覺停留效應。以2×2掃描驅動電路為例對其工作原理進行簡述,有4LED,分為2行2列,電路如下(圖中省略了限流電阻):
當:
C1=x,C2=x,L1=1,L2=1時,全滅
C1=1,C2=0,L1=0,L2=1時,D11亮
C1=1,C2=0,L1=1,L2=0時,D12亮
C1=0,C2=1,L1=1,L2=1時,全滅
C1=0,C2=1,L1=0,L2=1時,D21亮
C1=0,C2=1,L1=1,L2=0時,D22亮
可見,通過控制C1、C2、L1、L2,可以使D11、D12、D21、D22的任意一個LED的亮滅,也可以使四個LED全滅。
用上述方式輪流點亮D11和D12,一次只亮一個,但是,若將輪換速度加快,每秒之內輪換50次以上,由於人眼的視覺停留效應,視覺效果上就是兩個LED同時亮。
這樣,通過控制C1、C2、L1、L2,可以控制全部LED的亮滅。
上述電路用4個IO口控制4個LED,與直接控制相比,並未節約IO口,但是,若將行和列的數量加大,變為16×16時,共256個LED,控制僅需32個IO口,也就是說,行列數越多,相比越節省IO口。
仔細分析上述控制過程,可以發現,還可以進一步節約IO口的數量。
以16×16的整列為例,若限定16列中,每次只亮一列,就可以用4根IO線加一個4~16解碼器替代。這樣,就變為16+4隻有20個IO口了。而行還是保留16根,因為這樣做,可以一次控制1列中的多個LED同時亮。加快掃描進度。
以上就是光立方的基本原理。熟悉其控制過程後,編寫程序並不難。
3. 我焊接好了光立方和51單片機板子 可是發現LED的亮度不夠
1、P0口接上拉電阻,並且不能直接接後面的晶元,要通過匯流排驅動晶元,比如74245進行驅動加強;
2、VCC換個大功率的電源,你可以大概算一下整個系統的功耗,然後在選電源時,留至少30%的功率餘量。比如總功率可能在5W,那麼你就要至少找個7W左右,最好超過7W的電源,這樣才能保證各模塊可以正常工作!
當然,不是功率越大越好。成 本啊,功率越大的電源,成 本肯定越大的,你 懂的!
你是通過什麼穩壓得到+5V的VCC的?不會直接用7805來做整個系統的+5V電源吧!
4. 光立方燈不亮,單片機沒插緊還能亮一些,完全裝上就不亮
單片機沒插緊能亮一些?能知道這個電路是誰設計的嗎?
沒插緊等於沒插,如果能亮說明你的這個燈驅動是靠一個反向驅動器來驅動的,因為向燈內輸入1時驅動器沒輸出,輸入0時才有輸出。
把單片機的輸出相反一下,也就是1變成0,這樣你試試。
估計你的驅動電路不是功率三極體就是場效應管,檢查射極或源極是否有斷路,如果斷路的話電流會直接灌進單片機而不走管子。
5. 光立方中的uln2803,接的是共陰極嗎還有單片機給它低電平時,uln2803輸出的是高低平
uln2803具有較強的灌電流能力,光立方中,有大量的LED,一般採用掃描驅動電路。
掃描驅動電路中,既需要行驅動,也需要列驅動。
若行驅動採用灌電流驅動器,那麼,列驅動就需要採用拉電流驅動器,反之,若行驅動採用拉電流驅動器,那麼,列驅動就需要採用灌電流驅動器。因此,具體接共陰極還是共陽極,要看你的電路和選用的驅動器。
uln2803為反相集電極開路輸出,單片機給高電平時,uln2803輸出低電平;單片機給低電平時,uln2803輸出高阻(接上拉電阻可變為高電平)。
為了保證LED的安全,最好採用限流電阻。當LED的工作電流較大,接近uln2803的驅動能力時,也可以不用限流電阻,一般不推薦這樣使用。