Не отступай и не сдавайся !!!
Ардуино, ESP32, ESP8266, LoRa. Обучение. Моделирование. Программирование под заказ.
Измерение и контроль параметров: температура, влажность, освещённость, давление, наличие напряжения, датчик движения, тревожная кнопка (дача, квартира, дом, цех, теплица, офис). Выдача измеренных параметров на персональную страницу в Интернете, на планшет, в смартфон. В случае выхода параметров за заданные границы - оповещение по электронной почте, sms.

SPI интерфейс

Библиотека SPI.h


Описание SPI интерфейса

  • #define PinMISO 12 // SDI, DI, DIN, SI. Master in Slave Out. Линия ведомого для передачи данных ведущему;
  • #define PinMOSI 11 // SDO, DO, DON, SO. Master Out Slave In. Линия ведущего для передачи данных ведомому;
  • #define PinSCK 13 // SCLK, SCK, CLK, SPC. Serial Clock. По этой линии передаются сигналы (импульсы) синхронизации, формируемые ведущим;
  • #define PinCS 10 // SS, RSK. Slave Select. Ведущий (Master) может использовать эту линию для включения и выключения определенных устройств (ведомых).
Схема интерфейса SPI

SPI (Serial Peripheral Interface) — это синхронный последовательный интерфейс, который используется для быстрого обмена данными между микроконтроллером и периферийными устройствами на коротких расстояниях. Если вам нужно подключить к Ардуино Нано SD-карту, цветной TFT-дисплей или быстрый АЦП, скорее всего, вы будете использовать именно SPI.

Как это работает

SPI — это полнодуплексный протокол, то есть данные могут передаваться и приниматься одновременно. Для связи используются четыре основные линии:

  • MOSI (Master Out Slave In) — данные от ведущего к ведомому.
  • MISO (Master In Slave Out) — данные от ведомого к ведущему.
  • SCK (Serial Clock) — тактовый сигнал, который генерирует ведущий.
  • SS (Slave Select) — линия выбора ведомого устройства. Ведущий «притягивает» эту линию к низкому уровню, чтобы активировать конкретное устройство на шине.

Главное отличие от I2C: для каждого ведомого устройства нужна отдельная линия SS. Зато SPI работает значительно быстрее и не имеет ограничения по уникальным адресам.

Распиновка на Arduino Nano

На Ардуино Нано аппаратные линии SPI закреплены за следующими цифровыми пинами:

  • MOSI — пин D11.
  • MISO — пин D12.
  • SCK — пин D13.
  • SS — обычно используется пин D10, но при необходимости его можно переназначить на другой цифровой выход.

Именно эти пины задействованы, когда вы подключаете к Nano модуль SD-карты или дисплей на контроллере ILI9341. При обучении программированию Ардуино полезно сразу запомнить эту распиновку — она пригодится в большинстве «продвинутых» проектов.

Библиотека SPI и примеры

Библиотека SPI также входит в стандартный пакет Arduino IDE и не требует отдельной установки. Базовый пример использования:

Основные функции:

  • SPI.begin() — настройка линий SPI.
  • SPI.transfer(data) — одновременная отправка и приём одного байта.
  • SPI.setDataMode(mode) — выбор режима работы (CPOL/CPHA).
  • SPI.setBitOrder(order) — порядок передачи битов (MSBFIRST или LSBFIRST).

Что можно подключить по SPI

SPI идеально подходит для устройств, которым нужна высокая скорость обмена:

  • SD-карты и модули флеш-памяти.
  • Цветные TFT-дисплеи (например, на ST7735 или ILI9341).
  • Быстрые датчики (акселерометры, АЦП).
  • Цифровые потенциометры и сдвиговые регистры.

Если вы уже освоили мигание светодиодом и хотите двигаться дальше в обучении Ардуино, SPI — это следующий логичный шаг после I2C. Начните с простого модуля SD-карты: вы научитесь читать и записывать файлы, что открывает дорогу к проектам с логированием данных.


© 2000 - 2026
Хостинг нашего сайта осуществляется узлом www.cherepovets-city.ru