如何读取伺服位置并将其发送到Android for TextView?

时间:2017-08-16 07:59:00

标签: android android-studio arduino arduino-uno

我发送命令通过Android移动伺服,然后伺服通过蓝牙将位置发送到Android。如何读取伺服位置并将其发送到Android以获取TextView?

这是我使用的代码。值100表示​​开启,150表示关闭LED,因为1-90用于伺服。首次连接Android时如何发布伺服位置?

#include <SoftwareSerial.h>
#include <Servo.h>

Servo servo;

int bluetoothTx = 10;
int bluetoothRx = 11;
int data ;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup() 

{
  pinMode(13, OUTPUT);
  servo.attach(9);
  bluetooth.begin(9600); 
  delay(100);
}


void loop() 
{
  if(bluetooth.available() > 0)  
  { 
    data = bluetooth.read();

    int servopos;
    int servopos1;
    servopos = data;
    servopos1 = data + 9;

    if(data == 100){            
    digitalWrite(13, HIGH); 
    }else if(data == 150){       
    digitalWrite(13, LOW);                               
    }else if (data > 100){ 
    Serial.println(servopos);
    servo.write(' ');
    }else if (data < 100){
    Serial.println(servopos);
    servo.write(servopos1);

}
  }
} 

1 个答案:

答案 0 :(得分:0)

你使用什么样的伺服系统?
如果是模拟伺服,则无法获得伺服位置,但可以将伺服状态保存到变量中,然后可以提供给Android应用程序。

此外,存储(模拟)伺服位置的正确值的最接近的方法是将其发送到最小或最大位置(假设它不是连续且自由旋转的伺服)然后存储任何变化制作到伺服位置。
它相当强大但它应该可以解决问题。

要从arduino获取信息,您是否尝试过SoftwareSerialprint()方法?