Ви не увійшли.
renoshnik пише:Olejaa пише:Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам
Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.Где можно почитать информацию по этому поводу?
Olejaa пише:гIсть пише:Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?
Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам
Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.
Где можно почитать информацию по этому поводу?
В общем на сегодняшний день ситуация такая: я подключил через реле к управляющим контактам плеера все получилось, но каждый раз когда срабатывает датчик трек запускается с начала, думаю это можно исправить задержкой, все таки хочется сделать максимально просто Вот прилагаю скетч:
*нет второго датчика, поэтому скетч не дописан)
#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);
}
гIсть пише:Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?
Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам
Тогда зачем вам DFPlayer ?
Ардуина сама справится с воспроизведением звуковых файлов с СДкарты.
Это все как у меня, кроме указание портов, так-как я подключил к разъемам RX/TX и оно не работает так)) Может проблема в этом?
Хрустальный шар после всех этих праздников помутнел, поэтому схему подключения и код (ПОЛНЫЙ) в студию.
P.S. Всех поздравляю с Новым Годом и Рождеством Христовым! Здоровья нам в этом году и грандиозных проэктов!
Синяя изолента закончилась, поэтому за работоспособность не ручаюсь. Могут быть разные библиотеки
#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)
Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?
Да, решил использовать ардуинку. Плеер подключил к RX/TX Разьемам
Синяя изолента закончилась, поэтому за работоспособность не ручаюсь. Могут быть разные библиотеки
#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сть пише:мне сигнал получить нужно не с кнопки а с датчика,
А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?
я думал над этим, но решил не усложнять! По идее должно и так отрабатывать
Т.е. решили использовать ардуину? В таком случае вернемся к вашему коду. Вы куда подключили плеер? К железному сериалу или к software?
Давайте к нам на форум и в группу в телеграмм
https://forum.flprog.ru
Olejaa, а какой у вас датчик , и вам важен код написаный C++ или собрать устройство по инструкции и не вникать в тонкости ?
я использую ультразвуковой датчик HC-SR04 их должно быть 2 штуки, при срабатывание первого должно запускаться "mp3 001" и соответственно при срабатывании второго "002" . Я думаю не важно на чем написан код, но хотелось бы немного в этом разобраться а то чего я за это все взялся
мне сигнал получить нужно не с кнопки а с датчика,
А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?
я думал над этим, но решил не усложнять! По идее должно и так отрабатывать
Olejaa, а какой у вас датчик , и вам важен код написаный C++ или собрать устройство по инструкции и не вникать в тонкости ?
мне сигнал получить нужно не с кнопки а с датчика,
А что мешает подать с датчика низкий уровень сымитировав таким образом замыкание кнопки? Или использовать ключ на транзисторе?