Serial Communication

Hallo, ich habe gerade ein ziemlich großes Problem mit einer einfachen Serial Communication. Ich muss nämlich ein Schulprojekt mit Arduino machen und hab leider überhaupt keine Vorkenntnisse :( Als Idee hab ich mir ein einfaches Frage/Statement -> Antwort Prinzip gedacht Also das ich etwas in die Zeile beim Serial Monitor reinschreib und das jenachdem was da steht die dazupassende Antwort rauskommt.

void setup() { Serial.begin(9600);

}

void loop(){ if(Serial.read()==("Frage/Statement"){ Serial.println("Antwort"); } delay(500); }

Leider funktioniert das überhaupt nicht :( Tut mir Leid das ich einfach so reinplatze aber ich bekomm einfach, obwohl ich dem Internet meine Seele verkauft hab, nirgends eine passende Antwort... Wer sehr nett wenn mir jemand weiterhelfen könnte... Liebe Grüße

Serial.read() liest immer nur 1 Zeichen. In C gibt es keine Strings wie in anderen Programmiersprachen. Darum kannst Du nicht einfach 2 Strings vergleichen. Informiere Dich über Strings in C. Wenn Du Strings Verwendest läuft das RAM schnell voll und der Arduino blockiert. Grüße Uwe

Danke für die Antwort aber ich weiß leider immernoch nich wie ich dieses Problem angehen kann

Also das ich etwas in die Zeile beim Serial Monitor reinschreib und das jenachdem was da steht die dazupassende Antwort rauskommt.

Wenn du selbst definieren kannst was rein und raus geht, ist es einfach:

Am einfachsten sind einbuchstabige Kommandos, z.B. :

v - Version ? - Liste aller Kommandos m - aktuelle Zeit (millis() ) s - Sekunden seit Start

Am schönsten hierfür in c ist ein switch:

void loop ()
{
   int q = Serial.read();
   switch (q) {
    case -1 : return;  // keine Eingabe
    case 'v' : Serial.println(" Version 0.0"); break;
    // ... usw
    case 'm' : Serial.println(millis()); break;
    default: break;  // alternativ: Fehlermeldung
   }
}

break; ( oder return; wie bei -1 ) nicht vergessen

habs am Ende doch nich hinbekommen und mach mein Projekt über was anderes… :frowning:
Trotzdem dankeschön für alle Antworten (:

Schambel: habs am Ende doch nich hinbekommen und mach mein Projekt über was anderes... :( Trotzdem dankeschön für alle Antworten (:

Wobei es über "Kommandos von der seriellen Schnittstelle auswerten" natürlich nicht nur Antworten unter Deiner Frage gibt, sondern auch Antworten zu ganz vielen anderen Postings und Fragen hier im Forum. Quasi dieselben Fragen kommen ja mehrmals pro Monat immer wieder vor. Und oft gibt es Antworten. Manchmal sogar mit Beispielcode.

Z.B. von mir in http://arduino.cc/forum/index.php/topic,136027.0.html Reply #3 on: December 08, 2012, 04:33:25 PM »

Oder von mir zu einer noch spezielleren Auswertung in http://arduino.cc/forum/index.php/topic,137669.0.html Reply #4 on: December 16, 2012, 07:58:37 PM

Es ist in diesem Forum nicht verboten, auch "alte" Threads und "alte" Postings zu lesen, wenn es um ein Thema geht, zu dem schon zig alte Fragen in der Messagebase des Forums existieren.