Звуковое подтверждение нажатия кнопки

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

В проекте 7 кнопок. Хочется сделать звуковое подтверждение нажатия. Что-нибудь типа DTMF, но можно и одинаковое для всех кнопок.
Пока банально tone(6, 1000,30), но хочется что-то поинтереснее. Никто не посоветует?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Sr.FatCat пишет:

Пока банально tone(6, 1000,30), но хочется что-то поинтереснее. Никто не посоветует?

 Если мало одного tone, примените последовательность разных tone. Но вся пляска начинается от того , какую вы структуру в программе организуете. А то хотели как лучше, а пришли , прости господи, к говнокоду.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Sr.FatCat пишет:

но хочется что-то поинтереснее. Никто не посоветует?

гимн наРоссии или Боже Царя Храни?

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

qwone пишет:

 Если мало одного tone, примените последовательность разных tone. Но вся пляска начинается от того , какую вы структуру в программе организуете. А то хотели как лучше, а пришли , прости господи, к говнокоду.

Подскажите какую-нибудь интересную последовательность тонов. А то я на этом и завис.
Опыт реализовать в фоновом режиме любой последовательность дрыгоножества - имеется, к говонокоду не должен скатиться. 

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

Клапауций 234, спасибо за Ваше искрометное чувство юмора. Я же написал - типа DTMF. Реализовать двутон на Arduino, без аппаратных костылей возможности не вижу.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Sr.FatCat пишет:

qwone пишет:

 Если мало одного tone, примените последовательность разных tone. Но вся пляска начинается от того , какую вы структуру в программе организуете. А то хотели как лучше, а пришли , прости господи, к говнокоду.

Подскажите какую-нибудь интересную последовательность тонов. А то я на этом и завис.
Опыт реализовать в фоновом режиме любой последовательность дрыгоножества - имеется, к говонокоду не должен скатиться. 

http://arduino.ru/forum/programmirovanie/arkhiv-melodii-dlya-funktsii-tone . А мелодий полный инет.

Да для очень (цензура) . Вы смотрите на мою ссылку.

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

qwone, мне не нужны мелодии - у меня их в количестве. Мне нужен пример простого (???) звука (реализации его для ардуины не надо, просто частота-длительность-пауза - длительность и пр...) длительность до 100мс, который бы можно было использовать как сигнал отклика кнопок, вместо треска или однотонального 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Sr.FatCat

// Midi To Arduino play music speaker Piezo.
#include <EEPROM.h>
int tonePin = 11;
byte reset;
void setup() {
  pinMode(13, OUTPUT);
  EEPROM.write(0, reset = EEPROM.read(0) + 1);
  if (reset > 5)EEPROM.write(0, 0);
}
void loop() {
  if (reset == 1)ParovozSolo();
  if (reset == 2)JoyToTheWorld();
  if (reset == 3)WeWishYouAMerry();
  if (reset == 4)RudolfTheRedNosed();
  if (reset == 5)JingleBells();
  if (reset == 6 || digitalRead(13)) {
    digitalWrite(13, HIGH);
    if (++reset > 5)reset = 1;
  }
}

void ParovozSolo() {

  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 1012.5);
  delay(1125.0);
  delay(125.0);
  tone(tonePin, 440, 168.75);
  delay(187.5);
  delay(20.8333333333);
  tone(tonePin, 391, 168.75);
  delay(187.5);
  delay(20.8333333333);
  tone(tonePin, 349, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 293, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 261, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 246, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 293, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 261, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 220, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 506.25);
  delay(562.5);
  delay(62.5);
  tone(tonePin, 261, 506.25);
  delay(562.5);
  delay(62.5);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 523, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 493, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 415, 1350.0);
  delay(1500.0);
  delay(1416.66666667);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 523, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 493, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 523, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 493, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 349, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 349, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 349, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 293, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 261, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 246, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 220, 1350.0);
  delay(1500.0);
  delay(1416.66666667);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 523, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 493, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 523, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 493, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 349, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 349, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 675.0);
  delay(750.0);
  delay(83.3333333333);
  tone(tonePin, 391, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 349, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 329, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 293, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 261, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 246, 337.5);
  delay(375.0);
  delay(41.6666666667);
  tone(tonePin, 220, 1350.0);
  delay(1500.0);
}






