问题描述
我正在处理处理和 arduino 接口。在某种程度上,我是成功的并且使用 Processing 3.0 作为用户界面我能够向 arduino 发送命令。但是,我只能发送一个值,而 arduino 会同时为所有 3 个电机在该特定值上运行步进电机。 但是,我想以不同的速度控制所有 3 个电机。为此,我需要将 3 个不同的值从 Processing 转换为 Arduino。 我打算使用一个数组,然后在 arduino 中拆分该数组。
我的处理代码如下:
import controlP5.*;
import processing.serial.*; // when we add any value in GUI it will go the the arduino through serial
Serial port;
ControlP5 cp5;
PFont font; //for enlarging the font size
String textA;
String textB;
String textC;
String q;
void setup(){
size(900,500); //(width,height)
printArray(Serial.list()); //prints all available Serial port
//port = new Serial(this,"COM5",115200);
//lets add button to the window
cp5 = new ControlP5(this);
font = createFont("Ebrima bold",20); // custom fonts for button and title
cp5.addTextfield("Motor 1").setPosition(150,300).setSize(80,50).setAutoClear(false)
.setFont(font)
.setColorBackground(color(50,113,20));
//Processing text input Box
//textBox1.draw();
cp5.addTextfield("Motor 2")
.setPosition(450,300)
.setSize(80,50)
.setFont(font)
.setColorBackground(color(50,20));
cp5.addTextfield("Motor 3")
.setPosition(750,300)
.setSize(80,50)
.setFont(font)
.setColorBackground(color(50,20));
cp5.addBang("Submit").setPosition(450,400).setSize(100,50);
}
void draw(){
background(10,100,80) ; //background colour (0 to 255) or (r,b,g)
fill(250,55,0); //(text colour(r,g,b)
//Line 5
fill(0,b)
font = createFont("Ebrima",18);
textFont(font);
text(" Please Choose Stepper Motors Speed Below:",150,250);
}
void Submit () {
textA=cp5.get(Textfield.class,"Motor 1").getText();
textB=cp5.get(Textfield.class,"Motor 2").getText();
textC=cp5.get(Textfield.class,"Motor 3").getText();
q = textA+textB+textC;
String[] data1 = textA;
String data = concat(textA,textB,textC);
String data = join(data,',')
port.write(data);
}
但是,我无法根据可以发送到串行端口的用户输入制作数组。
需要这方面的帮助,请。
解决方法
我是一个绝对的新手,但也许它是这样工作的:
String[] data1 = new String[3];
data1[0]=textA;
data1[1]=textB;
data1[2]=textC;
String data = join(data1,',');