我正在用xojo做一个应用程序,你可以在其中设置3个滑块的值,它通过串行监视器以字符串的形式用json发送值,我用arduino接收json的值,使3个伺服马达按滑块的值移动。
我试过使用这个json,但由于我是新手,我不知道如何使用它。基本上代码可以工作,它没有输出错误,但它不能工作,我非常确定电子部分是完全正确的。你能帮帮我吗?
这基本上是我的Xojo代码:
var angles as new jsonitem
angles.value("servo1") = slideservo1.value
angles.value("servo2") = slideservo2.value
angles.value("servo3") = slideservo3.value
angles.Compact = True
Serialcontroller.write(angles.toString)这是我的Arduino代码:
#include <Servo.h>
#include <ArduinoJson.h>
Servo myServo1;
Servo myServo2;
Servo myServo3;
StaticJsonDocument<200> doc;
void setup() {
myServo1.attach(8);
myServo2.attach(9);
myServo3.attach(10);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
deserializeJson (doc, Serial);
const char* angle1 = doc["servo1"];
const char* angle2 = doc["servo2"];
const char* angle3 = doc["servo3"];
myServo1.write(atoi(angle1));
myServo2.write(atoi(angle2));
myServo3.write(atoi(angle3));
delay(15);
}
}由于电子部分是完全正确的,并且代码没有输出错误,所以我不知道错误是什么。我的目标是移动Xojo上的滑块,该值由json通过串行监视器发送,由arduino接收并用作伺服移动的“角度”。提前谢谢。
发布于 2019-11-03 07:38:49
好的,我自己解决了它,你只需要在my servo.write中直接写"doc“和值,就像这样:
myServo.write(doc["servo1"]);https://stackoverflow.com/questions/58675623
复制相似问题