void JoyToTheWorld() {
  tone(tonePin, 587, 450.0);
  delay(500.0);
  tone(tonePin, 554, 337.5);
  delay(375.0);
  tone(tonePin, 493, 112.5);
  delay(125.0);
  tone(tonePin, 440, 675.0);
  delay(750.0);
  tone(tonePin, 391, 225.0);
  delay(250.0);
  tone(tonePin, 369, 450.0);
  delay(500.0);
  tone(tonePin, 329, 450.0);
  delay(500.0);
  tone(tonePin, 293, 675.0);
  delay(750.0);
  tone(tonePin, 440, 225.0);
  delay(250.0);
  tone(tonePin, 493, 670.3125);
  delay(744.791666667);
  delay(5.20833333333);
  tone(tonePin, 493, 225.0);
  delay(250.0);
  tone(tonePin, 554, 670.3125);
  delay(744.791666667);
  delay(5.20833333333);
  tone(tonePin, 554, 225.0);
  delay(250.0);
  tone(tonePin, 587, 670.3125);
  delay(744.791666667);
  delay(5.20833333333);
  tone(tonePin, 587, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 587, 225.0);
  delay(250.0);
  tone(tonePin, 554, 225.0);
  delay(250.0);
  tone(tonePin, 493, 225.0);
  delay(250.0);
  tone(tonePin, 440, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  tone(tonePin, 391, 112.5);
  delay(125.0);
  tone(tonePin, 369, 225.0);
  delay(250.0);
  tone(tonePin, 587, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 587, 225.0);
  delay(250.0);
  tone(tonePin, 554, 225.0);
  delay(250.0);
  tone(tonePin, 493, 225.0);
  delay(250.0);
  tone(tonePin, 440, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  tone(tonePin, 391, 112.5);
  delay(125.0);
  tone(tonePin, 369, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 369, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 369, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 369, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 369, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 369, 112.5);
  delay(125.0);
  tone(tonePin, 391, 112.5);
  delay(125.0);
  tone(tonePin, 440, 675.0);
  delay(750.0);
  tone(tonePin, 391, 112.5);
  delay(125.0);
  tone(tonePin, 369, 112.5);
  delay(125.0);
  tone(tonePin, 329, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 329, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 329, 220.3125);
  delay(244.791666667);
  delay(5.20833333333);
  tone(tonePin, 329, 112.5);
  delay(125.0);
  tone(tonePin, 369, 112.5);
  delay(125.0);
  tone(tonePin, 391, 675.0);
  delay(750.0);
  tone(tonePin, 369, 112.5);
  delay(125.0);
  tone(tonePin, 329, 112.5);
  delay(125.0);
  tone(tonePin, 293, 225.0);
  delay(250.0);
  tone(tonePin, 587, 450.0);
  delay(500.0);
  tone(tonePin, 493, 225.0);
  delay(250.0);
  tone(tonePin, 440, 337.5);
  delay(375.0);
  tone(tonePin, 391, 112.5);
  delay(125.0);
  tone(tonePin, 369, 225.0);
  delay(250.0);
  tone(tonePin, 391, 225.0);
  delay(250.0);
  tone(tonePin, 369, 450.0);
  delay(500.0);
  tone(tonePin, 329, 450.0);
  delay(500.0);

}
//

Как с вами сложно. Видно на фоорум приходят  как правило с отсутсвующим мозгом.

tone(tonePin, 329, 337.5);
  delay(375.0);

Где tonePin это нога для звучания, 329 частота ноты,337.5 длительность звучания ноты. 375.0 длительность звучание ноты и паузы до начала следующей ноты. 

То есть берете мелодию,заходите на сайт, получаете скетчь готовый разбираете на элементы и с помощью этих элементов собираете свою мелодию. 

 Для очень одареных, там есть регулирование скорости воспроизведения. Так что можете обычную мелодию сжать по времени. Трель в 3-4 ноты за 0,2 сек замечательно. Ну не может человек по кнопкам чаще бить.

bwn
Offline
Зарегистрирован: 25.08.2014

qwone пишет:

 Ну не может человек по кнопкам чаще бить.

Та ладно, обученный секретарь печатает 5тыщ знаков в минуту. Правда такая х-ня получается.))))

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

qwone, вот спасибо, что Вы тут со слабоумными возитесь. Я всего-навсего просил пример где 2-3 ноты общей продолжительностью до 100мс, которые при реакции на нажатие кнопки давали бы интересный звук. Ну нет у мени ни слуха, ни фантазии - не могу сам придумать.

А программную реализацию я не просил - куда мне убогому. Ведь только такому гуру программирования, как Вы дано знать зачем формальному параметру типа unsigned long пихать вещественную константу (3-й параметр в tone и единственный параметр в delay). А на то, чтобы длительность паузы делать сразу двумя делаями - это вообще УМИЩЕ надо.

Ну пусть кто-нибудь напишет словами Ля-диез 1-й октавы, си-бимоль 3-й, темп 120..... или частота 255 длительность 30 пауза 10, частота 1264 длительность 80 ....
меня это устроит более, чем