EasyVr Shield an andere Pins?

Hallo,
ich versuche das EasyVR Shield so zu betreiben, dass es paralell mit einem Ethernet Shield läuft.
Das PRoblem ist die Überschneidung der genutzten Pins 12 & 13 vom EasyVR.

Ich habe jetzt die Pin 12 & 13 auf Pin 2 & 3 umgelegt.

Im Programm habe ich ebenfalls die PArameter geändert:

...
SoftwareSerial port(2,3);   // SoftwareSerial port(12,13);   
bridge.loop(0, 1, 2, 3);   // bridge.loop(0, 1,12, 13);
...

Eigentlich sieht alles gut aus und die restlichen Pins sind auch alle richtig verbunden (mit Pin 12 & 13 ohne Ethernet Shield läuft es).
Trotzdem kann das Board nicht gefunden werden: serial Monitor → “EasyVR not detected!”

Woran könnte es liegen?
Danke.

Hawk78

Das liegt wohl daran, dass durch das fertige Shield die entsprechenden Pins hardwareseitig verdrahtet sind. Wenn du nun beim Initialisieren andere Pins vorgibst kommen die Daten an der Zielhardware nicht an. Eine gängige Praxis ist das Auftrennen der Leiterbahnen und mit ein paar Drähten/Litzen die gewünschte Verbindung herzustellen. Das klappt aber nur bei einfachen IOs, spezielle Funktionen wie SPI und I2C kann man nicht einfach auf beliebige Pins umlegen. Daher sind solche Maßnahmen immer risikobehaftet.

Mit dem Jumper J1,2,3,4 kann das Signal von 12 und 13 auf 0 und 1 umgeleitete werden. Dadurch kannst du aber keine Daten mehr an den PC versenden und von diesem empfangen (Mit Serial.print/read). Und vor dem upload eines Sketchs muss der Jumper jeweils entfernt werden.

Falls du die serielle Schnittstelle trotzdem noch benötigst, würde ich den Jumper J1,2,3,4 auf HW setzen, beim EasyVr Shield auf der unteren Seite die Pins 0 und 1 (TX und RX abschneiden). Und dann 0,1 mit 2,3 verbinden.

Hi sth77!

Danke für die Antwort. Ich habe die beiden Platinen ja nicht aufeinander gesteckt, sondern "nebeneinander" verdrathet. Das funktioniert auch super solange ich Pin 12&13 vom Arduino nutze. Wenn ich die beiden Pins umleite, und der Library die anderen Pins zum initialisieren mitgebe, dann dürfte das EasyVR Board doch überhauptnicht davon mitbekommen?!

Wozu kann ich denn sonst die Paramter für die Initialisierung geändert übergeben, wenn die Änderung hardwareseitig nicht funktionieren kann...?

sth77: Das liegt wohl daran, dass durch das fertige Shield die entsprechenden Pins hardwareseitig verdrahtet sind. Wenn du nun beim Initialisieren andere Pins vorgibst kommen die Daten an der Zielhardware nicht an. Eine gängige Praxis ist das Auftrennen der Leiterbahnen und mit ein paar Drähten/Litzen die gewünschte Verbindung herzustellen. Das klappt aber nur bei einfachen IOs, spezielle Funktionen wie SPI und I2C kann man nicht einfach auf beliebige Pins umlegen. Daher sind solche Maßnahmen immer risikobehaftet.

Hallo!

Ich habe die Lösung gefunden! :) Nicht alle Pins lassen sich für RX/TX nutzen:

Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

Not all pins on the Leonardo support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Vielen Dank nochmal für Eure Hilfe :-)

VG Hawk78