Нужен скетч для модели на радиоупровление

Тема в разделе "Закажу проект", создана пользователем Aleks053, 22 янв 2021.

  1. Aleks053

    Aleks053 Нуб

    Нужен скетч для заливки в ардуино с DFPLayerMini для воспроизведения звуковых эффектов для радиоупровляемой модели. При включении аппаратуры авто заводится, и работает на холостом ходу далее нажимаем кнопку газа вперёд звук движения, нейтральное положение звук холостого хода 15 секунд бездействие авто глохнет кнопка газа заднего хода звук движения.
     
    Последнее редактирование: 22 янв 2021
  2. Airbus

    Airbus Радиохулиган Модератор

    Просто читаем waw файлы с sd карты Типо так
     
  3. Aleks053

    Aleks053 Нуб

    mp3, 6 треков включаются в зависимости от задачи к примеру кнопка газа вперёд трек движения. Есть видио того что мне нужно, могу скинуть
     
  4. prv

    prv Нерд

    Здравствуйте, скидывайте все материалы+видео мне на почту и обсудим ваш проект: petrovskyi.rv@gmail.com
     
  5. sser

    sser Гик

    А если МП3 файл закончит проигрывание звука "движение", а езда будет продолжаться?
     
  6. Airbus

    Airbus Радиохулиган Модератор

    По кругу файл гонять
     
  7. Aleks053

    Aleks053 Нуб

    Схема не подойдёт нужно управление с пульта связать с ардуинкой. Там в принципе такого длительного движения почти нет даже если по кругу там максимум 2 раза https://m.vk.com/video-153275982_456239069
     
  8. Aleks053

    Aleks053 Нуб

    Есть скетч управление светом с радиоаппаратуры. Можно ли заменить управление светом, на звук добавив ДФПлеер. ближний свет (холостой ход) дальний свет(звук движения) лампа заднего хода (звук движения назад) канал руля звук сигнала
     
  9. a1000

    a1000 Гуру

    Переделать можно всё, даже стандартный блинк на управление углом впрыска топлива в зависимости от высоты над уровнем моря и курса доллара на Нью-Йо́ркской бирже. Вопрос в целесообразности. Скетч выкладывайте, будем смотреть.
     
  10. Airbus

    Airbus Радиохулиган Модератор

    Есть Тупые микросхемы RX2B и TX2B. Стоят копейки но пятикомандную аппаратуру р/у сделать можно.И совсем без Ардуин

     
  11. Aleks053

    Aleks053 Нуб

    Какая цена готового изделия
     
  12. Aleks053

    Aleks053 Нуб

    Ссылка на скеч, загрузить не получается
     
  13. Aleks053

    Aleks053 Нуб

    Загрузить не получается вот Скетч.
    Код (Text):
    // PPM read from receiver

    int rul = 3; //PPM in for INT1 канал руля
    int gaz = 2; //PPM in for INT2 канал газа

    int gabar_stop1 = 9; //канал стопа/заднего габарита
    int gabar_stop2 = 10; //канал стопа/заднего габарита

    int left1 = 14; // поворотник левый передний
    int left2 = 15; // поворотник левый задний
    int right1 = 16; // поворотник правый передний
    int right2 = 17; // поворотник правый задний

    int fara1 = 5;  // фара  внутренняя
    int fara2 = 6;  // фара  внутренняя
    int fara3 = 7;  // фара  внешняя
    int fara4 = 8;  // фара  внешняя

    int zx = 12; // задний ход

    volatile unsigned long lt, ct, ms_rul,tmp, lt1, ct1, ms_gaz,tmp1, maxgaz, mingaz, maxrul, minrul,mig,far ;

    volatile  unsigned long zad, flag, time, avar, sound, mig1;


    void setup(){
      pinMode(rul, INPUT);
      pinMode(gaz, INPUT);
     
      pinMode (gabar_stop1, OUTPUT);
      pinMode (gabar_stop2, OUTPUT);
     
      pinMode (zx, OUTPUT);
     
      pinMode (fara1, OUTPUT );
      pinMode (fara2, OUTPUT );
      pinMode (fara3, OUTPUT );
      pinMode (fara4, OUTPUT );
     
      pinMode (left1, OUTPUT);
      pinMode (left2, OUTPUT);
      pinMode (right1, OUTPUT);
      pinMode (right2, OUTPUT);
     
     
      digitalWrite (gabar_stop1, LOW);
      digitalWrite (gabar_stop2, LOW);

      digitalWrite (zx, LOW);
     
      digitalWrite (left1, LOW);
      digitalWrite (left2, LOW);
      digitalWrite (right1, LOW);
      digitalWrite (right2, LOW);

     
      digitalWrite (rul, HIGH);      //Pull-up pin
      digitalWrite (gaz, HIGH);      //Pull-up pin
     
      attachInterrupt(0, rul_ppm, CHANGE);  //PPM read interrupt
      attachInterrupt(1, gaz_ppm, CHANGE);
     
      //
     
     
      maxgaz=1550; // настраиваемая переменная включения фар;
      mingaz=1400; // настраиваемая переменная включения стопов;
      maxrul=1550; // настраиваемая переменная включения правого поворота;
      minrul=1400; // настраиваемая переменная включения левого поворота ;
     
     
      mig=0; // переменная для мигания поворотами;
      far=0; // переменная для плавного зажигания средних фар;
    zad=0; // переменная разрешения включения заднего хода
      ms_rul=1475;
      ms_gaz=1475;
      time=0; mig=0; mig1=0; avar=1; sound=0;



    // Serial.begin(9600);








    tone (11,3000);
    delay (100);
    noTone (11);
    digitalWrite (right1, HIGH); digitalWrite (left1, HIGH);

    delay (1000);
    digitalWrite (right1, LOW); digitalWrite (left1, LOW);

    delay (1000);
    digitalWrite (right2, HIGH); digitalWrite (left2, HIGH);
    delay (1000);
    digitalWrite (right2, LOW);digitalWrite (left2, LOW);
    delay (1000);
    analogWrite(gabar_stop1, 255 ); analogWrite(gabar_stop2, 255);
    delay (1000);
    analogWrite(gabar_stop1, 10 ); analogWrite(gabar_stop2, 10);
    delay (1000);


    delay (1000);




    }

    void loop()
    {
     
    Serial.println();

    //Serial.println(time);
    Serial.println(ms_rul);

    digitalWrite (fara3, HIGH); digitalWrite (fara4, HIGH);

    //  включение заднего хода и стопов
    switch (zad)
       {

       case 0:    
            //включение стопов
         if (ms_gaz > mingaz && ms_gaz < maxgaz) { analogWrite(gabar_stop1, 255 ); analogWrite(gabar_stop2, 255); zad=1; } else { analogWrite(gabar_stop1, 10 ); analogWrite(gabar_stop2, 10); }      
                           
          break;

       case 1 :

          // задний ход
         if (ms_gaz < mingaz)  {digitalWrite (zx, HIGH);
                               analogWrite(gabar_stop1, 10 ); analogWrite(gabar_stop2, 10);
                               delay (1);
                               }
                        else   {(digitalWrite (zx, LOW));
                              analogWrite(gabar_stop1, 255 ); analogWrite(gabar_stop2, 255);
                                noTone (11);
                               }  
         break;
    }

    //включение фар

    if (ms_gaz > maxgaz)
           {
          zad=0;
          analogWrite (fara1, far); analogWrite (fara2, far);
          delay(1);
          if (far < 255) far++;
          }
                        else
                        {
                        analogWrite (fara1, 2); analogWrite (fara2, 2);
                       far=5;
                   
                        }
                       
    // повороты и аварийка    
      if (ms_gaz < maxgaz && ms_gaz > mingaz)                    
                             {
                                  time++;
                                   if (time>= 50000) avar=0;
                                   else avar=1; }
      else { time=0; mig1=0;}

    switch (avar)
    {

       case 0:    
                  mig1++;
                  if (mig1 >= 300)
                 {digitalWrite (right1, HIGH); digitalWrite (right2, HIGH); digitalWrite (left1, HIGH); digitalWrite (left2, HIGH);}
                  else
                 { digitalWrite (left1, LOW); digitalWrite (left2, LOW); digitalWrite (right1, LOW);digitalWrite (right2, LOW);}

                    if (mig1>=600) mig1=0;        
                    delay (1);          
                             
          break;

    default :

    if (mig>=600) mig=0;
    if (ms_rul< minrul ) {mig++; digitalWrite (left1, HIGH); digitalWrite (left2, HIGH); } else {  digitalWrite (left1, LOW); digitalWrite (left2, LOW);}
    if (ms_rul< minrul && mig >= 300 ) {digitalWrite (left1, LOW); digitalWrite (left2, LOW);}

    if (ms_rul> maxrul ) {mig++; digitalWrite (right1, HIGH); digitalWrite (right2, HIGH);} else { digitalWrite (right1, LOW);digitalWrite (right2, LOW);}
    if (ms_rul> maxrul && mig >= 300 ) {digitalWrite (right1, LOW);digitalWrite (right2, LOW);}                      

    if (ms_rul< maxrul && ms_rul>minrul) mig=0;

    break;
    }

    }

    void gaz_ppm() {    // PPM read interrupt
    ct = micros(); // read current time
    ms_gaz=ct-lt; // ms = current time - last time
    lt=ct; // last time
    if(ms_gaz>2200)  // fix time bug
       ms_gaz=tmp;        // fix time bug
       tmp=ms_gaz;        // fix time bug
    }  
    void rul_ppm() {    // PPM read interrupt
    ct1 = micros(); // read current time
    ms_rul=ct1-lt1; // ms = current time - last time
    lt1=ct1; // last time
    if(ms_rul>2200)  // fix time bug
       ms_rul=tmp1;        // fix time bug
       tmp1=ms_rul;        // fix time bug
    }
    А вот что должно получиться https://m.vk.com/video170354954_456239028?list=18c490894860af9e3e&from=mail115
     
    Последнее редактирование модератором: 4 фев 2021
  14. Aleks053

    Aleks053 Нуб

  15. Aleks053

    Aleks053 Нуб