java - 将数字从Processing发送到Arduino

标签 java arduino processing arduino-uno

这是我的第一个问题,所以我尽力解释得足够好。 我的目标是通过处理从我的网站收集一个数字并将其发送到我的arduino。我尝试在数字 1 输入时打开 LED,或在数字 0 输入时关闭 LED。

到目前为止,我设法从我的网站收集了这个号码。 当我用 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)

如果您将大小写更改为期望 01 而不是 '0''1'会起作用(但这些值在串行监视器中不起作用,除非您有两种变体)

关于java - 将数字从Processing发送到Arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41221190/

相关文章:

java - 2 个 Java 类中的公共(public)私有(private)变量连接问题

java - Audio LoopProcessing.org(Java/Minim 声音库)

java - 如何使用 Java 点亮 Arduino Mega 二极管?

android - 在Android的Processing中处理MP3声音(需要停止)

javascript - 处理可汗学院 vs 处理 2

java - 正则表达式检查 Android 中的多个条件

java - Eclipse 在启动时不断更改文件名

java - 显式转换运算符和多态性

java - Arduino - Serial.read() 无法读取两位数数据?

c++ - 英语和希腊语 UTF 字符差异