Yak*_*idi 6 serial-port arduino
下面我有我来自哪里得到这个代码这个论坛,我跟着通过.它不适合我,但他们声称代码很好.我已经尝试了几种字符串比较方法,例如string.equals(string)和标准==运算符,但仍然没有运气.
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="";
}
}
Run Code Online (Sandbox Code Playgroud)
Yak*_*idi 13
我可以通过简单地readString.trim();在字符串比较之前添加来解决昨晚的问题.这是因为会有一个换行符,其中id没有在arduino控制台中打印任何内容.
我将函数放在下面的代码中:
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="";
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我只用' '(单)而不是" "(双)
char c = Serial.read();
if (c == '1'){ //do something}
Run Code Online (Sandbox Code Playgroud)
小智 5
为什么不使用Serial.readString();?
尝试这个..
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available()){
String ch;
ch = Serial.readString();
ch.trim();
if(ch=="on"||ch=="ON"){
digitalWrite(13, HIGH);
}
else if(ch=="off"||ch=="OFF"){
digitalWrite(13, LOW);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35143 次 |
| 最近记录: |