Prawidłowo zidentyfikowałeś źródło problemu, obie tarcze próbują używać tych samych pinów. Aby obejść ten problem, musimy wiedzieć, które szpilki są używane i do czego.
Dokumentacja Ethernet Shield ujawnia, co następuje:
Płyta Arduino komunikuje się z ekranem za pomocą magistrali SPI. Dotyczy to cyfrowych pinów 11, 12 i 13 w Uno i pinów 50, 51 i 52 w Mega. Na obu płytach pin 10 jest używany jako SS. W Mega sprzętowy pin SS, 53, nie jest używany do wyboru układu kontrolera Ethernet, ale musi być zachowany jako wyjście, w przeciwnym razie interfejs SPI nie będzie działał.
https://www.arduino.cc/en/Reference/Ethernet
Dokumentacja biblioteki Sparkfun's EasyVR nie jest tak wyraźna, ale jeden z przykładów daje nam kolejną wskazówkę:
#if define (__ SAMD21G18A__) // Shield Jumper on HW (dla Zero użyj portu programowania) #define port SERIAL_PORT_HARDWARE #define pcSerial SERIAL_PORT_MONITOR # elif określony (SERIAL_PORT_USBVIRTUAL) // Shield Jumper na HW (dla Leonardo i Due użyj portu natywnego) # zdefiniuj port SERIAL_PORT_HARDWARE # zdefiniuj pcSerial SERIAL_PORT_USBVIRTUAL # else // Shield Jumper na SW (używając pinów 12/13 lub 8/9 jako RX / TX) #include "SoftwareSerial.h" SoftwareSerial port (12, 13); #define pcSerial SERIAL_PORT_MONITOR # endif # include "EasyVR.h" EasyVR easyvr (port);
EasyVR-Arduino / examples / TestEasyVR / TestEasyVR.ino
Ten blok kodu określa, jak skonfigurować komunikację szeregową. Pierwsze dwie instrukcje if dotyczą różnych kart, ale trzecia konfiguruje połączenie szeregowe oprogramowania ... i mówi, że są dwie opcje, piny 12/13 LUB 8/9! Jeśli są dwie opcje, musi istnieć sposób, aby przełączyć go na samej karcie.
I na pewno! Sprawdź to białe pudełko z napisem „SW Serial Pins”. Jackpot!
Oto, co podręcznik ma do powiedzenia:
W dolnej części płytki znajdują się dwa rezystory SMD, które można przesunąć, aby wybrać dwa piny Arduino, do których zostanie podłączony EasyVR w trybie szeregowym oprogramowania (zworka trybu na SW).
- RX - pin programowego odbiornika szeregowego
- D12 - użyj cyfrowego pin 12 jako odbiornika szeregowego (domyślnie)
- D8 - użyj cyfrowego pin 8 jako odbiornika szeregowego
- TX - Nadajnik szeregowy oprogramowania pin
- D13 - Użyj cyfrowego pinu 13 jako nadajnika szeregowego (domyślnie)
- D9 - Użyj cyfrowego pinu 9 jako nadajnika szeregowego
Wybór pinów 12-13 jest utrzymywany w celu zapewnienia zgodności wstecznej z poprzednimi wersjami sprzętu EasyVR Shield. Jednak te piny mogą być również używane do interfejsu SPI, więc dostępny jest inny wybór pinów 8-9. Jeśli chcesz używać różnych pinów, upewnij się, że pin odbiornika obsługuje przerwań zmiany.