#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");
}
}
Удачи!