Джереми Блум - Изучаем Arduino - инструметы и методы технического волшебства

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

Изучаем Arduino: инструметы и методы технического волшебства: краткое содержание, описание и аннотация

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

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

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

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

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

Интервал:

Закладка:

Сделать

analogWrite(9,numbers[2]);

Обратите внимание, что индекс 2 представляет собой третье значение в массиве, поскольку нумерация начинается с нуля. Изменить одно из значений массива можно так: numbers[2] = 10;

Далее массивы потребуются нам, чтобы создать структуру, которая может содержать последовательность нот, воспроизводимую на динамике.

5.6.2. Создание массивов нот и определение их длительности звучания

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

Пользуясь музыкальными навыками, которые я приобрел на уроках в средней школе, я сочинил короткую мелодию (листинг 5.1).

Листинг 5.1. Пример мелодии

// Массив нот

int notes [] = {

NOTE_A4, NOTE_E3, NOTE_A4, 0,

NOTE_A4, NOTE_E3, NOTE_A4, 0,

NOTE_E4, NOTE_D4, NOTE_B4, NOTE_A4, NOTE_В4, NOTE_C4, NOTE_D4,

NOTE_E4, NOTE_E3, NOTE_A4, 0

};

// Массив длительностей звучания нот в мс

int times[] = {

250, 250, 250, 250,

250, 250, 250, 250,

125, 125, 125, 125, 125, 125, 125, 125,

250, 250, 250, 250

};

- 116 -

Обратите внимание, что длина обоих массивов одинакова (20 элементов). Некоторые ноты задаются в виде нулевых значений, - это музыкальные паузы. Длительность звучания каждой ноты берем из второго массива. Для тех, кто знаком с теорией музыки, обратите внимание, что я задал длительность четвертных нот 250 мс, а восьмых - 125 мс.

Сначала попробуйте воспроизвести мою мелодию, а затем попытайтесь создать свою собственную!

ПРИМЕЧАНИЕ

Послушать аудиозапись можно на странице www.exploringarduino.com/content/ch5 или на сайте издательства Wiley.

5.6.3. Написание программы воспроизведения звука

Осталось написать программу для воспроизведения мелодии. С помощью цикла выбираем значения нот и их длительность из массивов и реализуем воспроизведение каждой ноты. Поскольку вы, вероятно, не захотите слушать мелодию снова и снова, можно выполнить цикл в функции setup(). Чтобы возобновить воспроизведение, нажмите кнопку Reset. В листинге 5.2 приведена полная программа проигрывателя Arduino.

Листинг 5.2. Проигрыватель мелодий - music.ino

// Проигрывание мелодии на динамике

#include "pitches.h" // Заголовочный файл со значениями частоты нот

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

// Массив нот

int notes[] = {

NOTE_A4, NOTE_ЕЗ,NOTE_A4, 0,

NOTE_A4, NOTE_ЕЗ,NOTE_A4, 0,

NOTE_E4, NOTE_D4,NOTE_C4, NOTE_84, NOTE_A4, NOTE_B4, NOTE_C4, NOTE_D4,

NOTE_E4, NOTE_ЕЗ,NOTE_A4, 0

};

// Массив длительностей звучания нот в мс

int times [) = {

250, 250, 250, 250,

250, 250, 250, 250,

125, 125, 125, 125, 125, 125, 125, 125,

250, 250, 250, 250

};

void setup()

{

- 117 -

// Выбор каждой ноты перебором массива нот

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

{

tone(SPEAKER, notes[i], times[i]);

delay(times[i]);

}

}

void loop()

{

// Чтобы повторить воспроизведение, необходимо нажать кнопку Reset

}

Если вы захотите создать свою собственную мелодию, проследите, чтобы массивы нот и длительностей имели равный размер, и правильно задайте верхнюю границу для цикла перебора for(). Поскольку функция tone() может работать в фоновом режиме, важно определить задержку delay(), чтобы следующая нота не звучала, пока не закончится воспроизведение предыдущей.

Пианино

Соберите схему изображенную на рис. 5.6.

рис 56 Пианино Листинг 53 Пианино define NOTEC 262 Hz define NOTED - фото 51

рис. 5.6. Пианино

Листинг 5.3. Пианино

#define NOTE_C 262 //Hz

#define NOTE_D 294 //Hz

#define NOTE_E 330 //Hz

#define NOTE_G 392 //Hz

#define NOTE_A 440 //Hz

const int SPEAKER=9; //Speaker on Pin 9

const int BUTTON_C=7; //Button Pin

const int BUTTON_D=6; //Button Pin

const int BUTTON_E=5; //Button Pin

const int BUTTON_G=4; //Button Pin

const int BUTTON_A=3; //Button Pin

void setup()

{

//No setup needed

//Tone function sets outputs

}

void loop()

{

while (digitalRead(BUTTON_C))

tone(SPEAKER, NOTE_C);

while(digitalRead(BUTTON_D))

tone(SPEAKER, NOTE_D);

while(digitalRead(BUTTON_E))

tone(SPEAKER, NOTE_E);

while(digitalRead(BUTTON_G))

tone(SPEAKER, NOTE_G);

while(digitalRead(BUTTON_A))

tone(SPEAKER, NOTE_A);

//Stop playing если ни одна кнопка не нажата

noTone(SPEAKER);

}

Резюме

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

• Как динамики создают вибрацию воздуха, которая распространяется в пространстве и воспринимается нашей барабанной перепонкой в виде звука.

• Что изменение электрического тока индуцирует магнитное поле, которое генерирует звук из громкоговорителя.

• Как создавать звуки произвольной частоты и длительности с помощью функции tone().

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

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

Интервал:

Закладка:

Сделать

Похожие книги на «Изучаем Arduino: инструметы и методы технического волшебства»

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


Отзывы о книге «Изучаем Arduino: инструметы и методы технического волшебства»

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

x