Помогите с кодом

Тема в разделе "Технологии радиолюбителя", создана пользователем Рокки1945, 5 окт 2016.

  1. Рокки1945

    Рокки1945 Гуру

    Подскажите пожалуйста, в этом коде - нажимая соответсвующую кнопку на пду - мелодия проигрывается, но нажимая другую мелодия соответсвующая этой кнопке не проигрывается - где копать?
    Код (C++):
    if ( irrecv.decode( &results )) { // если данные пришли
    switch ( results.value ) {
    case 0xFF926D:
    // Jingle Bells
    Qb_PLAY ("MNT255L4O2DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BAL1F+L4>DDC<A");
    Qb_PLAY ("L1BL4DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BA>DDDDEDC<AL2G.P4L4B");
    Qb_PLAY ("BL2BL4BBL2BL4B>D<G.L8AL1BL4>CCC.L8CL4C<BBL8BBL4BAABL2A");
    break;
    case 0xFF12ED:
    //The Ghostbusters Theme
    Qb_PLAY ("MNT150L8O3CCL16D+EL8GL4A+AL8CCL16D+EL8GL4A+AP8L16CCL8E");
    Qb_PLAY ("CD<A+P2>CL16CCL8<A+>CL4<AP4L16>CCL8D+CD<A+P8L4A+L8A+>C");
    Qb_PLAY ("P2L16CCL8D+CL4D+P4P8L16C<A+L8>CCL4CP2L16D+CD+CL4D+P4<A+");
    break;
    }

    irrecv.resume(); // принимаем следующую команду
    }
    ;
     
    Последнее редактирование модератором: 5 окт 2016
  2. Рокки1945

    Рокки1945 Гуру

    вообще ничего не играет, только перезагрузка и снова тоже самое
     
  3. Tomasina

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

    моветон, код надо оформить правильно (кнопочка "Код" на панели редактора) ;)
     
  4. Рокки1945

    Рокки1945 Гуру

    это часть кода - таких мелодий 7 штук, первый раз проигрывает любую выбирай - потом нажимаю и тишина!!
     
  5. ZAZ-965

    ZAZ-965 Гуру

    @рокки1945, у вас при компиляции не ругается, что библиотеки Qb_PLAY и IRremote используют один и тот же таймер(TIMER2)?
     
  6. Рокки1945

    Рокки1945 Гуру

    а можно поподробнее
     
  7. ZAZ-965

    ZAZ-965 Гуру

    Попробуйте в файле Arduino\libraries\IRremote\IRremoteInt.h строки 224-225 изменить так
    Код (C++):
    #else
        #define IR_USE_TIMER1   // tx = pin 9
        //#define IR_USE_TIMER2     // tx = pin 3

    #endif
    т.е. первую раскомментировать, а вторую закомментировать.
     
    Рокки1945 нравится это.
  8. Рокки1945

    Рокки1945 Гуру

    сейчас

    я не нашел этой строки
     
    Последнее редактирование модератором: 5 окт 2016
  9. ZAZ-965

    ZAZ-965 Гуру

  10. Рокки1945

    Рокки1945 Гуру

    совершенно верно!
    #include "IRremote.h"

    IRrecv irrecv(2); // указываем вывод, к которому подключен приемник

    decode_results results;
    int IN1 = 5; // Input1 подключен к выводу 8
    int IN2 = 6;
    int freq[7][12] = {
    {65, 69, 73, 78, 82, 87, 92, 98, 104, 110, 117, 123}, //0 = Большая октава
    {131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247}, //1 = Малая октава
    {262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494}, //2 = 1-я октава
    {523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988}, //3 = 2-я октава
    {1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 1976}, //4 = 3-я октава
    {2093, 2218, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 3951}, //5 = 4-я октава
    {4186, 4435, 4699, 4978, 5274, 5588, 5920, 6272, 6645, 7040, 7459, 7902}, //6 = 5-я октава
    };
    int SoundPin=11;
    int extractNumber(int& myNumber, char Muz[], int& curPosition)
    {
    int digitsNumber=0;
    int curDigit=0;
    myNumber=0;
    do
    {
    if ((Muz[curPosition]> 47) && (Muz[curPosition]<58)) // Коды ASCII цифр '0' == 48 , "9' == 57
    {
    curDigit=Muz[curPosition]-48;
    digitsNumber++;
    myNumber=myNumber*10+curDigit;
    }
    else
    {
    return digitsNumber;
    }
    curPosition++;
    }while(Muz[curPosition]!= '\0');
    return digitsNumber;
    }

    int pointsCount(char Muz[], int& curPosition)
    {
    int pointsNumber=0;
    do
    {
    if (Muz[curPosition]== '.')
    {
    pointsNumber++;
    }
    else
    {
    return pointsNumber;
    }
    curPosition++;
    }while(Muz[curPosition]!= '\0');
    return pointsNumber;
    }

    void Qb_PLAY(char Muz[])
    {
    static int generalOktava;
    int oktava;
    static int tempo=120; // Задание темпа или четвертных нот, которые исполняются в минуту. n от 32 до 255. По умолчанию 120
    int Nota=0;
    int curPosition, curNota4;
    unsigned long currentNotaPauseDuration;
    unsigned long currentNotaDuration;
    unsigned long pauseDuration;
    int takt=240000/tempo;
    bool isNota;
    bool isPause;
    int pointsNum=0;
    float generalNotaMultipl=0.875;
    static float NotaLong;
    float curMultipl;
    float tempFlo;
    float curPause;
    unsigned long tempLong;
    int i=0;
    do
    {
    isNota=false;
    isPause=false;
    oktava=generalOktava;
    switch(Muz){
    case '\0':{
    return;
    }
    break;
    case 'C':{
    Nota=0;
    isNota=true;
    }
    break;
    case 'D':{
    Nota=2;
    isNota=true;
    }
    break;
    case 'E':{
    Nota=4;
    isNota=true;
    }
    break;
    case 'F':{
    Nota=5;
    isNota=true;
    }
    break;
    case 'G':{
    Nota=7;
    isNota=true;
    }
    break;
    case 'A':{
    Nota=9;
    isNota=true;
    }
    break;
    case 'B':{
    Nota=11;
    isNota=true;
    }
    break;
    case 'N':{// Nнота Играет определенную ноту (0 - 84) в диапазоне семи октав (0 - пауза).
    curPosition=i+1;
    if (extractNumber(curNota4, Muz, curPosition)){
    i=curPosition-1;
    if (curNota4){
    curNota4--;
    oktava=curNota4 / 12;
    Nota=curNota4 % 12;
    isNota=true;
    }
    else{
    isPause=true;
    }
    }
    }
    break;
    case 'O':{ //Oоктава Задает текущую октаву (0 - 6).
    curPosition=i+1;
    if (extractNumber(oktava, Muz, curPosition)){
    i=curPosition-1;
    generalOktava=oktava;
    }
    }
    break;
    case '>':{
    generalOktava++;
    }
    break;
    case '<':{
    generalOktava--;
    }
    break;
    case 'M':{
    switch(Muz[i+1]){
    case 'N':{ //MN Нормаль. Каждая нота звучит 7/8 времени, заданного в команде L
    generalNotaMultipl=0.875; // =7/8
    i++;
    }
    break;
    case 'L':{ //ML Легато. Каждая нота звучит полный интервал времени, заданного в команде L
    generalNotaMultipl=1.0;
    i++;
    }
    break;
    case 'S':{ //MS Стаккато. Каждая нота звучит 3/4 времени, заданного в команде L
    generalNotaMultipl=0.75; // =3/4
    i++;
    }
    break;
    case 'F':{ //MF Режим непосредственного исполнения. Т.е. на время проигрывания ноты программа приостанавливается. Используется по умолчанию
    i++; //Сдвигаем точку чтения и ничего не делаем.
    }
    break;

    case 'B':{ //MB проигрывние в буффер
    i++; //Сдвигаем точку чтения и ничего не делаем.
    }
    break;
    }
    }
    break;
    case 'L':{ //Lразмер Задает длительность каждой ноты (1 - 64). L1 - целая нота, L2 - 1/2 ноты и т.д.
    curPosition=i+1;
    if (extractNumber(curNota4, Muz, curPosition)){
    i=curPosition-1;
    tempFlo=float(curNota4);
    NotaLong=1/tempFlo;
    }
    }
    break;
    case 'T':{ //Tтемп Задает темп исполнения в четвертях в минуту (32-255).По умолчанию 120
    curPosition=i+1;
    if (extractNumber(tempo, Muz, curPosition)){
    i=curPosition-1;
    takt=240000/tempo; // миллисекунд на 1 целую ноту. 240000= 60 сек * 1000 мсек/сек *4 четвертей в ноте
    }
    }
    break;
    case 'P':{ //Pпауза Задает паузу (1 - 64). P1 - пауза в целую ноту, P2 - пауза в 1/2 ноты и т.д.
    curPosition=i+1;
    if (extractNumber(curNota4, Muz, curPosition)){
    tempFlo=float(curNota4);
    curPause=1/tempFlo;
    i=curPosition-1;
    isPause=true;
    }
    }
    break;
    case ' ':{ //Есть в некоторых текстах. Вероятно это пауза длительностью в текущую ноту
    curPause= NotaLong;
    isPause=true;
    }
    break;
    }
    if (isNota){
    switch(Muz[i+1]){
    case '#':{ // диез
    Nota++;
    i++;
    }
    break;
    case '+':{ // диез
    Nota++;
    i++;
    }
    break;
    case '-':{ // бемоль
    Nota--;
    i++;
    }
    break;
    }
    curPosition=i+1;
    if (extractNumber(curNota4, Muz, curPosition)){
    currentNotaDuration=takt/curNota4;
    i=curPosition-1;
    }
    }
    if (oktava<0) oktava=0;
    if (oktava>6) oktava=6;
    if (isNota || isPause){
    curPosition=i+1;
    pointsNum=pointsCount(Muz, curPosition);
    if (pointsNum) i=curPosition-1;
    curMultipl=1.0;
    for (int j=1; j<=pointsNum; j++) {
    curMultipl= curMultipl * 1.5;
    }
    currentNotaPauseDuration=(takt*NotaLong);
    }
    if (isNota){
    curMultipl=curMultipl*generalNotaMultipl;
    currentNotaDuration= (currentNotaPauseDuration*curMultipl);
    if (Nota<0) Nota=0;
    if (Nota>11) Nota=11;
    tempLong= freq[oktava][Nota];
    tone(SoundPin,tempLong,currentNotaDuration);
    delay(currentNotaPauseDuration);
    }
    if (isPause){
    pauseDuration=takt*curPause*curMultipl;
    delay(pauseDuration);
    }
    i++;
    } while (Muz!= '\0');
    }


    void setup() {
    irrecv.enableIRIn(); // запускаем прием
    pinMode (IN2, OUTPUT);
    pinMode (IN1, OUTPUT);
    pinMode(SoundPin, OUTPUT);

    }

    void loop() {
    if ( irrecv.decode( &results )) { // если данные пришли
    switch ( results.value ) {

    case 0xFF3AC5:
    analogWrite( IN1, 255 );
    break;
    case 0xFFBA45:
    analogWrite( IN2, 255 );
    break;
    case 0xFF827D:
    analogWrite( IN1, 0 );
    analogWrite( IN2, 0 );
    break;
    case 0xFF28D7:
    for (int i=0; i <= 255; i++)
    {
    analogWrite(IN1, i);
    delay(10);
    }
    break;
    case 0xFF08F7:
    for (int x=255; x > 0; x--)
    {
    analogWrite(IN1, x);
    delay(10);
    }
    break;
    case 0xFF2AD5:
    // Bach 1
    Qb_PLAY ("MNT150L8O3AL16>C<AL8EL16AEL8CL16ECL4<AL16EA>C<ABABAG+");
    Qb_PLAY ("B>D<B>C<B>C<AL8>AL16>C<AL8EL16AEL8CL16ECL4<AL16>C<BL8>C");
    Qb_PLAY ("L16C<BL8>CAL16C.L32DL8C<BL16>ED+L8EL16ED+L8E>CL16<E.L32F");
    break;
    case 0xFFAA55:
    // KATIUSHA
    Qb_PLAY ("MST255L2O2E.L4F+L2G.L4EGGF+EL2F+L4<BP4L2>F+.L4GL2A.L4F+");
    Qb_PLAY ("AAGF+L1EL2B>EDL4EDCC<BAL2BEP4>CL4<AL2B.L4GF+<B>GF+L1E");
    Qb_PLAY ("L2B>EDL4EDCC<BAL2BEP4>CL4<AL2B.L4GF+<B>GF+L1E");
    break;
    case 0xFF926D:
    // Jingle Bells
    Qb_PLAY ("MNT255L4O2DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BAL1F+L4>DDC<A");
    Qb_PLAY ("L1BL4DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BA>DDDDEDC<AL2G.P4L4B");
    Qb_PLAY ("BL2BL4BBL2BL4B>D<G.L8AL1BL4>CCC.L8CL4C<BBL8BBL4BAABL2A");
    break;
    case 0xFF12ED:
    //The Ghostbusters Theme
    Qb_PLAY ("MNT150L8O3CCL16D+EL8GL4A+AL8CCL16D+EL8GL4A+AP8L16CCL8E");
    Qb_PLAY ("CD<A+P2>CL16CCL8<A+>CL4<AP4L16>CCL8D+CD<A+P8L4A+L8A+>C");
    Qb_PLAY ("P2L16CCL8D+CL4D+P4P8L16C<A+L8>CCL4CP2L16D+CD+CL4D+P4<A+");
    break;
    case 0xF0AF5:
    // HABANERA
    Qb_PLAY ("MNT150L4O1D.L16A.L8>F.<A.L4D.L16A.L8>F.<A.L4D.L16A.L8>F.");
    Qb_PLAY ("<A.L4D.L16A.L8O4D.C+.L4C.L16C.L8<B.A+.L4A.L16A.L8G+.G.");
    Qb_PLAY ("L16FGFE.F.L8G.F.L32DL4E.L8>D.C+.L4C.L16C.L8<B.A+.L4A.");
    break;
    case 0xFF8A75:
    // Ave Maria
    Qb_PLAY ("MLT100L16O1A+.>D.F.<A+.>D.F.<A+.>D.F.<A+.>D.F.A+.D.F.<A+.>D.F.<A+.>");
    Qb_PLAY ("D.E.A.D.A+.>D.<D.F.<F.A+.>D.<F.A.>D+.<F.A.O3C.<A+.<A+.>D.<G.A+.>D.<");
    Qb_PLAY ("G.A+.>D.<G.A+.>D.>C.O1G.>C.<D+.G.>C.>DC<A+.C.A.G.C.A.A+.D.F.<A+.>D.");
    break;
    case 0xFFB24D:
    //REM The Toriador
    Qb_PLAY ("MNT150L4O3CL8D.L16CL8<AL16AP16L4AL8A.L16GL8A.L16A+L4A");
    Qb_PLAY ("L8AP8L4A+L8G.L16>CL4<A.P8FL8D.L16GL4C.P8L2GL8G>DC<A+A");
    Qb_PLAY ("GAA+L4A.P8EAAL8G+BL1>EL8EL16DEDL8C+D<GAA+P8L16AA+AL8F");
    break;
    case 0xFF32CD:
    //Нас утро
    tone(11, 700, 300);
    delay(600);
    tone(11, 700, 300);
    delay(600);
    tone(11, 780, 150);
    delay(300);
    tone(11, 700, 150);
    delay(300);
    tone(11, 625, 450);
    delay(600);
    tone(11, 590, 150);
    delay(300);
    tone(11, 520, 150);
    delay(300);
    tone(11, 460, 450);
    delay(600);
    tone(11, 350, 450);
    delay(600);
    tone(11, 350, 450);
    delay(600);
    tone(11, 460, 450);
    delay(600);
    tone(11, 520, 150);
    delay(300);
    tone(11, 590, 150);
    delay(300);
    tone(11, 625, 450);
    delay(600);
    tone(11, 590, 150);
    delay(300);
    tone(11, 520, 150);
    delay(300);
    tone(11, 700, 1350);
    delay(1800);
    tone(11, 700, 300);
    delay(600);
    tone(11, 700, 300);
    delay(600);
    tone(11, 780, 150);
    delay(300);
    tone(11, 700, 150);
    delay(300);
    tone(11, 625, 450);
    delay(600);
    tone(11, 590, 150);
    delay(300);
    tone(11, 520, 150);
    delay(300);
    tone(11, 460, 450);
    delay(600);
    tone(11, 350, 450);
    delay(600);
    tone(11, 350, 450);
    delay(600);
    tone(11, 625, 450);
    delay(600);
    tone(11, 590, 150);
    delay(300);
    tone(11, 520, 150);
    delay(300);
    tone(11, 700, 450);
    delay(600);
    tone(11, 590, 150);
    delay(300);
    tone(11, 520, 150);
    delay(300);
    tone(11, 460, 1350);
    break;

    case 0xFF38C7:
    //марио
    tone(11,1318,150);
    delay(150);
    tone(11,1318,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,1046,150);
    delay(150);
    tone(11,1318,300);
    delay(300);
    tone(11,1568,600);
    delay(600);
    tone(11,784,600);
    delay(600);
    tone(11,1046,450) ; // 2й такт
    delay(450);
    tone(11,784,150);
    delay(450);
    tone(11,659,300);
    delay(450);
    tone(11,880,300);
    delay(300);
    tone(11,987,150);
    delay(300);
    tone(11,932,150);
    delay(150);
    tone(11,880,300);
    delay(300);
    tone(11,784,210); // 3й такт
    delay(210);
    tone(11,1318,210);
    delay(210);
    tone(11,1568,150);
    delay(150);
    tone(11,1750,300);
    delay(300);
    tone(11,1396,150);
    delay(150);
    tone(11,1568,150);
    delay(300);
    tone(11,1318,300);
    delay(300);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(150);
    tone(11,987,450);
    delay(450);
    tone(11,1046,450); // 4й такт
    delay(450);
    tone(11,784,150);
    delay(450);
    tone(11,659,300);
    delay(450);
    tone(11,880,300);
    delay(300);
    tone(11,987,150);
    delay(300);
    tone(11,932,150);
    delay(150);
    tone(11,880,300);
    delay(300);
    tone(11,784,210); // 5й такт
    delay(210);
    tone(11,1318,210);
    delay(210);
    tone(11,1568,150);
    delay(150);
    tone(11,1750,300);
    delay(300);
    tone(11,1396,150);
    delay(150);
    tone(11,1568,150);
    delay(300);
    tone(11,1318,300);
    delay(300);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(150);
    tone(11,987,450);
    delay(600);
    tone(11,1568,150); // 6ой Спуск вниз
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,830,150);
    delay(150);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(300);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(150);
    delay(300); // 7ой
    tone(11,1568,150);
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,2093,300);
    delay(300);
    tone(11,2093,150);
    delay(150);
    tone(11,2093,600);
    delay(600);
    tone(11,1568,150); // 6ой Спуск вниз ПОВТОР
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,830,150);
    delay(150);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(300);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(450);
    tone(11,1244,300);
    delay(450);
    tone(11,1174,450);
    delay(450);
    tone(11,1046,600);
    delay(1200 );
    tone(11,1568,150); // 6ой Спуск вниз
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,830,150);
    delay(150);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(300);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(150);
    delay(300); // 7ой
    tone(11,1568,150);
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,2093,300);
    delay(300);
    tone(11,2093,150);
    delay(150);
    tone(11,2093,600);
    delay(600);
    tone(11,1568,150); // 6ой Спуск вниз ПОВТОР
    delay(150);
    tone(11,1480,150);
    delay(150);
    tone(11,1396,150);
    delay(150);
    tone(11,1244,300);
    delay(300);
    tone(11,1318,150);
    delay(300);
    tone(11,830,150);
    delay(150);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(300);
    tone(11,880,150);
    delay(150);
    tone(11,1046,150);
    delay(150);
    tone(11,1174,150);
    delay(450);
    tone(11,1244,300);
    delay(450);
    tone(11,1174,450);
    delay(450);
    break;

    case 0xFFB847:
    //звёздные войны
    tone(11, 392, 350);
    delay(350);
    tone(11, 392, 350);
    delay(350);
    tone(11, 392, 350);
    delay(350);
    tone(11, 311, 250);
    delay(250);
    tone(11, 466, 100);
    delay(100);
    tone(11, 392, 350);
    delay(350);
    tone(11, 311, 250);
    delay(250);
    tone(11, 466, 100);
    delay(100);
    tone(11, 392, 700);
    delay(700);

    tone(11, 587, 350);
    delay(350);
    tone(11, 587, 350);
    delay(350);
    tone(11, 587, 350);
    delay(350);
    tone(11, 622, 250);
    delay(250);
    tone(11, 466, 100);
    delay(100);
    tone(11, 369, 350);
    delay(350);
    tone(11, 311, 250);
    delay(250);
    tone(11, 466, 100);
    delay(100);
    tone(11, 392, 700);
    delay(700);

    tone(11, 784, 350);
    delay(350);
    tone(11, 392, 250);
    delay(250);
    tone(11, 392, 100);
    delay(100);
    tone(11, 784, 350);
    delay(350);
    tone(11, 739, 250);
    delay(250);
    tone(11, 698, 100);
    delay(100);
    tone(11, 659, 100);
    delay(100);
    tone(11, 622, 100);
    delay(100);
    tone(11, 659, 450);
    delay(450);

    tone(11, 415, 150);
    delay(150);
    tone(11, 554, 350);
    delay(350);
    tone(11, 523, 250);
    delay(250);
    tone(11, 493, 100);
    delay(100);
    tone(11, 466, 100);
    delay(100);
    tone(11, 440, 100);
    delay(100);
    tone(11, 466, 450);
    delay(450);

    tone(11, 311, 150);
    delay(150);
    tone(11, 369, 350);
    delay(350);
    tone(11, 311, 250);
    delay(250);
    tone(11, 466, 100);
    delay(100);
    tone(11, 392, 750);
    delay(750);
    break;
    }

    irrecv.resume(); // принимаем следующую команду
    }
    }

    там еще управление двигателем, спасибо за внимание

    соль в том, что после проигрывания мелодии, ни на одну кнопку - программа не реагирует - не могу понять в чём дело

    мне понравилось про таймеры, ну где копать

    может в функции мелодии закинуть и вызывать их
     
    Последнее редактирование модератором: 5 окт 2016
  11. Рокки1945

    Рокки1945 Гуру

    не вышло
     
  12. ZAZ-965

    ZAZ-965 Гуру

    Так, проверил ваш пример в Arduino IDE -
    1. в функции void Qb_PLAY была ошибка (опечатка)
    Код (C++):
    //было
    switch(Muz){

    //должно быть
    switch(Muz[i]){
    2. после исправления первой ошибки, компилятор выдал ожидаемую ошибку повторного определения таймера - multiple definition of `__vector_7'
    3. В библиотеке МоиДокументы\Arduino\libraries\IRremote\IRremoteInt.h (брал в https://github.com/z3t0/Arduino-IRremote) изменил строки
    Код (C++):
    // Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
    #else
        #define IR_USE_TIMER1   // tx = pin 9
        //#define IR_USE_TIMER2     // tx = pin 3

    #endif
    т.е. первую раскомментировал, а вторую закомментировал.
     
  13. Рокки1945

    Рокки1945 Гуру

    спасибо , а что делать?

    там вроде правильно
    switch(Muz){
    case '\0':{
    return;
    }
     
    Последнее редактирование модератором: 5 окт 2016
  14. ZAZ-965

    ZAZ-965 Гуру

    Исправить две ошибки - Muz и выбор таймера в файле IRremoteInt.h
     
    Рокки1945 нравится это.
  15. Рокки1945

    Рокки1945 Гуру

    попробую

    вы мой кумир - выдрал старую библию, вставил новую в ней подправил строчки и всё
     
    Последнее редактирование модератором: 5 окт 2016
  16. Рокки1945

    Рокки1945 Гуру

    хочу вас в друзья
     
  17. Рокки1945

    Рокки1945 Гуру

    а можно как нибудь оперативку увеличить?
     
  18. ZAZ-965

    ZAZ-965 Гуру

    Для полного порядка стоит еще мелодии в стиле tone-delay-tone переписать на Qb_PLAY.
    И строки мелодий разместить во Flash.
     
    Рокки1945 нравится это.
  19. Рокки1945

    Рокки1945 Гуру

    спасибоооооооооооооооооооо