[MATLAB] 讀取感應器的值-程式說明

上次我們放上了一個 MATLAB 的程式,可以讀取光感應器的值,現在讓我們來說明一下這個程式吧!

%Initialize the working environment
clear all;
close all;
clc;
COM_CloseNXT all;

%Search for NXT and get the NXT profile

hNXT=COM_OpenNXT();

%Set the connected NXT as default handle
                                    
COM_SetDefaultNXT(hNXT);                               
NXT_PlayTone(660,200);
pause(0.3);

%task main

OpenLight(SENSOR_1, 'ACTIVE');                        
OpenSwitch(SENSOR_2);                                

while GetSwitch(SENSOR_2)==false                                          
   LightValue = GetLight(SENSOR_1)*0.09775
end

前面幾行是建立程式的工作環境,在上一篇已經有詳細的介紹,這裡就不多做說明。在 pause(0.3) 後,進入主程式,即註解 task main 以下的程式碼。(注意:在 MATLAB 中,註解是以%表示,因此%後面的字元不會被編譯)

以下對主程式進行說明:

OpenLight(SENSOR_1, 'ACTIVE');  
開啟光感應器,感應器接在1號輸入端,且打開LED燈。

OpenSwitch(SENSOR_2);  
開啟觸碰感應器,且感應器是接在2號輸入端。

while GetSwitch(SENSOR_2)==false                                          
   LightValue = GetLight(SENSOR_1)*0.09775
end
進入 while 迴圈,跳出的條件是觸碰感應器壓下。若是觸碰感應器沒壓下,則不斷讀取光感應器的值(GetLight),由於值的範圍是 raw data,即 0~1023,因此乘上 0.09775 以使其範圍在 0~100。另外記得迴圈要加end表示結束。

感應器的值會顯示在 MATLAB 的  command window 上。若是在讀取感應器值的那行程式加上分號,就不會顯示了。這是 MATLAB 的特色之一,即不加分號會顯示運算過程,而加分號則是隱藏運算過程。

鼓勵有 MATLAB 的朋友們試試看囉!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *