我发送命令通过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);
}
}
}
答案 0 :(得分:0)
你使用什么样的伺服系统?
如果是模拟伺服,则无法获得伺服位置,但可以将伺服状态保存到变量中,然后可以提供给Android应用程序。
此外,存储(模拟)伺服位置的正确值的最接近的方法是将其发送到最小或最大位置(假设它不是连续且自由旋转的伺服)然后存储任何变化制作到伺服位置。
它相当强大但它应该可以解决问题。
要从arduino获取信息,您是否尝试过SoftwareSerial
。print()
方法?