- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 9 von 9

Thema: unverständliches Zeitverhalten zweier Arduinos

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Im Schaltbild vom Uno sind die Pins 0 und 1 auf jeden Fall mit denen vom zweiten Controller verbunden, das ist das IC neben dem USB-Stecker. Und beide Controller hängen an der selben Stromversorgung sind also immer beide an, egal ob das Board über USB oder anders versorgt wird.

    Aber wenn das kein Problem ist, dann ist ja gut.

    - - - Aktualisiert - - -

    Ansonsten hat der Code natürlich einige Probleme:

    Code:
    void loop() {
       
      if (Serial.available())  
      {
         // ...
                                                     
      }    
    
    
      if (Blinken == "ja") {     
        digitalWrite(ausgang, HIGH);
    
        Serial.println("ja");    //    B sendet an A  ein     ja
      }
    Sendet in jedem Loop Durchlauf ein "ja", bis wieder was empfangen wird, denn Blinken ändert sich ja nicht dadurch, dass es mit etwas verglichen wird.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Im Schaltbild vom Uno sind die Pins 0 und 1 auf jeden Fall mit denen vom zweiten Controller verbunden, das ist das IC neben dem USB-Stecker. Und beide Controller hängen an der selben Stromversorgung sind also immer beide an, egal ob das Board über USB oder anders versorgt wird.
    Das kann ich in dem Schaltbild auch so erkennen. Aber es gibt ja kein Verbot, 0 und 1 nicht zu verwenden, nur eben nicht gleichzeitig mit USB.

    Aber dein letzter Hinweis ist gut. Das werde ich mal ändern. Das hatte ich bisher übersehen.

    - - - Aktualisiert - - -

    Danke, das war's.

    Nun kommen am Mega auf dem SM die ja's und nein's völlig gleichmäßig, was vorher nicht der Fall war. Was da ankam war ziemlich durcheinander.

    Außerdem klappt es nun auch wenn die USB's gesteckt sind.
    Selbst wenn ich am Uno-Programm den SM öffne ist noch alles ok, solange ich aus dem Programm keine anderen Sendebefehle gebe und das ist ja dann auch verständlich!!

    Danke und Gruß

    fredyxx

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Diese Art von Fehler ist übrigens der Grund, warum ich dem readStringUntil sehr skeptisch gegenüberstehe.

    Wenn mal viel mehr ankommt als gedacht, empfängt der Arduino bis der Speicher voll ist und er stehen bleibt.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Was wäre die Alternative?

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Also wenn man sich mal anschaut, wie readStringUntil in der Arduino IDE implementiert ist
    Code:
    String Stream::readStringUntil(char terminator)
    {
      String ret;
      int c = timedRead();
      while (c >= 0 && c != terminator)
      {
        ret += (char)c;
        c = timedRead();
      }
      return ret;
    }
    dann kann man sich etwas ähnliches auch selber bauen.

    Auch das da verwendete timedRead ist keine Gehirnchirugie
    Code:
    int Stream::timedRead()
    {
      int c;
      _startMillis = millis();
      do {
        c = read();
        if (c >= 0) return c;
      } while(millis() - _startMillis < _timeout);
      return -1;     // -1 indicates timeout
    }
    Man kann das also recht einfach dem eigenen Protokoll anpassen und dabei auch mitzählen, wie viele Zeichen man schon gelesen hat. Schickt einem da einer zuviel, schmeißt man es einfach weg. Kommt nach der eingelesenen Zeile noch was und man hat das eingentlich nicht erwartet, kann man das auch behandeln.

    Man kann auch "spionieren", was da noch kommt. Es gibt auch ein Serial.peek(). Das arbeitet wie read(), löscht das Zeichen aber nicht aus dem Schnittstellenpuffer.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Das muss ich erst mal verdauen!!

Ähnliche Themen

  1. Peer to Peer Kommunikation über NFC mit zwei Arduinos
    Von smalldevice im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 26.10.2015, 13:36
  2. Genuino: Offizielle Arduinos jetzt auch aus Deutschland und Italien
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 18.10.2015, 09:40
  3. IO: Arduinos verbinden
    Von Adleo im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 01.02.2014, 11:20
  4. eeprom 24C16 unverständliches problem
    Von _maddin im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 06.08.2009, 20:51
  5. Unverständliches Problem mit INT0 / INT1
    Von popi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 04.09.2008, 14:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen