Arduino序列返回未知值
所以现在这就是我的代码,它试图读取我的LED条的不同RGB值 但是,当我到达请求绿色值的位置时,有一个未知字节通过,它会自动直接转到绿色()中的else部分 我还没有输入任何东西,但Serial说那里有东西。这是什么Arduino序列返回未知值,arduino,serial-communication,Arduino,Serial Communication,所以现在这就是我的代码,它试图读取我的LED条的不同RGB值 但是,当我到达请求绿色值的位置时,有一个未知字节通过,它会自动直接转到绿色()中的else部分 我还没有输入任何东西,但Serial说那里有东西。这是什么 #define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // make this higher to slow down void setup() { pinMode(R
#define REDPIN 5
#define GREENPIN 6
#define BLUEPIN 3
#define FADESPEED 5 // make this higher to slow down
void setup() {
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);
Serial.begin(9600);
Serial.println("Starting Program....");
start();
}
int g = 0;
char val = 0;
String valstr = "";
void loop(){
if(Serial.available() > 0){
val = Serial.read();
if(val != '\n'){
valstr += val;
}
else{
Serial.println(valstr);
if (valstr != "Yes"){
valstr = "";
start();
}
else{
Serial.print("Now Asking for RGB values: \n");
Serial.println("What is green value: ");
green();
//
//
valstr = "";
// start();
}
valstr = "";
// green();
}
}
}
void start(){
Serial.print("Do you want a new color? Enter Yes/No: ");
}
char gbyte = 0;
String gstr = "";
boolean not_number;
int gnum = 256;
void green(){
if(Serial.available() > 0)
gbyte = Serial.read();
if ((gbyte >= '0') && (gbyte <= '9')) {
gstr += gbyte;
}
else if(gbyte == ' '){
Serial.println("This is not a number! \n");
Serial.println("Enter a valid number!");
gstr = "";
gbyte = Serial.read();
}
else{
Serial.println(gstr);
Serial.println("This is a number");
}
gstr += gbyte;
// gnum = gstr.toInt();
// if((gnum >= 0) && (gnum <= 255))
#定义REDPIN 5
#定义绿针6
#定义BLUEPIN 3
#定义FADESPEED 5//将其调高以降低速度
无效设置(){
引脚模式(红色引脚,输出);
引脚模式(绿色引脚,输出);
引脚模式(蓝引脚,输出);
Serial.begin(9600);
Serial.println(“启动程序…”);
start();
}
int g=0;
char-val=0;
字符串valstr=“”;
void loop(){
如果(Serial.available()>0){
val=Serial.read();
如果(val!='\n'){
VALTR+=val;
}
否则{
Serial.println(valstr);
如果(VALTR!=“是”){
valstr=“”;
start();
}
否则{
Serial.print(“现在请求RGB值:\n”);
Serial.println(“什么是绿色值:”);
绿色();
//
//
valstr=“”;
//start();
}
valstr=“”;
//绿色();
}
}
}
void start(){
Serial.print(“您想要新颜色吗?输入是/否:”);
}
字符字节=0;
字符串gstr=“”;
布尔非布尔数;
int gnum=256;
void green(){
如果(Serial.available()>0)
gbyte=Serial.read();
如果((gbyte>='0')&&(gbyte=0)&&(gnum我认为问题在于从串行端口解析整数。Arduino有一个内置函数用于此: