如何从Serial.read比较字符串()? [英] How to compare string from Serial.read()?

查看:329
本文介绍了如何从Serial.read比较字符串()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面我有,我从这个论坛,我跟着通过。它没有为我工作,但他们声称,code是罚款。我已经试了好几种字符串比较的方法,如 string.equals(串)和标准 == 运营商,仍与没有运气。

  INT ledPin = 13;
串readString;无效设置(){
  Serial.begin(9600);
  pinMode(ledPin,OUTPUT);
  Serial.println(开/关测试0021系列); //这样我就可以跟踪
}空隙环(){
  而(Serial.available()){
    延迟(3);
    焦C = Serial.read();
    readString + = C;
  }
  如果(readString.length()大于0){
    如果(readString ==上){
      Serial.println(接通);
      digitalWrite(ledPin,HIGH);
    }
    如果(readString ==关){
      digitalWrite(ledPin,LOW);
    }
    readString =;
  }
}


我能够通过简单地添加 readString.trim()来解决昨晚问题;字符串比较之前 。这是因为将有换行符其中id没有在Arduino的控制台打印出任何东西。

我把函数如下我的code:

  INT ledPin = 13;
串readString;无效设置(){
  Serial.begin(9600);
  pinMode(ledPin,OUTPUT);
  Serial.println(开/关测试0021系列); //这样我就可以跟踪
}空隙环(){  而(Serial.available()){
    延迟(3);
    焦C = Serial.read();
    readString + = C;
  }
  readString.trim();
  如果(readString.length()大于0){
    如果(readString ==上){
      Serial.println(接通);
      digitalWrite(ledPin,HIGH);
    }
    如果(readString ==关)
    {
      Serial.println(关闭);
      digitalWrite(ledPin,LOW);
    }    readString =;
  }
}

I have this code below where I got from this forum that I followed through. It did not work for me but they claim that the code is fine. I already tried several string comparison methods such as string.equals(string) and the standard == operator, still with no luck.

int ledPin = 13;
String readString;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT); 
  Serial.println("serial on/off test 0021"); // so I can keep track
}

void loop() {
  while (Serial.available()) {
    delay(3);  
    char c = Serial.read();
    readString += c; 
  }
  if (readString.length() >0) {
    if (readString == "on") {
      Serial.println("switching on");
      digitalWrite(ledPin, HIGH);
    }
    if (readString == "off") {
      digitalWrite(ledPin, LOW);
    }
    readString="";
  } 
}

解决方案

I am able to solve last night problem by simply adding readString.trim(); before string comparison. This is because there will be newline character where id did not print anything in the arduino console.

I place the function as in my code below:

int ledPin = 13;
String readString;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT); 
  Serial.println("serial on/off test 0021"); // so I can keep track
}

void loop() {

  while (Serial.available()) {
    delay(3);  
    char c = Serial.read();
    readString += c; 
  }
  readString.trim();
  if (readString.length() >0) {
    if (readString == "on"){
      Serial.println("switching on");
      digitalWrite(ledPin, HIGH);
    }
    if (readString == "off")
    {
      Serial.println("switching off");
      digitalWrite(ledPin, LOW);
    }

    readString="";
  } 
}

这篇关于如何从Serial.read比较字符串()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