Arduino:Библиотеки/Audio/write()
Материал из Онлайн справочника
< Arduino:Библиотеки | Audio
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция write()[1]
Записывает аудиосигнал из буфера на контакты DAC0 и DAC1.
Синтаксис
Audio.write(buffer, length)
Параметры
buffer – именованный буфер со звуковым файлом. Тип данных – short
length – количество сэмплов для записи. Тип данных – int
Что возвращает
Ничего.
Пример
/*
Демонстрирует использование библиотеки Audio для Arduino Due
Необходимое оборудование :
* Модуль Arduino c SD-картой, подключенной к CS4 (подойдет Ethernet-модуль)
* Цепь со звукоусилителем, подсоединенная к DAC0
Создан Массимо Банзи (Massimo Banzi) 20 сентября 2012 года,
модифицирован Скоттом Фитцджеральдом (Scott Fitzgerald) 19 октября
2012 года.
*/
#include <SD.h>
#include <SPI.h>
#include <Audio.h>
void setup()
{
// инициируем последовательную коммуникацию на скорости 9600 бод (в целях отладки):
Serial.begin(9600);
// настраиваем SD-карту:
Serial.print("Initializing SD card..."); // "Инициализация SD-карты..."
if (!SD.begin(4)) {
Serial.println(" failed!"); // " не удалась!"
return;
}
Serial.println(" done."); // " завершена успешно"
// задаем скорость передачи данных по SPI:
SPI.setClockDivider(4);
// стерео 44100 КГц = 88200; пребуферация – 100 миллисекунд:
Audio.begin(88200, 100);
}
void loop()
{
int count=0;
// открываем WAV-файл, находящийся на SD-карте:
File myFile = SD.open("test.wav");
if (!myFile) {
// если файл не открылся, пишем об ошибке и останавливаем скетч:
Serial.println("error opening test.wav"); // "ошибка при открытии test.wav"
while (true);
}
const int S=1024; // количество сэмплов, считываемых за один блок
short buffer[S];
Serial.print("Playing"); // "Проигрывание"
// пока файл не закончится:
while (myFile.available()) {
// считываем сэмплы из файла в буфер:
myFile.read(buffer, sizeof(buffer));
// подготавливаем сэмплы:
int volume = 1024;
Audio.prepare(buffer, S, volume);
// «скармливаем» сэмплы:
Audio.write(buffer, S);
// каждые 100 блоков пишем «.»:
count++;
if (count == 100) {
Serial.print(".");
count = 0;
}
}
myFile.close();
Serial.println("End of file. Thank you for listening!"); // "Конец файла. Спасибо за прослушивание!"
while (true) ;
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |