Kommunikation zwischen zwei Arduinos

Hier keine Frage zum Aufbau der ist ja klar und Kommunikation läuft auch. Wenn ich das richtig verstanden hab sind die RX TX Pins die gleichen wie bei USB-Verbindung. Könnte das zu Probleme führen beim Hochladen der Sketche?

Bzw. gibts sinnvollere Methode? Übertragen werden sollen ne handvoll FLOAT's (Sensoren-Werte) und ne handvoll INT's (tag, monat, jahr, stunde,minute). Also nur in eine Richtung, Nano-A fragt alle Sensoren ab und überträgt zu Nano-B der diese dann weiter verarbeitet. (Sonst war Stromfluss auf Nano-A und Speicherverbrauch zu hoch).

Du kannst dir mit SoftwareSerial oder AltSoftSerial eine serielle Schnittstelle in Software emulieren. Dabei beschränkt man sich besser auf relative niedrige Baudraten aber das reicht bei dir völlig.

Du könntest auch I2C verwenden. (wenn die Kabel nicht zu lang sind)

Die Arduinos sind sozusagen nebeneinander: Kabellänge wäre keine 10cm. Ich hab zu I2C nicht sinnvolles an Schaltbild Anleitung gefunden.

Ich schicke INT\tINT\tINT\tINT\t\INT\tFLOAT\tFLOAT\tFLOAT\tFLOAT\tFLOAT\n kann ich wenn einlese mit Serial.parseInt() und dann normales read() für das tab und dann wieder parseInt und das entsprechend 5mal und dann parseFloat() entsprechend?

Paddy65305: Ich hab zu I2C nicht sinnvolles an Schaltbild Anleitung gefunden.

Im Anschlußbild sind es A4 (SDA) und A5 (SCL) wie beim UNO, wobei SDA mit SDA und SCL mit SCL verbunden werden, jeweils mit Pullup-Widerständen von 4,7 kOhm (die Notwendigkeit und die Werte werden unterschiedlich angegeben, bei mir geht es mit den angegebenen Werten). Bei mir hat auf einem ATtiny85 "den Slave so implementiert wie man es von einem IC kennt" geholfen.

Viel Erfolg!

agmue: Bei mir hat auf einem ATtiny85 "den Slave so implementiert wie man es von einem IC kennt" geholfen.

Wobei das eigentlich auch anders gehen sollte. Theoretisch kann man mehrere Bytes direkt hintereinander übertragen. Der Code ist eher ein Workaround weil das anders nicht geklappt hat und nach dem ersten read() immer -1 zurück kam, obwohl laut requestFrom() mehrere Bytes übertragen würden. Wieso weiß ich nicht.

Wenn man immer nur stur die selben Daten überträgt, braucht man das nicht so zu machen. parseInt()/parseFloat() sollte da gehen, aber ist halt blockierend. Ich mache solche Konvertierungen lieber per Hand.

Die Tabs sollte man aber weglassen! Der I2C Eingangspuffer ist mit 32 Bytes nicht sehr groß. 5 * 2 + 5 * 4 Bytes passen da geradeso rein.