我在处理中收集了一些字符串信息,并尝试将其发送给Arduino。 我正在处理发送信息,但是,我在arduino中的输出很奇怪。 我收到类似“ 77789 ...”的数字。 我不确定自己在做什么错。 我需要做的就是,基本上是从处理过程中得到一个字符串,并将其发送到arduino以在LCD屏幕上显示。

任何帮助,将不胜感激。

这是我的处理代码:

import processing.serial.*;

Serial myPort;

XML MSFTxml; // loading Query

XML MSFT; // results of the query
XML row; // first row in the query

XML symbol; // Name of the stock
String symbolTxt;


String val;

void setup() {
  size(200,200);
  myPort = new Serial(this,"COM3", 9600);

}

void draw() {

updateXMLCall();

delay(10000);
}
void updateXMLCall () {

   MSFTxml = loadXML("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%27http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3DMSFT%26f%3Dsl1d1t1c1ohgv%26e%3D.csv%27%20and%20columns%3D%27symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2%27&format=xml&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys");  
   MSFT = MSFTxml.getChild("results"); //Getting the first tag "results" in the query MSFT
   row= MSFT.getChild("row"); //first child tag "row"
   symbol = row.getChild("symbol"); //name of the stock   
   symbolTxt = symbol.getContent().toString(); //converting the name of the stock into a string
   myPort.write(symbolTxt);
   println(symbolTxt);
}

这是我的arduino代码:

#include <Wire.h>
#include "rgb_lcd.h"
rgb_lcd lcd;

const int colorR = 50;
const int colorG = 0;
const int colorB = 0;

void setup()
{
  Serial.begin(9600);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.setRGB(colorR, colorG, colorB);
  // Print a message to the LCD.
  lcd.setCursor(0, 1);
}

void loop()
{  
  String content = "";
  if (Serial.available()) {
    while (Serial.available()) {
      content += Serial.read();
      lcd.print(content);
      Serial.print(content);
      lcd.setCursor(0, 1);
    }
  }
  delay(100);
}

===============>>#1 票数:1 已采纳

的问题是使用的+=用C +=不Concat的字符串。 您需要将来自Serial.read()char获取连接起来,例如: 使用Arduino将serial.read()转换为可用的字符串?

  ask by tailedmouse translate from so

未解决问题?本站智能推荐:

3回复

什么都不会从处理发送到Arduino

我有一个问题,我知道我的蓝牙模块(HC-05)已连接到处理草图,但是从处理草图中什么也没收到,为什么? 没有错误消息,但是信息永远不会发送出去,因为我在Arduino上从未见过,它将被打印到串行监视器。 完整的处理代码: import processing.serial.*; im
1回复

Arduino +“ if”语句中的处理和字符串信息

我正在使用arduino从秤读取信息到Processing。 现在,我希望某些事情根据注册的重量而发生。 权重以字符串形式读出。 我发现>=不适用于字符串。 我已经尝试过if (val >= str ("20.00"))但是那也不起作用。 我也尝试过使用float sc
1回复

Arduino处理,字符串ArrayIndexOutOfBoundsException:18

我正在开发一个程序,该程序将从Arduino发送消息到Processing,将它们作为十进制数从arduino打印到arduino的串行端口,然后在处理中以字符串数组的形式提取它们。 我得到的问题是:“ ArrayIndexOutOfBounds:18”,它突出显示了dlay = Intege
1回复

如何将处理中生成的字符串数组打印到Arduino

我正在尝试将处理中生成的字符串发送到Arduino,以便可以将其打印在LCD屏幕上。 使用此方法,LCD上无任何显示。 我尝试了各种方法,根据我的研究,我正在尝试的方法是:
1回复

处理字符串到数组

我想从arduino读取四个循环测量的传感器,并想使用Processing显示这些值。 我的问题是,当我想将数据字符串转换成数组时,在处理代码中收到错误消息:“找不到类或名为'Array'的类型”。 有人知道如何解决吗?
1回复

在Arduino中将字节*转换为字符串

我正在尝试使用Arduino Uno和ENC28j60以太网模块从服务器请求基本信息。 我一直在使用webclient.ino,这是Ethercard库中的一个示例。 我可以获取数据,但是很难将其转换为字符串。 数据作为指针字节(?)(如byte *)输入,我可以轻松地将其转换为const
1回复

使用C编程语言而不是Arduino处理

如何在不使用“处理编程语言”的情况下使用“普通C”对Arduino进行编程? 我想通过将Arduino与嵌入式系统一起使用来提高C编程技能。 我使用C ++编写代码的能力非常有限,并且我希望使用“ C”编写自己的Arduino库,以避免使用类和OOP。 在我看来,处理看起来像Jav
1回复

将字符串从处理发送到arduino

我正在尝试使用处理环境在PC和Arduino之间建立通信,但是Arduino似乎没有收到我发送的任何消息。 我仔细检查了一下,知道我可以从Arduino接收消息,但是什么也发不回来。 有谁知道如何解决这一问题? 这是我要处理的测试代码: 这是我的Arduino测试代码:
1回复

在标准固件库中添加delayMicroseconds函数,以便通过处理运行Arduino

我正在使用标准的firmata与Java Processing接口并运行一个arduino项目。 用于与Java接口处理的Arduino类在arduino板上没有delayMicroseconds或任何其他延迟的方法。 在大多数示例中,您需要在Java环境中使用延迟技术,但是这些技术都以毫秒
5回复

Arduino无线选项

我目前正在为我的Arduino和计算机开发无线解决方案。 我正在尝试将发射器连接到我的计算机,将接收器连接到我的Arduino。 我见过很多Arduino到Arduino通信的例子,但没有用于计算机到Arduino的例子。 我需要将变送器与我的计算机接口,PIC? 任何见解或任何链接