close
標題:

arduino ADXL335

發問:

在網路上找了一些資料#define parameter 0.009765625 // AXDL335 用,代表 10 位元的 ADC 轉換 1 個刻度所代表的 G 值。(3.3/1024/0.33)#define rad 57.295779513082 // 徑度。(360/2*PI)//// 變數設定double X,Y,Z,Xangle,Yangle,Zangle;int Xread,Yread,Zread;int Xref = 505; // X 軸的偏差較正參數,可透過此參數調整 X 軸 0G... 顯示更多 在網路上找了一些資料 #define parameter 0.009765625 // AXDL335 用,代表 10 位元的 ADC 轉換 1 個刻度所代表的 G 值。(3.3/1024/0.33) #define rad 57.295779513082 // 徑度。(360/2*PI) // // 變數設定 double X,Y,Z,Xangle,Yangle,Zangle; int Xread,Yread,Zread; int Xref = 505; // X 軸的偏差較正參數,可透過此參數調整 X 軸 0G 時的標準值 int Yref = 496; // Y 軸的偏差較正參數,可透過此參數調整 Y 軸 0G 時的標準值 int Zref = 496; // Z 軸的偏差較正參數,可透過此參數調整 Z 軸 0G 時的標準值 int Xinput = 4; // X 軸的類比電壓輸入腳位 int Yinput = 2; // Y 軸的類比電壓輸入腳位 int Zinput = 0; // Z 軸的類比電壓輸入腳位 void setup() { Serial.begin(9600); // 串列傳輸的鮑率設定 analogReference(EXTERNAL); // 設定外部參考電壓 } void loop() { // Xread = analogRead(Xinput); // 將 X 軸的輸入電壓存到所設定的變數 Yread = analogRead(Yinput); // 將 Y 軸的輸入電壓存到所設定的變數 Zread = analogRead(Zinput); // 將 Z 軸的輸入電壓存到所設定的變數 X = (Xread-Xref)*parameter; // 計算 X 軸的 G 值 Y = (Yread-Yref)*parameter; // 計算 Y 軸的 G 值 Z = (Zread-Zref)*parameter; // 計算 Z 軸的 G 值 為什麼這裡要 3.3/1024/0.33 ? #define parameter 0.009765625 // AXDL335 用,代表 10 位元的 ADC 轉換 1 個刻度所代表的 G 值。(3.3/1024/0.33) X軸的偏差較正參數505是哪來的? int Xref = 505; 如果我只是要X軸的G值該怎麼寫??? 感謝大家

最佳解答:

 

此文章來自奇摩知識+如有不便請留言告知

為什麼這裡要 3.3/1024/0.33 ? #define parameter 0.009765625 // AXDL335 用,代表 10 位元的 ADC 轉 換 1 個刻度所代表的 G 值。(3.3/1024/0.33) X軸的偏差較正參數505是哪來的? int Xref = 505; 如果我只是要X軸的G值該怎麼寫??? 感謝大家 A1: 3.3V/1024 代表的是 10bit ADC值所代表的電壓 0.33 其實是 330mV/g , 代表的是解析度 所以 ( ADC值 * 3.3V/1024) 代表得到的電壓 再 將上值 / 0.33 得到它的 g 值 A2: 一般是實際量測的, 因為每一顆都有點偏差 A3: 上面的 code, 把其他兩軸拿掉不就是了嗎?

其他解答:5FAD1C75A5AA61DA
arrow
arrow
    創作者介紹
    創作者 wszspj2 的頭像
    wszspj2

    wszspj2的部落格

    wszspj2 發表在 痞客邦 留言(0) 人氣()