Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

renoshnik
2021-01-13 14:26:45
Olejaa пише:
renoshnik пише:
Olejaa пише:

Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам

Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.

Где можно почитать информацию по этому поводу?

https://www.drive2.ru/b/2684104/

https://www.drive2.ru/b/3098242/

Olejaa
2021-01-12 21:23:05
renoshnik пише:
Olejaa пише:
гIсть пише:

Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?

Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам

Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.

Где можно почитать информацию по этому поводу?

Olejaa
2021-01-12 21:15:55

В общем на сегодняшний день ситуация такая: я подключил через реле к управляющим контактам плеера все получилось, но smile  каждый раз когда срабатывает датчик трек запускается с начала, думаю это можно исправить задержкой, все таки хочется сделать максимально просто wink  Вот прилагаю скетч:
*нет второго датчика, поэтому скетч не дописан)

#include <SoftwareSerial.h>   
#include <DFPlayer_Mini_Mp3.h>
#define Trig 4
#define Echo 5
#define ledPin 3
#define ledPin2 2
#define Ctrl1 6
#define Ctrl2 7


void setup()

 
  Serial.begin(9600);
  mp3_set_serial (Serial);
  delay (100);
  mp3_set_volume (25);             
  pinMode(Trig, OUTPUT);
  pinMode(Echo, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(Ctrl1, OUTPUT);
  pinMode(Ctrl2, OUTPUT);

}
unsigned int impulseTime=0;
unsigned int distance_sm=0;

void loop()

  digitalWrite(Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  impulseTime=pulseIn(Echo, HIGH);
  distance_sm=impulseTime/58;
  Serial.println(distance_sm);
  if (distance_sm<150)
  {     
    digitalWrite(ledPin, HIGH);
    digitalWrite(Ctrl1, HIGH);
    delay (100);
 
  } 
  else
  {   
    digitalWrite(ledPin, LOW);
    digitalWrite(Ctrl1, LOW);
 
  }   
  delay(100);
}

renoshnik
2021-01-07 15:29:14
Olejaa пише:
гIсть пише:

Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?

Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам

Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.

г0сть
2021-01-07 11:13:35
Olejaa пише:

Это все как у меня, кроме указание портов, так-как я подключил к разъемам RX/TX и оно не работает так)) Может проблема в этом?

Хрустальный шар после всех этих праздников помутнел, поэтому схему подключения и код (ПОЛНЫЙ) в студию.

Olejaa
2021-01-07 03:08:06

P.S. Всех поздравляю с Новым Годом и Рождеством Христовым! Здоровья нам в этом году и грандиозных проэктов! smile

Olejaa
2021-01-07 03:04:10
гIсть пише:

Синяя изолента закончилась, поэтому за работоспособность не ручаюсь. Могут быть разные библиотеки

#define Trig   4 /* Обозначаем пин подачи импульса*/ 
#define Echo 5 /* Обозначаем пин приема импульса*/ 
#define ledPin 3

#include <SoftwareSerial.h>               // Подключаем библиотеку SoftwareSerial
#include <DFPlayer_Mini_Mp3.h>             // Подключаем библиотеку DFPlayer
 
SoftwareSerial mySerial(10, 11);          // Указываем к какими портам подключен DFPlayer


void setup() 
{ 
pinMode (Trig, OUTPUT); /*инициируем как выход */ 
pinMode (Echo, INPUT);   /*инициируем как вход */ 
Serial.begin (9600);           /* устанавливаем скорость порта */ 
mySerial.begin(9600);                   // Открываем последовательную связь
mp3_set_serial(mySerial);                  // инициализация
mp3_set_volume(20);     
} 
unsigned int impulseTime=0; 
unsigned int distance_sm=0; 

