将数字从 Processing 发送到 Arduino
Sending numbers from Processing to Arduino
这是我的第一个问题,所以我会尽力解释清楚。
我的目标是通过处理从我的网站收集一个数字并将其发送到我的 arduino。我尝试在数字 1 进来时打开我的 LED,或者在数字 0 进来时关闭它。
到目前为止,我设法从我的网站上收集到了号码。
当我用 arduino 串行监视器向 arduino 发送一个数字时,arduino 代码也可以工作。
不工作的部分是将数字从处理发送到arduino。 led只闪烁一次。
这是我的处理代码:
import processing.serial.*;
Serial ComPort;
String input[];
void setup(){
String portName = Serial.list() [0];
ComPort = new Serial(this, portName, 9600);
ComPort.bufferUntil('\n');
input = loadStrings("website-adresse");
if(input.length != 0){
String s_current = input[0];
int current = Integer.parseInt(s_current);
println(current);
delay(2000);
ComPort.write(current);
}
}
这是我的arduino代码:
void setup() {
Serial.begin(9600); // Baudrate, muss mit PC übereinstimmen
pinMode(13,OUTPUT);
}
void loop() {
int c = Serial.read();
switch (c) {
case -1: return; // nichts neues gekommen, loop sofort beenden
case '0' :
digitalWrite(13, LOW);
break;
case '1' :
digitalWrite(13, HIGH);
break;
}
}
我是编程新手,我的英语不是很好所以我很抱歉。
感谢您的帮助
珍妮你好
主要问题是通过 ComPort
发送值 0 (0x00)
和 1 (0x01)
,但您期望 '0' (0x30)
和 '1' (0x31)
。
如果您将大小写更改为 0
和 1
而不是 '0'
和 '1'
它将起作用(但这些值在串行监视器中不起作用,除非你会有两种变体)
这是我的第一个问题,所以我会尽力解释清楚。 我的目标是通过处理从我的网站收集一个数字并将其发送到我的 arduino。我尝试在数字 1 进来时打开我的 LED,或者在数字 0 进来时关闭它。
到目前为止,我设法从我的网站上收集到了号码。 当我用 arduino 串行监视器向 arduino 发送一个数字时,arduino 代码也可以工作。
不工作的部分是将数字从处理发送到arduino。 led只闪烁一次。
这是我的处理代码:
import processing.serial.*;
Serial ComPort;
String input[];
void setup(){
String portName = Serial.list() [0];
ComPort = new Serial(this, portName, 9600);
ComPort.bufferUntil('\n');
input = loadStrings("website-adresse");
if(input.length != 0){
String s_current = input[0];
int current = Integer.parseInt(s_current);
println(current);
delay(2000);
ComPort.write(current);
}
}
这是我的arduino代码:
void setup() {
Serial.begin(9600); // Baudrate, muss mit PC übereinstimmen
pinMode(13,OUTPUT);
}
void loop() {
int c = Serial.read();
switch (c) {
case -1: return; // nichts neues gekommen, loop sofort beenden
case '0' :
digitalWrite(13, LOW);
break;
case '1' :
digitalWrite(13, HIGH);
break;
}
}
我是编程新手,我的英语不是很好所以我很抱歉。
感谢您的帮助
珍妮你好
主要问题是通过 ComPort
发送值 0 (0x00)
和 1 (0x01)
,但您期望 '0' (0x30)
和 '1' (0x31)
。
如果您将大小写更改为 0
和 1
而不是 '0'
和 '1'
它将起作用(但这些值在串行监视器中不起作用,除非你会有两种变体)