Для общения с другими модулями и платами, Arduino Nano использует интерфейсы связи. Их несколько и каждый создан для разных задач.
- UART (Serial) — последовательная передача
Пин D0 (RX) на прием данных, а D1 на передачу. Данный интерфейс используется для общения с компьютером (посредством монитора порта) и для Bluetooth-модулей (HC-05, HC-06).
Важно помнить! При программировании платы через USB не рекомендуется подключать что-то к D0 и D1, иначе загрузка может не пройти.
- I2C — двухпроводный интерфейс
Пин A4 (SDA) - это данные, а A5 (SCL) тактовый сигнал. I2C применяется для дисплеев (OLED, LCD), гироскопов, акселерометров, расширителей пинов (PCF8574).
Этот интерфейс позволяет подключить много устройств на одни и те же два пина, и каждому присваивается свой адрес. Для примера, включить I2C через код можно следующим образом:
Wire.begin(); // Включить I2C- SPI — высокоскоростной интерфейс
У SPI много пинов: D10 (SS), D11 (MOSI), D12 (MISO) и D13(SCK). Интерфейс используется для карты памяти, дисплеев типа TFT и OLED, а еще для радиомодулей (nRF24L01).
По сравнению с I2C, SPI значительно быстрее, однако, он требует большего количества пинов.