void loop()
 { 
digitalWrite (Trig, HIGH);                       /* Подаем импульс на вход trig дальномера */ 
delayMicroseconds (10);                       /* Импульс длится 10 микросекунд */ 
digitalWrite (Trig, LOW);                        // Отключаем подачу импульса 
impulseTime=pulseIn (Echo, HIGH);    /* Принимаем импульс и подсчитываем его длину*/ 
distance_sm =impulseTime/58;           /* Пересчитываем его значение в сантиметры */ 
Serial.println( distance_sm);                 /* Выводим значение на порт программы */ 

Serial.println(distance_sm);
  if (distance_sm<150)
  {     
    digitalWrite(ledPin, HIGH);
    mp3_play(1);
  } 
  else
  {   
    digitalWrite(ledPin, LOW);
  }   

delay (200); 
}

Это все как у меня, кроме указание портов, так-как я подключил к разъемам RX/TX и оно не работает так)) Может проблема в этом?
Я уже задумываюсь о том что, действительно, с ардуино послать сигнал на реле а с реле через сопротивление к управляющим разъемам DFmini)

Olejaa
2021-01-07 02:59:51
гIсть пише:

Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?

Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам

гIсть
2020-12-31 09:43:46

Синяя изолента закончилась, поэтому за работоспособность не ручаюсь. Могут быть разные библиотеки

#define Trig   4 /* Обозначаем пин подачи импульса*/ 
#define Echo 5 /* Обозначаем пин приема импульса*/ 
#define ledPin 3

#include <SoftwareSerial.h>               // Подключаем библиотеку SoftwareSerial
#include <DFPlayer_Mini_Mp3.h>             // Подключаем библиотеку DFPlayer
 
SoftwareSerial mySerial(10, 11);          // Указываем к какими портам подключен DFPlayer


void setup() 
{ 
pinMode (Trig, OUTPUT); /*инициируем как выход */ 
pinMode (Echo, INPUT);   /*инициируем как вход */ 
Serial.begin (9600);           /* устанавливаем скорость порта */ 
mySerial.begin(9600);                   // Открываем последовательную связь
mp3_set_serial(mySerial);                  // инициализация
mp3_set_volume(20);     
} 
unsigned int impulseTime=0; 
unsigned int distance_sm=0; 

void loop()
 { 
digitalWrite (Trig, HIGH);                       /* Подаем импульс на вход trig дальномера */ 
delayMicroseconds (10);                       /* Импульс длится 10 микросекунд */ 
digitalWrite (Trig, LOW);                        // Отключаем подачу импульса 
impulseTime=pulseIn (Echo, HIGH);    /* Принимаем импульс и подсчитываем его длину*/ 
distance_sm =impulseTime/58;           /* Пересчитываем его значение в сантиметры */ 
Serial.println( distance_sm);                 /* Выводим значение на порт программы */ 

Serial.println(distance_sm);
  if (distance_sm<150)
  {     
    digitalWrite(ledPin, HIGH);
    mp3_play(1);
  } 
  else
  {   
    digitalWrite(ledPin, LOW);
  }   

delay (200); 
}
гIсть
2020-12-31 09:27:00
Olejaa пише:
гIсть пише:

мне сигнал получить нужно не с кнопки а с датчика,

А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?

я думал над этим, но решил не усложнять! По идее должно и так отрабатывать

Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?

leons
2020-12-30 23:34:01

Давайте к нам на форум и в группу в телеграмм               
   https://forum.flprog.ru

Olejaa
2020-12-30 22:52:55
leons пише:

Olejaa, а какой у вас датчик , и вам  важен код написаный C++  или собрать устройство по инструкции и не вникать в тонкости ?

я использую ультразвуковой датчик HC-SR04 их должно быть 2 штуки, при срабатывание первого должно запускаться "mp3 001" и соответственно при срабатывании второго "002" . Я думаю не важно на чем написан код, но хотелось бы немного в этом разобраться а то чего я за это все взялся big_smile  big_smile  big_smile

Olejaa
2020-12-30 22:46:14
гIсть пише:

мне сигнал получить нужно не с кнопки а с датчика,

А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?

я думал над этим, но решил не усложнять! По идее должно и так отрабатывать

leons
2020-12-30 22:00:22

Olejaa, а какой у вас датчик , и вам  важен код написаный C++  или собрать устройство по инструкции и не вникать в тонкости ?

гIсть
2020-12-30 20:36:46

мне сигнал получить нужно не с кнопки а с датчика,

А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?

Підвал форуму