读取串口输入数据后,怎样让延时时间自动和输入串口数to...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2564|回复: 1

[未解决] 读取串口输入数据后,怎样让延时时间自动和输入串口数to...

[复制链接]
发表于 2021-6-7 15:05 | 显示全部楼层 |阅读模式
读取串口输入数据后,怎样让延时时间自动和输入串口数同步:我读取了串口输入数据,我想让led灯延时输入的数据,延时中可以输入新的数据,大神们代码怎么写。
int ledPin = 8;
String inputString = "";         // a String to hold incoming data
bool stringComplete = false;  // whether the string is complete

void setup() {
  // initialize serial:
  Serial.begin(9600);
  // reserve 200 bytes for the inputString:
  inputString.reserve(200);
  pinMode(ledPin,OUTPUT);
}

void loop() {
  // 换行符到达时条件为真:
  if (stringComplete) {  
    long result = 0; //程序执行秒数
    char charOne = (char) inputString.charAt(0);//返回字符串中第一个字符
    String subString = inputString.substring(1);//从截取字符串
    Serial.print("截取字符串的值:");
    Serial.println(subString);
    int timeNumber = subString.toInt();     //返回字符串中数字为整数

    if(charOne == 'A'){               //当字符等于A时闪亮
      while(result >= timeNumber ){
        long start1 = millis();  //millis();返回程序当前运行的毫秒数
        digitalWrite(ledPin,HIGH);
        delayMicroseconds(100000);
        digitalWrite(ledPin,LOW);
        delayMicroseconds(100000);
        int end1 = millis();
        long ms =  end1-start1;    //一次循环的毫秒数
        result = result + ms;    //总秒数
      }
    }else if(charOne == 'B'){       //当等于B是设置为灯灭
      digitalWrite(ledPin,LOW);
    }
    // clear the string:
    inputString = "";
    stringComplete = false;
  }else{                        //没有输入时执行
    Serial.println("当前没有输入指令!请输入:");
//    digitalWrite(ledPin,HIGH);    //led常亮
  }
}

void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag so the main loop can
    // do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }

  }
}

 楼主| 发表于 2021-6-7 15:12 | 显示全部楼层
大神请救救我
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 05:36 , Processed in 0.091172 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表