мелодия из гравити фолз на arduino.

Тема в разделе "Глядите, что я сделал", создана пользователем Глеб Асламов, 26 янв 2017.

Метки:
  1. void setup() {
    pinMode(3, OUTPUT);
    }

    void loop() {
    tone(3,698);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(400);
    tone(3,880);
    delay(400);
    tone(3,294);
    delay(1200);
    tone(3,330);
    delay(400);
    tone(3,349);
    delay(1600);
    tone(3,440);
    delay(600);
    tone(3,392);
    delay(600);
    tone(3,440);
    delay(400);
    tone(3,262);
    delay(1600);
    tone(3,294);
    delay(1200);
    tone(3,330);
    delay(400);
    tone(3,349);
    delay(800);
    tone(3,330);
    delay(800);
    tone(3,392);
    delay(800);
    tone(3,440);
    delay(800);
    tone(3,392);
    delay(800);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,554);
    delay(400);
    tone(3,554);
    delay(400);
    tone(3,554);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,466);
    delay(400);
    tone(3,466);
    delay(400);
    tone(3,466);
    delay(400);
    tone(3,392);
    delay(800);
    tone(3,523);
    delay(800);
    tone(3,440);
    delay(800);
    tone(3,554);
    delay(800);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,880);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,880);
    delay(200);
    tone(3,1109);
    delay(200);
    tone(3,587);
    delay(1600);
    }
     
    danya plotnik нравится это.
  2. Подключать к динамику или пищалке через 3 порт
     
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    ужас какой...
     
    NikitOS нравится это.
  4. ostrov

    ostrov Гуру

    В виде массива или двух (тон и длительность) не проще было бы?
     
  5. Вот немного исправленная версия
    void setup() {
    pinMode(3, OUTPUT);
    }

    void loop() {
    tone(3,698);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,523);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,440);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,659);
    delay(400);
    tone(3,880);
    delay(400);
    tone(3,294);
    delay(1200);
    tone(3,330);
    delay(400);
    tone(3,349);
    delay(1600);
    tone(3,440);
    delay(600);
    tone(3,392);
    delay(600);
    tone(3,440);
    delay(400);
    tone(3,262);
    delay(1600);
    tone(3,294);
    delay(1200);
    tone(3,330);
    delay(400);
    tone(3,349);
    delay(800);
    tone(3,330);
    delay(800);
    tone(3,392);
    delay(800);
    tone(3,440);
    delay(800);
    tone(3,392);
    delay(800);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(30);
    tone(3,392);
    delay(400);
    tone(3,440);
    delay(400);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(3);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,440);
    delay(400);
    noTone(3);
    tone(3,440);
    delay(400);
    noTone(3);
    tone(3,554);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,554);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,554);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,349);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,440);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,392);
    delay(400);
    tone(3,349);
    delay(400);
    tone(3,466);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,466);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,466);
    delay(400);
    noTone(3);
    delay(15);
    tone(3,392);
    delay(800);
    tone(3,523);
    delay(800);
    tone(3,440);
    delay(800);
    tone(3,554);
    delay(800);
    tone(3,440);
    delay(200);
    tone(3,587);
    delay(200);
    tone(3,698);
    delay(200);
    tone(3,880);
    delay(200);
    tone(3,659);
    delay(200);
    tone(3,554);
    delay(200);
    tone(3,880);
    delay(200);
    tone(3,1109);
    delay(200);
    tone(3,1175);
    delay(1600);
    }
     
  6. ostrov

    ostrov Гуру

    Завидую тем, у кого столько свободного времени.
     
  7. Здраствуйте, расскажите пожалуйста, что такое в виде массива
     
  8. mcureenab

    mcureenab Гуру

    Код (C++):
    void setup() {
    pinMode(3, OUTPUT);
    }

    const unsigned int melody[] ={ // Пары нота, длительность,
      698,200,
      587,200,
      440,200,
      587,200,
      698,200,
      587,200,
      440,200,
      587,200,
      698,200,
      523,200,
      440,200,
      523,200,
      698,200,
      523,200,
      440,200,
      523,200,
      659,200,
      554,200,
      440,200,
      554,200,
      659,200,
      554,200,
      440,200,
      554,200,
      659,200,
      554,200,
      440,200,
      554,200,
      659,400,
      880,400,
      294,1200,
      330,400,
      349,1600,
      440,600,
      392,600,
      440,400,
      262,1600,
      294,1200,
      330,400,
      349,800,
      330,800,
      392,800,
      440,800,
      392,800,
      349,400,
      0,3,
      349,400,
      0,3, // Нет звука.
      349,400,
      0,3,
      349,400,
      440,400,
      0,3,
      440,400,
      392,400,
      349,400,
      440,400,
      0,3,
      440,400,
      0,3,
      440,400,
      0,30,
      392,400,
      440,400,
      392,400,
      349,400,
      0,3,
      349,400,
      0,3,
      349,400,
      0,3,
      349,400,
      0,3,
      440,400,
      0,3,
      440,400,
      0,3,
      392,400,
      349,400,
      440,400,
      0,15,
      440,400,
      0,0,
      440,400,
      0,0,
      554,400,
      0,15,
      554,400,
      0,15,
      554,400,
      0,15,
      349,400,
      0,15,
      349,400,
      0,15,
      349,400,
      0,15,
      440,400,
      0,15,
      440,400,
      0,15,
      392,400,
      349,400,
      466,400,
      0,15,
      466,400,
      0,15,
      466,400,
      0,15,
      392,800,
      523,800,
      440,800,
      554,800,
      440,200,
      587,200,
      698,200,
      880,200,
      659,200,
      554,200,
      880,200,
      1109,200,
      1175,1600,
      0,65535 // маркер конца массива
    };

    void loop() {
      for( int i = 0; melody[i] && ( 65535 != melody[i+1] ); i += 2){
        if( melody[i] ) {
          tone(3, melody[i]);
        } else {
          noTone(3);
        }
        if( melody[ i + 1] ) {
          delay(melody[i + 1]);
        }
      }
    }
     
    NikitOS, Максимус-Бог и ostrov нравится это.
  9. NikitOS

    NikitOS Король шутов Администратор

    Даже ардуинщикам делать нечего
     
  10. danya plotnik

    danya plotnik Гик

    Зачем это?
     
  11. NikitOS

    NikitOS Король шутов Администратор

    Для уменьшения кода.
    У автора код длинный, а в данном коде с помощью цикла for он уменьшается.
    Каждый раз при повторении цикла переменная i увеличится на 1 пока при запросе ноты в массиве на месте равному i не будет равно 65535 будет играть нота соответствующая указанной в массиве.
     
  12. danya plotnik

    danya plotnik Гик

    понятно
     
  13. NikitOS

    NikitOS Король шутов Администратор

    Я не думаю.. Я сам еле понял что я написал:)