アンドロイドから加速度を受け取り対象物を水平に制御するプログラムを
作成したのですが、思った以上にプログラムが短くなってしまったので、
何か改善するところがあれば教えていただきたいです。
このプログラムは右に45、左に45度まで補正するプログラムです。
- #include "mbed.h"
- #include <iostream>
- #include "TextLCD.h"
- TextLCD lcd(p24, p26, p27, p28, p29, p30);
- Serial pc(USBTX, USBRX);
- PwmOut pwm(p21);
- using namespace std;
- int main() {
-
double x=0; //変換先
-
int Angle; //角度
-
int p,start=1500,min=1050,max=1950;
-
p = start; //モータ初期位置
-
pwm.pulsewidth_us(p);
-
wait_ms(40);
-
while(1) {
-
cin >> x ; //加速度受け取り
-
lcd.cls();
-
if(x>=0)
-
Angle = x/0.109 + 0.5; //相対角度算出
-
else if(x<0){
-
Angle = x/0.109 - 0.5;
-
}
-
lcd.printf("X=%6.2f",x); //LCDにうけっとた値
-
lcd.locate(0,1); //相対角度表示
-
lcd.printf("Angle=%d",Angle);
-
if(Angle == 0){ //角度が0なら初期位置に
-
p = start;
-
pwm.pulsewidth_us(p);
-
}else if(Angle >45){ //45度以上はmaxで固定
-
p = max;
-
pwm.pulsewidth_us(p);
-
}else if(Angle <-45){ //-45度以下はminで固定
-
p = min;
-
pwm.pulsewidth_us(p);
-
}else{ //それいがいは指定角度へ
-
p=start-Angle*10;
-
pwm.pulsewidth_us(p);
-
}
-
}
- }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/07 04:37