串口分析字符操作符,灵活的实现自动化控制。
本帖最后由 topdog 于 2021-6-13 20:53 编辑Arduino String可以分析串口读取的字符是何种操作符,一共十三种:
isAlphaNumeric 字母数字式
isAlpha 字母的
isAscii 美国信息交换标准码
isWhitespace 空白符
isControl 控制字符
isDigit 数字
isGraph 不是空格的可打印字符
isLowerCase 小写
isPrintable 打印
isPunct 标点符号
isSpace 空格符
isUpperCase 大写
isHexadecimalDigit 有效的十六进制数字
基于此我们可以更加灵活的把他们进行编组实现自动化的控制。试问:如果串口输入A1000,那么led亮1000ms,此时再输入2000,led可以再亮2000ms,随意改变了的点亮时间。如果输入B0,那么led就会熄灭。
流程图如下:
程序如下:
const int ledPin = 8;
int i;
String ReadString = "";
char LED = ' ';
boolean stringComplete = false;
void setup()
{
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop()
{
if (stringComplete)
{
if (LED == 'A' || i > 0)
{
digitalWrite(ledPin,HIGH);
delay(i);
digitalWrite(ledPin,LOW);
delay(i);
}
else if (LED == 'B' && i == 0)
{
digitalWrite(ledPin,LOW);
}
stringComplete = false;
ReadString = "";
LED = ' ';
}
}
void serialEvent()
{
while (Serial.available() > 0)
{
char inputing = Serial.read();
if (isDigit(inputing))
{
ReadString += inputing;
}
else if (inputing == '\n')
{
stringComplete = true;
i = ReadString.toInt();
}
else
LED = inputing;
}
}
页:
[1]