// Подключаем библиотеку для работы с мелодиями в формате RTTTL #include // Подключаем библиотеку для работы с кнопкой #include // Даём понятное имя пищалке на пине 12 constexpr uint8_t BUZZER_PIN = 12; // Создаём объект кнопки на пине 2 TroykaButton button(2); // Мелодия «Имперский марш» в формате RTTTL const char* imperMarch = "imperMarch:d=8,o=5,b=95:" "4a4,4a4,4a4,f.4,16c,4a4,f.4,16c," "2a4,4e,4e,4e,f.,16c,4g#4,f.4," "16c,2a4,4a,a.4,16a4,4a,g#.,16g," "16f#,16e,f,p,a#4,4d#,d.,16c#,16c," "16b4,c,p,f4,4g#4,f.4,16a4,4c," "a.4,16c,2e,4a,a.4,16a4,4a,g#.," "16g,16f#,16e,f,p,a#4,4d#,d.," "16c#,16c,16b4,c,p,f4,4g#4,f.4," "16c,4a4,f.4,16c,2a4"; // Мелодия «Марио» в формате RTTTL const char* marioBroth = "marioBroth:d=4,o=5,b=100:" "16e6,16e6,32p,8e6,16c6,8e6,8g6,8p," "8g,8p,8c6,16p,8g,16p,8e,16p," "8a,8b,16a#,8a,16g.,16e6,16g6,8a6," "16f6,8g6,8e6,16c6,16d6,8b,16p,8c6," "16p,8g,16p,8e,16p,8a,8b,16a#," "8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6," "16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6," "16p,16e6,16p,16g#,16a,16c6,16p,16a," "16c6,16d6,8p,16g6,16f#6,16f6,16d#6,16p," "16e6,16p,16c7,16p,16c7,16c7,p,16g6," "16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a," "16c6,16p,16a,16c6,16d6,8p,16d#6,8p," "16d6,8p,16c6"; // Мелодия «Миссия невыполнима» в формате RTTTL const char* missionImp = "missionImp:d=16,o=6,b=95:" "32d,32d#,32d,32d#,32d,32d#,32d,32d#," "32d,32d,32d#,32e,32f,32f#,32g,g,8p," "g,8p,a#,p,c7,p,g,8p," "g,8p,f,p,f#,p,g,8p," "g,8p,a#,p,c7,p,g,8p," "g,8p,f,p,f#,p,a#,g," "2d,32p,a#,g,2c#,32p,a#,g," "2c,a#5,8c,2p,32p,a#5,g5,2f#," "32p,a#5,g5,2f,32p,a#5,g5,2e," "d#,8d"; void setup() { // Инициализируем кнопку button.begin(); // Настраиваем пин с пищалкой в режим выхода pinMode(BUZZER_PIN, OUTPUT); } void loop() { // Считываем данные с кнопки button.read(); // Определяем нажатие кнопки if (button.justPressed()) { // Запускаем мелодию anyrtttl::blocking::play(BUZZER_PIN, imperMarch); } }