Читаем Изучаем Arduino: инструменты и методы технического волшебства полностью

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

Чтобы отправить команду одному из цифровых потенциометров на изменение яркости светодиода, необходимо выполнить следующее:

• установить на выводе SS требуемой микросхемы низкий уровень;

• отправить байт команды на выбранный потенциометр;

• отправить байт данных - значение для выбранного потенциометра;

• установить на выводе SS выбранной микросхемы высокий уровень.

Программа, приведенная в листинге 9.1, выполняет все описанные шаги: выбирает контакт SS, посылает байт выбора потенциометра и байт значения потенциометра по протоколу SPI. Функция SPI. begin() инициализирует аппаратный интерфейс SPI на плате Arduino и после этого для передачи данных по шине SPI можно использовать команду SPI. transfer().

Контакт выбора SS для первой микросхемы подключается к контакту 10 платы, для второй - к контакту 9. Функция settled() получает номер контакта SS, адрес регистра микросхемы и значение уровня потенциометра и передает данные в соответствующий чип. В цикле loop() яркость всех четырех светодиодов сначала увеличивается, а затем уменьшается. Загрузите программу на плату Arduino и увидите этот эффект.

ПРИМЕЧАНИЕ

Посмотреть видеоклип, демонстрирующий работу SPI цифрового потенциометра в качестве регулятора яркости, можно на странице http:/1 www.exploringarduino.com/content/ch9. Этот видеофайл доступен также на сайте издательства Wiley.

Освоив простой пример, в следующем разделе создадим более сложное устройство, добавив звуковой эффект.

- 196 -


Листинг 9.1. Управление несколькоими SPI цифровыми потенциометрами - SPI_led.ino

// Изменение яркости светодиодов не с помощью ШИМ,

// а регулировкой напряжения

// Подключение библиотеки SPI

#include

// При подключении библиотеки SPI

// по умолчанию используются контакты

// 11 = MOSI, 12 = MISO, 13 = CLK

const int SS1=10; // Контакт выбора SS микросхемы 1

const int SS2=9; // Контакт выбора SS микросхемы 2

const byte REG0=B00000000; // Команда записив регистр 0

// (выбор первого потенциометра)

const byte REG1=B00010000; // Команда записи в регистр 1

// (выбор второго потенциометра)


void setup()

{


// Настройка контактов выбора SS на выход

pinMode(SS1, OUTPUT);

pinMode(SS2, OUTPUT);

// Инициализация аппаратного SPI

SPI.begin();

}


// Подпрограмма выбора и отправки данных для каждого светодиода

// Chip 1 (SS 10) регистр 0 - красный

// Chip 1 (SS 10) регистр 1 - желтый

// Chip 2 (SS 9) регистр о - зеленый

// Chip 2 (SS 9) регистр 1 - синий


void setLed(int SS, int reg, int level)

{

digitalWrite(SS, LOW); // Установить SS в низкий уровень (выбор)

SPI.transfer(reg); // Отправка команды

SPI.transfer(level); // Отправка значения (0-128)

digitalWrite(SS, HIGH); // Установить SS в высокий уровень

}


void loop()

{

for (int i=0; i<=128; i++)

{

setLed(SS1, REG0, i);

setLed(SS1, REG1, i);

- 197 -

setLed(SS2, REG0, i);

setLed(SS2, REG1, i);

delay(10);

}

delay (300);


for (int i=128; i>=0; i--)

{

setLed ( SS1,REG0,i);

setLed ( SS1,REG1,i);

setLed(SS2,REG0,i);

setLed(SS2,REG1,i);

delay(10);

}

delay(300);

}

9.5. Создание световых и звуковых эффектов с помощью цифровых потенциометров SPI

Управление яркостью светодиодов- хороший пример для изучения протокола SPI, но менять яркость свечения можно и посредством ШИМ. Далее мы добавим в проект регулировку громкости звука, что невозможно реализовать с помощью ШИМ. Как упоминалось в главе 5, в Arduino IDE есть библиотека Топе, позволяющая генерировать на произвольном контакте платы Arduino меандр заданной частоты для воспроизведения звуков. Однако управлять громкостью звука при этом нельзя. Затем мы собрали регулятор громкости, включив потенциометр последовательно с динамиком. Теперь используем цифровой потенциометр SPI для создания различных звуковых эффектов.

ПРИМЕЧАНИЕ

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

9.5.1. Описание схемы устройства

Схема устройства похожа на предыдущую (см. рис. 9.6). Оставим три светодиода из четырех, а вместо последнего подключим динамик. Один вывод цифрового потенциометра, идущий к динамику, соединим через резистор с контактом платы Arduino, который будет генерировать сигнал различной частоты. Сформированный меандр проходит через цифровой потенциометр, который меняет напряжение на динамике, а следовательно, громкость звучания. Измените предыдущую схему так, как показано на рис. 9. 7.

- 198 -

Рис. 9.7. Схема управления светодиодами и громкостью динамика

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Внутреннее устройство Microsoft Windows (гл. 1-4)
Внутреннее устройство Microsoft Windows (гл. 1-4)

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows — Windows Server 2003, Windows XP и Windows 2000 — и файловой системы NTFS. Детально рассмотрены системные механизмы: диспетчеризация ловушек и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др. Также описываются все этапы загрузки операционной системы и завершения ее работы. B четвертом издании книги больше внимания уделяется глубокому анализу и устранению проблем, из-за которых происходит крах операционной системы или из-за которых ее не удается загрузить. Кроме того, рассматриваются детали реализации поддержки аппаратных платформ AMD x64 и Intel IA64. Книга состоит из 14 глав, словаря терминов и предметного указателя. Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет понять, как устроена операционная система Windows.Названия всех команд, диалоговых окон и других интерфейсных элементов операционной системы приведены как на английском языке, так и на русском.Версия Fb2 редакции — 1.5.

Марк Руссинович , Дэвид Соломон

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Максим Анатольевич Беляев , Вадим Васильевич Лысенко , Лариса Александровна Малинина

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT