Go Down

Topic: Drei Arduinos miteinander verbinden (Read 6933 times) previous topic - next topic

Techniker89

Hallo,

mal wieder habe ich kleines Problem:
Ich möchte gern zwei Arduinos mit einem zentralen dritten verbinden. Der Arduino in der Mitte ist jeweils über TX0 (Pin 1) und TX3 (Pin 14) mit einem anderen verbunden. Massen sind ebenfalls verbunden. Allerdings scheint der Master nur über den TX0-Pin Daten zu senden - bei TX3 funktioniert es nicht. Die beiden anderen Arduinos sind richtig programmiert, denn es funktioniert wenn ich TX0 mit TX3 vertausche.

combie

Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

Techniker89

Na dann bin ich ja beruhigt...
Wenigstens einer, der mich verstehen kann!

gregorss

mal wieder habe ich kleines Problem: ...
Was für Arduinos sind da im Spiel? Wie sieht der Sketch aus, mit dem es nicht funktioniert?

Gruß

Gregor
„Ich glaube, ich leg' mich noch mal hin", sagte das Bit.

Techniker89

Hallo,

ich habe drei Mega 2560.

für den Master:
Code: [Select]
void setup(){

Serial.begin(9600);}

void loop(){

if(B23 == LOW) Serial.print('A');
}



jeweils für die anderen beiden:
Code: [Select]

void setup(){

Serial.begin(9600);}

void loop(){
if(Serial.available())  {
  i = Serial.read();
}
if(i=='A')  B23 = LOW;
if(B23 == LOW)  digitalWrite(rot23, LOW);

combie

Na dann bin ich ja beruhigt...
Wenigstens einer, der mich verstehen kann!
Ja, ich kann das auch nicht leiden, wenn meine Arduinos mir nicht gehorchen wollen!

Meistens findet sich das Problem dann, im OSI Schichtenmodell, auf Ebene 8.


Quote
für den Master:
Quote
jeweils für die anderen beiden:
Serial ist mit dem 16U2 verbunden, darf also nicht verwendet werden.

Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

michael_x

Quote
Serial ist mit dem 16U2 verbunden, darf also nicht verwendet werden.
Das würde ich nicht so krass formulieren. Aber bei Megas mit so vielen Seriellen Schnittstellen wäre es blöd.

Warum verwendest du im Master nur Serial, wenn du behauptest, du wolltest mit 2 Slave-Arduinos kommunizieren? 
Warum verwendest du Serial, wenn du auf TX3 senden willst?

combie

#7
Feb 01, 2017, 06:36 pm Last Edit: Feb 01, 2017, 06:40 pm by combie
Quote
Das würde ich nicht so krass formulieren.
Klar, kann man den 16U2 im Reset halten, aber dann ist USB auch tot.
Will man das?
KA!
(ist da überhaupt ein 16U2 drauf?)

Nee..
Ich glaube, man sollte das erstmal "flach" angehen, also Serial ignorieren.
Und wenn dann alle anderen Seriellen "verbraucht" sind, kann man ja nochmal nachdenken...


Quote
Warum verwendest du im Master nur Serial, wenn du behauptest, du wolltest mit 2 Slave-Arduinos kommunizieren? 
Warum verwendest du Serial, wenn du auf TX3 senden willst?
Ich glaube, du sollst ihm das Programm schreiben!
 :o  :o  :o
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

agmue

Ein Blick in den Schaltplan kann ja so informativ sein ;D

(ist da überhaupt ein 16U2 drauf?)
Ja, ATMEGA16U2-MU.

@Techniker89: Die serielle Schnittstelle ist im Unterschied zu I2C nicht busfähig. Der Mega 2560 hat aber drei freie, nicht durch USB verwendete serielle Schnittstellen, die mittels Serial1, Serial2 und Serial3 angesprochen werden können. Siehe "Input and Output" und Serial. So kannst Du sternförmig verdrahten und kommunizieren.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

combie

#9
Feb 01, 2017, 07:25 pm Last Edit: Feb 01, 2017, 07:26 pm by combie
Quote
Ja, ATMEGA16U2-MU.
Jain...

Und der alte, hat einen 8U2 drauf....
(Aber, das tut hier nichts zur Sache)

Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

agmue

Und der alte, hat einen 8U2 drauf....
Mir war nicht klar, daß es den alten noch zu kaufen gibt. Also meine Aussage gilt für R3.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

combie

Quote
noch zu kaufen gibt
Das weiß ich auch nicht!
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

michael_x

Selbst wenn ein 16U2, 8U2 oder auch CH340 dran ist, könnte man direkt an TX0 und GND was anschliessen. (Wenn man es müsste)
Aber, wie schon mehrfach erwähnt, muss man ja nicht.

Wenn es wirklich nur drum ginge, vom Master beiden Empfängern das gleiche zu senden und nichts zu lesen, könnte man sternförmig TX3 mit beiden RX1 verbinden. Und bräuchte
   Serial3.println("Hallo Ihr beiden"); 
nur einmal zu senden.

agmue

#13
Feb 01, 2017, 09:12 pm Last Edit: Feb 01, 2017, 09:14 pm by agmue
Das weiß ich auch nicht!
Dein Link sagt "Mehr als 10 verfügbar" in Berlin. Wenn der Anbieter zählen kann, sollte es ihn zu kaufen geben. Oder?

Leider gibt der TO nur spärliche Informationen, daher halte ich mich mit "nimm doch I2C, das ist ein Bus für viele Teilnehmer" zurück. Will er möglicherweise auch garnicht lesen.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

michael_x

Quote
Dein Link sagt "Mehr als 10 verfügbar" in Berlin
Der Link sagt auch klar, dass es gar kein Arduino Mega ist, weder mit 16U2 noch mit 8U2.
Aber die 3 bis 4 HardwareSerials sollten, wenn "Kompatibel" schon auf Pins rausgeführt sein.

Go Up