Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 5302|回復: 3
打印 上一主題 下一主題

運用加速度傳感器adxl345補正伺服馬達

[複製鏈接]
跳轉到指定樓層
1#
發表於 2014-4-15 23:21:55 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好 我專題想運用adxl345做伺服馬達的補正讓他永遠維持在我要的位子這是我的code(我是用arduino uno版)現在遇到的問題是我可以燒到我的arduino裡面,comiling有沒有問題但讀出來的Xg值一直為3.91
伺服馬達也不會因我移動ADXL345而改變


#include <Wire.h>
#include <Servo.h>
#define Register_ID 0
#define Register_2D 0x2D
#define Register_X0 0x32
#define Register_X1 0x33
#define Register_Y0 0x34
#define Register_Y1 0x35
int sensorValue0 = 0;        
int s1pwm = 93;
Servo s1;
int ADXAddress = 0xA7>>1;  
int reading = 0;
int val = 0;
int X0,X1,X_out;
double Xg;
void setup()
{
Serial.begin(9600);
s1.attach(6);  
Wire.begin();  //初始化I2C
delay(100);
Wire.beginTransmission(ADXAddress);
Wire.send(Register_2D);
Wire.endTransmission();
}
void loop()
{
Wire.beginTransmission(ADXAddress);
Wire.send(Register_X0);
Wire.send(Register_X1);
Wire.endTransmission();
Wire.requestFrom(ADXAddress,2);
sensorValue0=Xg;
sensorValue0 = map(sensorValue0, -70,70 ,0 ,179 );     
s1.write(sensorValue0);
if(Wire.available()<=2);
{
X0 = Wire.receive();
X1 = Wire.receive();
X1 = X1<<8;
X_out = X0+X1;
}
delay(100);
  Serial.print("Xg =   " );                       
  Serial.println(Xg);
  delay(100);
Xg = (X_out-14.4)/3.68;
}
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-3 05:38 , Processed in 0.215611 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表