Инструкции

Справочный раздел

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

Разделы инструкций

В сети

Пользователей: 194
Из них просматривают:
Аналоги: 72. Галерея: 2. Даташиты: 75. Инструкции: 7. Новости: 13. Остальное: 6. Программы: 1. Расчёты: 1. Форум: 16. Чат: 1.
Участников: 3
Гостей: 191

an , Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

Функция tone()

Описание
Генерирует на выводе прямоугольный сигнал заданной частоты (с коэффициентом заполнения 50%). Функция также позволяет задавать длительность сигнала. Однако, если длительность сигнала не указана, он будет генерироваться до тех пор, пока не будет вызвана функция noTone(). Для воспроизведения звука вывод можно подключить к зуммеру или динамику.
 
В каждый момент времени может генерироваться только один сигнал заданной частоты. Если сигнал уже генерируется на каком-либо выводе, то использование функции tone() для этого вывода просто приведет к изменению частоты этого сигнала. В то же время вызов функции tone() для другого вывода не будет иметь никакого эффекта.

Использование функции tone() может влиять на ШИМ-сигнал на выводах 3 и 11 (на всех платах, кроме Mega).

ПРИМЕЧАНИЕ: для воспроизведение разных звуков на нескольких выводах, необходимо сперва вызывать noTone() на одном выводе и только после этого использовать функцию tone() на следующем.
 
Синтаксис
 
tone(pin, frequency)
tone(pin, frequency, duration)
 
Параметры
pin: вывод, на котором будет генерироваться сигнал
frequency: частота сигнала в Герцах - unsigned int
duration: длительность сигнала в миллисекундах (опционально) - unsigned long
 
Возвращаемые значения
 
нет

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
Будет не лишним привести здесь пример. Я подключал динамик 8 Ом через конденсатор 1 мкФ, звучит прикольно, правда звук, почему-то не отключается, звучит по кругу:
const int SoundPin 9// Пин подключения пьезоизлучателя – 9 дискретный 
int DelaySound 1000// Пауза 1 секунда
 
void setup
() 
{ 
}
 
void loop
() 
{ 
  
// Пример использования tone() 
  //tone(pin, частота) 
  tone(SoundPin1915);  // Воспроизводим сигнал с частотой 1915 Гц 
  delay(DelaySound);  // Пауза 1 секунда (1000 миллисекунд – значение переменной DelaySound ) – длительность воспроизведения сигнала
  tone(SoundPin1700); 
  delay
(DelaySound);
  tone(SoundPin1519); 
  delay
(DelaySound);
  tone(SoundPin1432); 
  delay
(DelaySound);
  tone(SoundPin1275); 
  delay
(DelaySound);
  tone(SoundPin1136); 
  delay
(DelaySound);
  tone(SoundPin1014); 
  delay
(DelaySound);
  noTone(9); // Выключаем звук 
}
 Функция tone()
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3926
не в сети
По кругу? Не может быть!!! ))
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
Не мог заставить его умолкнуть. Скажем проиграл звук и замолчал, ведь команда noTone(9) должна была отключить звук, а получается, что внутри void loop() этого не произойдёт. Есть примеры отработки кода без цикла?
 Функция tone()
Модератор
Модератор
Дата регистрации: 26.01.2010
Откуда: Тирасполь
Сообщений: 3926
не в сети
в конце кода поставь while(1);
loop тогда не будет перезапускаться
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
Помогло  Спасибо! Оптимальные значения для громкого звучания модуля с пьезодинамиком, что на фото, это: 610-640, 1670-1700, 1830-1870, 2360-2390, 2880-2950, 4260-4700, 6140. То есть:
tone(SoundPin630);  // где SoundPin - номер вывода, например "9", 630 - оптимальное значение из приведённых выше
модуль с пьезодинамиком
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2234
не в сети
Громкость как задать?
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
Думаю задать не получится. В пределах заданной частоты выходного звука, скорее всего, нужно ставить усилитель с регулятором громкости.
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 18.12.2008
Откуда: Тирасполь
Сообщений: 2234
не в сети
Здрасьте, приехали...Вот она мощь цифровых технологий! А если тише звук нужен? Резистор последовательно с динамиком?
 Функция tone()
Администратор
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 7258
не в сети
Гром это микроконтроллер, а не усилитель.
Функция всего лишь генерирует заданную частоту на указанном выводе.
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
Как вариант: можно менять частоту выше-ниже от резонансного значения (самой большой громкости) и звук будет на порядок тише.
 Функция tone()
Технический Директор
Технический Директор
Дата регистрации: 08.02.2009
Откуда: Днестровск
Сообщений: 2441
не в сети
В копилку программ. Среди прочих подобных, понравился неплохой и понятный симулятор Arduino. Есть возможность увидеть демонстрацию работы и тут же отладить скетч. Имеется много встроенных примеров (файлы *.ino). 45 дней бесплатного использования с лицензией после регистрации. Сайт: http://www.virtronics.com.au
Открыть изображение в новом окне

Разное

Интересно

Если, нет специального оборудования, типа паяльной станции и фенов, для отпайки микрочипа можно воспользоваться тонким фторопластовым проводом.

Похожие инструкции