Как подключить шилд ArduCAM к MEGA 2560
Начинающие пользователи Arduino часто сталкиваются с несовместимостью плат UNO и MEGA. Эти платы действительно в чём-то несовместимы: например, у UNO выводы SPI — 10, 11, 12, 13, а I2C — A4, A5, тогда как у Mega выводы SPI — 50, 51, 52, 53, а I2C — 20, 21. При переходе от версии R0 к R3 в платы UNO и MEGA внесли изменения, чтобы интерфейс I2C стал совместимым.
Шилд ArduCAM использует аппаратный интерфейс I2C: на плате UNO это выводы A4 (SDA) и A5 (SCL), на MEGA — 20 (SDA) и 21 (SCL). В Arduino UNO R3 и MEGA2560 R3 добавлены отдельные выводы для интерфейса I2C, а в версии R0 их нет. Если у вас MEGA 2560 версии R0 или R2, переподключите линии I2C проводами и внесите изменения в скетч.


Измените скетч так:
void Setup()
{
....
pinMode(A4, INPUT);
pinMode(A5, INPUT);
...
}
Для чтения и записи карт SD/TF шилд ArduCAM использует аппаратный интерфейс SPI: на плате UNO это выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), а на MEGA2560 — 53 (SS), 51 (MOSI), 50 (MISO), 52 (SCK). Поэтому при работе шилда ArduCAM с платой MEGA нужен программный SPI. Внесите следующие изменения:
Откройте файл …\Arduino\libraries\SD\utility\Sd2Card.h и замените #define MEGA_SOFT_SPI 0 на #define MEGA_SOFT_SPI 1. Затем добавьте pinMode(53, OUTPUT); в функцию Setup().

