Проигрывание мелодий на выходах, используя функцию tone()
В этом примере демонстрируется, как использовать команду tone(), чтобы играть различные ноты на выходах.
Команда tone() работает, занимая один из внутренних таймеров Atmega, устанавливая его в необходимую частоту, и используя таймер, чтобы пульсировать выходной пин. Так как используется только один таймер, Вы можете играть только одну ноту за раз. Вы можете, однако, играть ноты по нескольким пинам последовательно. Для этого Вы должны выключить таймер для одного пина перед переходом к следующему.
Спасибо Грегу Боренстеину (Greg Borenstein) за разъяснения.
Цепь:
Схема:
Код:
Нижеприведённый скетч проигрывает ноту на каждом из спикеров последовательно, выключая сначала предыдущий спикер. Заметьте, что продолжительность каждого тона такая же, как задержка, которая следует за ним.
Вот главный скетч:
/*
Multiple tone player
Plays multiple tones on multiple pins in sequence
circuit:
* 3 8-ohm speaker on digital pins 6, 7, and 11
created 8 March 2010
by Tom Igoe
based on a snippet from Greg Borenstein
This example code is in the public domain.
http://arduino.cc/en/Tutorial/Tone4
*/
void setup() {
}
void loop() {
// turn off tone function for pin 11:
noTone(11);
// play a note on pin 6 for 200 ms:
tone(6, 440, 200);
delay(200);
// turn off tone function for pin 6:
noTone(6);
// play a note on pin 7 for 500 ms:
tone(7, 494, 500);
delay(500);
// turn off tone function for pin 7:
noTone(7);
// play a note on pin 11 for 500 ms:
tone(11, 523, 300);
delay(300);
}
комментарии(0)
Комментировать