首页 > 解决方案 > 如何为此编写开关盒和串行读取?

问题描述

主题:使用串行库与 Masses ARDUINO 一起工作!

确定哪个类别将包括儿童,知道他或她的年龄:婴儿 (0-2)、儿童 (2-12)、青少年 (12-18);应采用开关设计。

我只需要代码,我认为 arduino 方案没有什么可放的!

有人可以展示一下代码的样子吗?我想是这样的!但我不能使用超过 9 个案例!如果我需要为年龄写 19 这不要打印出来

int age =0;
void setup()
{
  Serial.begin(9600);
}

void loop()
{
 Serial.println("\nIevadi berna vecumu diapazona no 0 lidz 18 :");
  while (Serial.available()==0);
 
  int age=Serial.read()-'0';
 Serial.println();

    switch(age){
    case 0 :
    Serial.println("baby");
    break;
    case 1:
    Serial.println("child");
    break;
    case 2 : 
    Serial.println("Teenager");
    break;
    
    }
}

标签: arduinoserial-portswitch-statement

解决方案


测试这段代码。Serial.read() 只读取一个字符(1 个字节),而 int 是 2 个字节。switch 只处理 '==' 条件,这里你必须使用 < 和 > 运算符。

int age =0;
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int age=0;
 Serial.println("\nIevadi berna vecumu diapazona no 0 lidz 18 :");
 while (Serial.available()==0);
  while (Serial.available()>0){
         age = Serial.parseInt();
  }

 Serial.println(age);
//switch not good. Use ifs, else if, and else. Personalize this conditions
    if(age<5){
    Serial.println("baby");
    }
    else if (age<18&&age>4){
    Serial.println("child");
    }
    else if (age>17){
    Serial.println("Teenager");
    
    }
}

祝你好运!


推荐阅读