基本遊戲機的手掣都會出現JoyStick。
JoyStick上的"蘑菇頭"可以向X軸或Y軸的方向移動,而內部的結構其實就相當於2顆可變電阻,其訊號通常以VRX,VRY或S-X,S-Y等方式表示
而一般的JoyStick還有一個按鈕開關,一般稱為Knob、用法和IS Shield上的按鈕開關類似,其訊號通常以SW,S-K等方式表示
以下是常用的JoyStick及相對的腳位名稱
下面的練習我們以IS shield v2板為例,連接上Joystick
參考書的p.38的例子,讀取JoyStick的X軸,Y軸及K按鈕的數值。
特別留意的是,由於我們的K按鈕直接連上Arduino時是所謂的"懸浮"狀態,所以要加上一句pinMode(pin, INPUT_PULLUP);把未按下的常態值變成HIGH / 1
*注意我們用的pin位和書的例子不同,請把腳位改回上方"前置工作"中的設定
X axis常態時的數值是多少? X axis向左推時數值範圍是多少? X axis向右推時數值範圍是多少?
參考書的p.39的例子,以1a的程式做一點小改動,我們可以用Serial Plotter的方式顯示結果
在上面的例子中,K按鈕的值由於是由digitalRead 輸出所以其值只會是1或0,但analogRead的值最大卻是1023!所以基本完全看不到K按鈕的訊號變化。
為了要把這個訊號放大,請把digitalRead 的值乘上1023倍
以Joystick的X axis作控制,一般情況是LED不亮燈,而當:
當按下Knob時LED亮綠燈
當X axis向左(其數值少於一定數值)時LED亮紅燈,越向左亮度越光
當X axis向右(其數值大於一定數值)時LED亮藍燈,越向右亮度越光
*請參考練習lv0或lv1中,X axis常態時的數值是多少?