搖桿一般在航模、電玩、遙控車、云臺等設(shè)備上應(yīng)用廣泛,很多帶有屏幕的設(shè)備也經(jīng)常使用搖桿作為菜單選擇的輸入控制。本篇介紹雙軸按鍵搖桿的使用。
1
雙軸按鍵搖桿介紹
雙軸按鍵搖桿主要由兩個10K的電位器和一個按鍵開關(guān)組成,兩個電位器隨著搖桿扭轉(zhuǎn)角度分別輸出X、Y軸上對應(yīng)的電壓值,在Z軸方向上按下?lián)u桿可觸發(fā)輕觸按鍵。在配套機(jī)械結(jié)構(gòu)的作用下,無外力扭動的搖桿初始狀態(tài)下,兩個電位器都處在量程的中間位置。
不同廠商生產(chǎn)的按鍵搖桿模塊的引腳輸出會有所不同,但都會有VCC、GND電源引腳和X、Y、Z輸出引腳。
2
實驗材料
- Uno R3開發(fā)板
- 配套USB數(shù)據(jù)線
- 面包板及配套連接線
- 雙軸按鍵搖桿模塊
3
實驗步驟
1.根據(jù)原理圖搭建電路圖。
雙軸按鍵搖桿模塊的VCC、GND分別連接開發(fā)板的5V、GND,模塊的X軸輸出、Y軸輸出分別連接開發(fā)板的模擬引腳A0、A1,模塊的Z軸輸出連接開發(fā)板數(shù)字引腳2。
實驗原理圖如下圖所示:
實驗原理圖
2. 新建sketch,拷貝如下代碼替換自動生成的代碼并進(jìn)行保存。
/*
* JoyStick
* 雙軸按鍵搖桿
*/
#define pinX A0
#define pinY A1
#define pinK 2
int value = 0;
void setup()
{
pinMode(pinK, INPUT);
Serial.begin(9600);
}
void loop()
{
value = analogRead(pinX);
Serial.print("X: ");
Serial.print(value);
value = analogRead(pinY);
Serial.print(" Y: ");
Serial.print(value);
value = digitalRead(pinK);
Serial.print(" Z: ");
Serial.println(value);
delay(1000);
}
3. 連接開發(fā)板,設(shè)置好對應(yīng)端口號和開發(fā)板類型,進(jìn)行程序下載。
程序下載
4
實驗現(xiàn)象
打開串口監(jiān)視器,波特率設(shè)置成與程序中相一致的9600,扭動搖桿,監(jiān)視器將顯示X、Y軸對應(yīng)的電壓對應(yīng)的AD數(shù)值。
實驗現(xiàn)象
由于開發(fā)板的ADC是10位精度,AD值在[0, 1023]之間,理論上X、Y軸輸出中間值512,但由于電位器及結(jié)構(gòu)差異,原點(diǎn)值會有偏差,有些應(yīng)用中需要進(jìn)行校準(zhǔn)。
-
電位器
+關(guān)注
關(guān)注
14文章
1004瀏覽量
66674 -
GND
+關(guān)注
關(guān)注
2文章
528瀏覽量
38633 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
12818
發(fā)布評論請先 登錄
相關(guān)推薦
評論