如何从Serial.read比较字符串()? [英] How to compare string from Serial.read()?
问题描述
下面我有,我从这个论坛这code一>,我跟着通过。它没有为我工作,但他们声称,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屋!