мелодия из гравити фолз на 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 Иномирянин

    ужас какой...
     
    BAR__MEN нравится это.
  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]);
        }
      }
    }
     
    BAR__MEN, Максимус-Бог и ostrov нравится это.
  9. BAR__MEN

    BAR__MEN Гуру

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

    danya plotnik Гик

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

    BAR__MEN Гуру

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

    danya plotnik Гик

    понятно
     
  13. BAR__MEN

    BAR__MEN Гуру

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