Описание Генерирует на выводе прямоугольный сигнал заданной частоты (с коэффициентом заполнения 50%). Функция также позволяет задавать длительность сигнала. Однако, если длительность сигнала не указана, он будет генерироваться до тех пор, пока не будет вызвана функция noTone(). Для воспроизведения звука вывод можно подключить к зуммеру или динамику.
В каждый момент времени может генерироваться только один сигнал заданной частоты. Если сигнал уже генерируется на каком-либо выводе, то использование функции tone() для этого вывода просто приведет к изменению частоты этого сигнала. В то же время вызов функции tone() для другого вывода не будет иметь никакого эффекта.
Использование функции tone() может влиять на ШИМ-сигнал на выводах 3 и 11 (на всех платах, кроме Mega).
ПРИМЕЧАНИЕ: для воспроизведение разных звуков на нескольких выводах, необходимо сперва вызывать noTone() на одном выводе и только после этого использовать функцию tone() на следующем.
Параметры pin: вывод, на котором будет генерироваться сигнал frequency: частота сигнала в Герцах - unsigned int duration: длительность сигнала в миллисекундах (опционально) - unsigned long
Будет не лишним привести здесь пример. Я подключал динамик 8 Ом через конденсатор 1 мкФ, звучит прикольно, правда звук, почему-то не отключается, звучит по кругу:
const int SoundPin = 9; // Пин подключения пьезоизлучателя – 9 дискретный
int DelaySound = 1000; // Пауза 1 секунда
void setup() { }
void loop() { // Пример использования tone()
//tone(pin, частота)
tone(SoundPin, 1915);// Воспроизводим сигнал с частотой 1915 Гц
delay(DelaySound);// Пауза 1 секунда (1000 миллисекунд – значение переменной DelaySound ) – длительность воспроизведения сигнала
tone(SoundPin, 1700); delay(DelaySound);
tone(SoundPin, 1519); delay(DelaySound);
tone(SoundPin, 1432); delay(DelaySound);
tone(SoundPin, 1275); delay(DelaySound);
tone(SoundPin, 1136); delay(DelaySound);
tone(SoundPin, 1014); delay(DelaySound);
noTone(9); // Выключаем звук
}
Не мог заставить его умолкнуть. Скажем проиграл звук и замолчал, ведь команда noTone(9) должна была отключить звук, а получается, что внутри void loop() этого не произойдёт. Есть примеры отработки кода без цикла?
Помогло Спасибо! Оптимальные значения для громкого звучания модуля с пьезодинамиком, что на фото, это: 610-640, 1670-1700, 1830-1870, 2360-2390, 2880-2950, 4260-4700, 6140. То есть:
tone(SoundPin, 630);// где SoundPin - номер вывода, например "9", 630 - оптимальное значение из приведённых выше
В копилку программ. Среди прочих подобных, понравился неплохой и понятный симулятор Arduino. Есть возможность увидеть демонстрацию работы и тут же отладить скетч. Имеется много встроенных примеров (файлы *.ino). 45 дней бесплатного использования с лицензией после регистрации. Сайт: http://www.virtronics.com.au
Разное
Если, нет специального оборудования, типа паяльной станции и фенов, для отпайки микрочипа можно воспользоваться тонким фторопластовым проводом.
Интересно
Посыпав место пайки песком или натерев крошащимся камнем, можно паять обычными методами даже алюминий.
Приводится описание современной, мощной и удобной среды разработки mikroC, которая включает большую библиотеку готовых функций для работы с разнообразными интерфейсами и устройствами и позволяет быстро создавать эффективные программы на языке высокого уровня Си для микроконтроллеров семейств PIC, AVR, MCS-51 и др.
Сегодня практически невозможно представить себе приложение, не обладающее интерфейсом пользователя. Понятия Software и GUI (Graphical User Interface) неразрывно связаны друг с другом.
В данной статье рассказывается о том, как легко и просто освоить один из новых продуктов Borland C++ Builder 6.0 для разработки программ и быстро начать создавать собственные программы, работающие в операционной системе Windows.