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

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

9.5.2. Модификация программы

Внесем несколько простых изменений в нашу предыдущую программу для управления светодиодами (см. листинг 9.1). Добавьте переменную для контакта, подключенного к динамику, а также переменную для установки частоты сигнала, подаваемого на динамик. При желании внутри цикла loop() можно добавить операторы, увеличивающие частоту сигнала при каждой последующей итерации. Для установки громкости динамика подойдет та же самая функция setLed(), как и раньше, но ее название теперь вводит в заблуждение, так что рекомендуем его изменить. В листинге 9.2 она переименована в setReg().

- 200 -

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

{

setReg(SS1,REG0,i);

setReg(SS1,REG1,i);

setReg(SS2,REG0,i);

setReg(SS2,REG1,i);

delay(10);

}


delay(300);

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

{

setReg(SS1,REG0,i);

setReg(SS1,REG1,i);

setReg(SS2,REG0,i);

setReg(SS2,REG1,i);

delay(10);

}


delay(300);

freq = freq+100;

if (freq > 2000) freq = 100;

}


Загрузите программу на плату Arduino и убедитесь, что меняется не только яркость светодиодов, но и громкость звука. На каждой итерации частота звука увеличивается на 100 Гц, пока не достигнет 2000 Гц. Громкость динамика регулирует тот же потенциометр, который управляет светодиодами.

И это всего лишь начало. Теперь у вас достаточно знаний, чтобы сделать действительно нечто впечатляющее. Вот несколько советов:

+ можно управлять частотой и громкостью звука по сигналам от датчиков (например, инфракрасный датчик расстояния может менять частоту в зависимости от приближения к устройству и удаления от него);

+ яркость светодиодов можно устанавливать в зависимости от внешних факторов, например от температуры;

+ можно добавить кнопку, чтобы переключать громкость или частоту звука;

+ можно сопоставить световые эффекты с проигрыванием музыки.

ПРИМЕЧАНИЕ

Посмотреть видеоклип, демонстрирующий работу SPI-устройства для создания световых и звуковых эффектов, можно на странице http://www.exploringarduino.com/

content/ch9. Этот видеофайл доступен и на сайте издательства Wiley.

- 201 -

Резюме

В этой главе вы узнали следующее:

• Что согласно протоколу SPI для организации обмена требуются три общие линии (две линии данных и линия синхронизации) и по одной дополнительной линии выбора для каждого ведомого устройства.

• Что библиотека Arduino SPI позволяет облегчигь коммуникации между платой Arduino и ведомыми устройствами.

• Что можно обмениваться данными с несколькими устройствами SPI, используя общие линии данных и синхронизации и раздельные линии SS выбора ведомого устройства.

• Как управлять SPI цифровыми потенциометрами с помощью библиотеки Arduino SPI.

• Как пользоваться техническими описаниями устройств.

• Как одновременно регулировать громкость и частоту звукового сигнала, используя библиотеку Tone и цифровой потенциометр SPI.


Листинг 9.2. Управление светодиодами и громкостью динамика с помощью SPI-потенциометров - LED_speaker.ino

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

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

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

#include

const int SPEAKER=8; // Вывод подключения динамика

int freq = 100;

// При подключении библиотеки 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) регистр 0 - зеленый светодиод

//Chip 2 (SS 9) регистр 1 - динамик

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

{

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

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

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

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

}


void loop()

{

tone(SPEAKER, freq);// Частота звука

}


- 199 -

Глава 10. Взаимодействие с жидкокристаллическими дисплеями

Список деталей

Для повторения примеров главы вам понадобятся следующие детали:

• плата Arduino Uno;

• USB-кабель В (для Uno );

• микрофон;

• цифровой SPI-потенциометр МСР4231;

• перемычки;

• макетная плата;

• динамик;

• две кнопки;

• вентилятор;

• 16х2-символьный ЖК-дисплей;

• 2 резистора номиналом 4,7 кОм;

• 2 резистора номиналом 10 кОм;

• 1 резистор номиналом 150 Ом;

• 1 потенциометр 10 кОм;

• датчик температуры ТС74AО-5.0 VAT I2C;

• набор перемычек;

• макетная плата.

Электронные ресурсы к главе
Перейти на страницу:

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

Самоучитель 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