步驟1:
此操縱桿類似于PlayStation 2控制器上的“模擬”操縱桿。它由兩個(gè)電位計(jì),每個(gè)電位計(jì)的值均為10k,一個(gè)用于x軸,另一個(gè)用于y軸,以及一個(gè)用于選擇的觸覺按鈕,按下該按鈕可在按下操縱桿時(shí)激活。
兩個(gè)電位器是與一個(gè)將水平運(yùn)動和垂直運(yùn)動分開的萬向節(jié)機(jī)構(gòu)連接。在閑置位置時(shí),操縱桿居中,這意味著每個(gè)電位計(jì)均處于其中心位置或中心位置。回到軸概念,您可以隨機(jī)選擇哪個(gè)電位器用于x或y軸。在上面的圖片中,您可以看到我選擇軸的方式(在此示例中,軸無關(guān)緊要。您可以選擇任何電位計(jì)來嘗試草圖)。
對于硬件連接,電位計(jì)的中間引腳用于模擬數(shù)據(jù),另外兩個(gè)用于電源。哪個(gè)引腳連接到5V或GND都無關(guān)緊要,它只會稍微影響默認(rèn)數(shù)據(jù)值,但無需更改代碼。
步驟2:步驟2:Arduino代碼
以下是用于校準(zhǔn)這種電位計(jì)的代碼。
/*
日期:------------------------------------ ----- 2015年12月22日標(biāo)題:---------- JOYSTICK電位計(jì)校準(zhǔn)
作者:------------------ --- Firas Helou提供------------------------
了解如何使用Arduino Uno校準(zhǔn)操縱桿電位器
*/
int defaultData;//在開始
int數(shù)據(jù)時(shí)為默認(rèn)電位計(jì)數(shù)據(jù)設(shè)置一個(gè)變量;//可以存儲在電位計(jì)上從模擬Arduino引腳A0讀取的數(shù)據(jù)
int startTime = 0;//時(shí)間變量數(shù)據(jù)類型定義為整數(shù),因?yàn)槲覀儾恍枰^10微秒
int TimeGap = 10;//定義時(shí)間間隔
int重映射;//重新映射變量以存儲來自模擬Arduino引腳A0的重新映射數(shù)據(jù)
//VOID SETUP()功能
void setup(){
//以默認(rèn)速率設(shè)置串行通信
Serial.begin(9600);
///我們設(shè)置時(shí)間來定義在模擬Arduino引腳A0上讀取的默認(rèn)值,因?yàn)槲覀冇幸粋€(gè)居中的操縱桿引腳,因此它的默認(rèn)值不同于0
if(micros()-startTime》 = TimeGap){//電位計(jì)連接到模擬Arduino
}
}
//無效循環(huán)()功能
無效循環(huán)(){
//我們將數(shù)據(jù)值設(shè)置為與模擬量讀取的值相等Arduino引腳A0
data = AnalogRead(A0);//在這種情況下,開始時(shí)讀取的默認(rèn)值為488
if(data //我們必須將在模擬Arduino引腳A0上讀取的數(shù)據(jù)值重新映射為介于0和之間的較小值255
//,但是我們必須從默認(rèn)值中減去1,因?yàn)槿绻贿@樣做,//當(dāng)操縱桿位置居中時(shí),我們將沒有默認(rèn)值0,相反,我們將有一個(gè)/為避免浮動問題,我們在1和0之間浮動值,所以我們只需減去-1 remap = map(data,0,defaultData-1,255,0);
}否則if(data》 = defaultData){
//在這一部分,我們不需要減去任何內(nèi)容
remap = map(data,defaultData,1023,0,255) ;
}
//串行打印我們收到的值
Serial.print(“ Remapped value:”);結(jié)果,Serial.println(重映射);
Serial.print(“默認(rèn)值:”);結(jié)果,Serial.println(defaultData);
delay(200);
}
假設(shè)我選擇了y軸,通過上傳代碼并打開串行監(jiān)視器,我們必須看到默認(rèn)值488就我而言(您可能會得到不同的值)。這是操縱桿的閑置中心位置,因此我們必須對其進(jìn)行校準(zhǔn)以使其開始時(shí)看到一個(gè)0值而不是488。這就是該草圖所在的位置。上圖顯示了在上載最終草圖后收到的結(jié)果。
這是我的第一個(gè)可指導(dǎo)的教程。希望對您有所幫助。如果您有任何疑問,或者如果您有更好的編碼方式,請隨時(shí)在評論部分中添加您的問題,將其檢查出來是一件很不錯(cuò)的事,這將有助于我改善自己。如果您發(fā)現(xiàn)可以改進(jìn)的地方,請?jiān)谠u論中添加它,或給我發(fā)送私人消息。對其他人和我一樣都會有幫助。
-
電位器
+關(guān)注
關(guān)注
14文章
1005瀏覽量
66731 -
操縱桿
+關(guān)注
關(guān)注
0文章
69瀏覽量
8520
發(fā)布評論請先 登錄
相關(guān)推薦
評論