2015-12-21 2 views
0

Я пытаюсь создать чат-бот с Arduino, который работает через последовательный порт. Он отправляет материал на мой Mac. У меня много проблем, ошибок и т. Д. Может ли кто-нибудь указать мне в правильном направлении? Вот мой код до сих пор. Я знаю, что это не идеально, но именно поэтому я пытаюсь учиться.Создание чата с Arduino

//error responses from 1 to 10 
void error11() { 
    Serial.println("What do you mean"); 
} 

void error10() { 
    Serial.println("I dont understand"); 
} 
void error9() { 
    Serial.println("My Programmer didnt give me a response for that please ask another question"); 
} 
void error8() { 
    Serial.println("?????"); 
} 
void error7() { 
    Serial.println("Huh??"); 
} 
void error6() { 
    Serial.println("Can not compute"); 
} 
void error5() { 
    Serial.println("Can you say that again"); 
} 
void error4() { 
    Serial.println("Im sorry what"); 
} 
void error3() { 
    Serial.println("Hmmm what"); 
} 
void error2() { 
    Serial.println("What"); 
} 
void error1() { 
    Serial.println("Sorry What Did You Say"); 
} 
// greeting responses from 1 to 10 
void greeting10() { 
    Serial.println("What can i do for you"); 
} 
void greeting9() { 
    Serial.println("Yo"); 
} 
void greeting8() { 
    Serial.println("Hello Master"); 
} 
void greeting7() { 
    Serial.println("Greetings!!"); 
} 
void greeting6() { 
    Serial.println("Sup"); 
} 
void greeting5() { 
    Serial.println("Hiya"); 
} 
void greeting4() { 
    Serial.println("hi"); 
} 
void greeting3() { 
    Serial.println("How is it going"); 
} 
void greeting2() { 
    Serial.println("What's up"); 
} 
void greeting1() { 
    Serial.println("hello Friend"); 
} 
String stringRead; 
long randNumber; 
void setup() { 
    Serial.begin(9600); 
} 

void loop() { 
    randNumber = random(4); 
    if (Serial.available()) { 
    stringRead = Serial.readStringUntil('\n'); 
    if(stringRead =="hello","Hello","HELLO") { 
     greeting8(); 
     if (Serial.available()) { 
     stringRead = Serial.readStringUntil('\n'); 
     if(stringRead =="hi","Hi","HI") { 
      greeting4(); 
     } 
     } else { 
     error3(); 
     } 
    } 
    } 
} 

Я действительно хочу иметь случайный ответ от 1 до 10, но я не мог заставить это работать. Любая помощь будет принята с благодарностью.

ответ

1

if(stringRead =="hello","Hello","HELLO") {

не способ сравнить несколько элементов. Вы должны использовать logical OR:

if(stringRead =="hello" || stringRead == "Hello" || stringRead == "HELLO") {

Или вы можете преобразовать строку в верхний регистр и делать только одно сравнение. См .: https://www.arduino.cc/en/Reference/StringToUpperCase

Смежные вопросы