Монк . - Программируем Arduino

Здесь есть возможность читать онлайн «Монк . - Программируем Arduino» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2017, ISBN: 2017, Издательство: Издательский дом Питер, Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программируем Arduino: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программируем Arduino»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Программируем Arduino — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программируем Arduino», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Ни к одной из линий не требуется подключать подтягивающее сопротивление.

Поскольку в некоторых моделях Arduino, в том числе Leonardo, контакты интерфейса SPI имеются только на колодке ICSP, многие платы расширений часто имеют гнезда SPI для подключения к колодке контактов ICSP. На рис. 9.5 изображена колодка ICSP с подписанными контактами.

Рис 95Контакты ICSP на плате Arduino Uno Обратите внимание на то что на - фото 66

Рис. 9.5.Контакты ICSP на плате Arduino Uno

Обратите внимание на то, что на плате Arduino Uno имеется вторая колодка ICSP, рядом с кнопкой сброса. Она предназначена для программирования интерфейса USB.

Протокол SPI

Протокол SPI на первый взгляд кажется сложным и запутанным, потому что данные передаются и принимаются обеими сторонами, ведущим и выбранным ведомым, параллельно. Одновременно с передачей ведущим устройством (Arduino) бита по линии MOSI ведомое устройство посылает другой бит по линии MISO плате Arduino.

Обычно Arduino посылает байт данных и затем восемь нулей, одновременно принимая результат от ведомого устройства. Так как частота передачи устанавливается ведущим устройством, убедитесь в том, что она не слишком высока для ведомого устройства.

Библиотека SPI

Библиотека SPI входит в состав Arduino IDE, поэтому вам не придется ничего устанавливать, чтобы воспользоваться ею. Но она поддерживает только сценарии, когда плата Arduino действует в роли ведущего устройства. Кроме того, библиотека поддерживает передачу данных только целыми байтами. Для большинства периферийных устройств этого вполне достаточно, однако некоторые устройства предполагают обмен 12-битными сообщениями, что несколько осложняет обмен из-за необходимости манипуляций с битами, как будет показано в примере в следующем разделе.

Прежде всего, как обычно, необходимо подключить библиотеку SPI:

#include

Затем инициализировать ее командой SPI.begin в функции запуска передачи:

void setup()

{

SPI.begin();

pinMode(chipSelectPin, OUTPUT);

digitalWrite(chipSelectPin, HIGH);

}

Для моделей платы Arduino, кроме Due, нужно также настроить цифровые выходы для всех линий выбора ведомых устройств. Роль таких выходов могут играть любые контакты на плате Arduino. После настройки их на работу в режиме выходов требуется сразу же установить на них уровень напряжения HIGH из-за инвертированной логики выбора ведомого, согласно которой напряжение LOW означает, что данное устройство выбрано.

Для модели Due имеется расширенная версия библиотеки SPI, поэтому достаточно определить контакт для выбора ведомого — и библиотека автоматически будет устанавливать на нем уровень LOW перед передачей и возвращать уровень HIGH по ее окончании. Для этого нужно передать коман­де SPI.begin аргумент с номером контакта. Недостаток такого подхода заключается в нарушении совместимости с другими моделями Arduino. В примерах, приводимых далее, все ведомые устройства выбираются вручную, и потому эти примеры будут работать на всех платах Arduino.

Для настройки соединения через интерфейс SPI имеется множество вспомогательных функций. Однако параметры по умолчанию вполне подходят для большинства случаев, поэтому изменять их нужно, только если документация с описанием ведомого устройства требует их изменения. Эти функции перечислены в табл. 9.3.

Таблица 9.3.Вспомогательные функции

Функция

Описание

SPI.setClockDivider(SPI_CLOCK_DIV64)

Выполняет деление тактовой частоты (по умолчанию равна 4 МГц) на 2, 4, 8, 16, 32, 64 или 128

SPI.setBitOrder(LSBFIRST)

Устанавливает порядок передачи битов LSBFIRST(от младшего к старшему) или MSBFIRST(от старшего к младшему). По умолчанию используется порядок MSBFIRST

SPI.setDataMode(SPI_MODE0)

Возможные значения аргументов этой функции от SPI_MODE0до SPI_MODE3. Определяют полярность и фазу тактового сигнала. Обычно нет необходимости изменять эту настройку, если только документация не требует установить какой-то определенный режим работы для организации обмена с ведомым устройством

Объединенные передача и прием происходят в функции transfer. Эта функция посылает байт данных и возвращает байт данных, принятый в процессе передачи:

byte sendByte = 0x23;

byte receiveByte = SPI.transfer(sendByte);

Поскольку диалог с периферией обычно имеет форму запроса со стороны ведущего и ответа со стороны ведомого, часто последовательно выполняются две передачи данных: одна — запрос, другая (возможно, во время передачи нулей) — ответ периферийного устройства. Вы увидите, как это происходит, в следующем примере.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программируем Arduino»

Представляем Вашему вниманию похожие книги на «Программируем Arduino» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программируем Arduino»

Обсуждение, отзывы о книге «Программируем Arduino» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x