這次要處理的問題是:依照指定順序點亮LED燈

 


指定的順序如下圖顯示:由1號依序點亮到64號,在圖中可以看到不是按照常見的由左而右由上而下的順序,而是從左下開始左右反覆向上到左上為止。要達到這樣的需求可以用叢集(Cluster)或陣列(Array)來達成

20110402-08  

 

因為考慮到這個程式以後可能會實際用到機器上,所以是用While Loop迴圈來做,這樣在機器故障時才有可能緊急停止程式

 


首先解說如何用叢集來寫這個程式:


首先面板放上64個LED元件,排列好之後放到叢集內,如下圖

20110402-03  

 

這時叢集內的LED元件順序不一定會符合程式需求,所以需要改變LED元件在叢集內的順序,這時可以在叢集邊上按滑鼠右鍵,從跳出的選單中點選Reorder Controls In Cluster...這一項

20110402-04  

 

這時叢集內的LED元件會顯示順序編號,如下圖:可以看出圖上順序是縱排

20110402-05  

 

依需要的順序一一點選完成順序的重編,如下圖:按OK後就完成順序重編

20110402-06  

 

程式部分反而比較簡單,只要1D陣列即可完成


特別要注意的是Array To Cluster這個元件,其中Cluster Size...這個屬性要從內定的9改成64,以配合叢集內的元件數量,否則會無法連線

 


完成的程式如下

20110402-07  

 

 

 

接下來說明如何用陣列來寫這個程式:


首先是在面板用LED元件來創建一個8*8的陣列,如下圖

20110402-01  

 

 

再來程式的部分比較複雜,基本的原則是正確算出每一個要點亮的LED元件的座標索引值


完成的程式如下

20110402-02  

,

Posted by 未出師的小工程師 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()