回覆列表
  • 1 # 使用者1452960313335

    光立方簡單講就是用微控制器控制很多規則排列的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同時亮。加快掃描進度。以上就是光立方的基本原理。熟悉其控制過程後,編寫程式並不難。

  • 中秋節和大豐收的關聯?
  • 24歲的我們,可以改變自己什麼?