Как записать регистр переключения и последовательное чтение для этого?

#arduino #serial-port #switch-statement

#arduino #последовательный порт #switch-statement

Вопрос:

Тема: Работа с массовым 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;
    
    }
}
 

Ответ №1:

Протестируйте этот код. 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<18amp;amp;age>4){
    Serial.println("child");
    }
    else if (age>17){
    Serial.println("Teenager");
    
    }
}
 

Удачи!