সুচিপত্র:

Arduino সঙ্গে MP3 প্লেয়ার: 6 ধাপ
Arduino সঙ্গে MP3 প্লেয়ার: 6 ধাপ

ভিডিও: Arduino সঙ্গে MP3 প্লেয়ার: 6 ধাপ

ভিডিও: Arduino সঙ্গে MP3 প্লেয়ার: 6 ধাপ
ভিডিও: How to Make VU-meter, Easy & Simple/ Without IC: LED Meter for Audio Amplifier 2024, নভেম্বর
Anonim
Image
Image
তথ্য তালিকা
তথ্য তালিকা

এই সমাবেশে, আমরা Arduino Uno এর সাথে একটি এমপি 3 প্লেয়ার, ভলিউম অ্যাডজাস্টমেন্ট সহ একটি মিনি PAM8403 সাউন্ড এম্প্লিফায়ার, একটি এমপি 3 মডিউল DFPlayer মিনি এবং 3-ওয়াট স্পিকার ব্যবহার করেছি।

এই স্কিমটি কেবল মিউজিক প্লেয়ারের জন্য নয়, পার্কিং বাধা ডিভাইস বা রোবটের জন্য ভয়েস ফাংশনের অনুমতি দেয়। এই সমাবেশ যন্ত্রপাতিগুলিতে রেকর্ড করা ভয়েস বসানোর অনুমতি দেবে। এই ভয়েস প্রাকৃতিক হবে এবং সংশ্লেষিত হবে না। বেশিরভাগ লোকের জন্য, এগুলি আদর্শ বিকল্পগুলির তুলনায় অগ্রাধিকারযোগ্য বৈশিষ্ট্য।

এই সমাবেশের জন্য, আমরা বিশেষভাবে Arduino Uno ব্যবহার করছি, কিন্তু আপনি ESP8266 বা ESP32 এর সাথেও সংযোগ করতে পারেন। স্পষ্টতই, পিনগুলিতে একটি সমন্বয় প্রয়োজন হবে।

ধাপ 1: ডেটশীট

ধাপ 2: DFPlayer মডিউল

DFPlayer মডিউল
DFPlayer মডিউল

DFPlayer মডিউল সিরিয়াল যোগাযোগ RX TX, VCC, GND ব্যবহার করে। এটিতে দুটি স্পিকার এবং অডিও ইনপুট আউটপুট রয়েছে।

ধাপ 3: মিনি এম্প্লিফায়ার PAM8403

মিনি এম্প্লিফায়ার PAM8403
মিনি এম্প্লিফায়ার PAM8403

ধাপ 4: সমাবেশ

সমাবেশ
সমাবেশ

ধাপ 5: লাইব্রেরি

গ্রন্থাগার
গ্রন্থাগার

Mp3 মডিউলের সাথে যোগাযোগের জন্য নিম্নলিখিত "DFRobotDFPlayerMini" লাইব্রেরি যোগ করুন।

কেবল অ্যাক্সেস করুন "স্কেচ >> লাইব্রেরি অন্তর্ভুক্ত করুন >> লাইব্রেরি পরিচালনা করুন …"

ধাপ 6: সোর্স কোড

আমরা লাইব্রেরি এবং ধ্রুবক সংজ্ঞায়িত করে শুরু করব যা আমরা আমাদের কোড দিয়ে ব্যবহার করব।

একটি বস্তু, সিরিয়াল সফ্টওয়্যার এবং অন্যটি তৈরি করে শুরু করুন, যা myDFPlayer।

বুফ ভেরিয়েবল, যা স্ট্রিং টাইপ, Arduino সিরিয়াল থেকে আসা ডেটা সংরক্ষণের জন্য কাজ করবে, যা MP3 মডিউলের কমান্ড হবে। "বিরতি" ভেরিয়েবলটি সঙ্গীত চালানো বা বিরতি দেওয়া হয়েছে কিনা তা নির্দেশ করার জন্য ব্যবহার করা হবে (বিরতি = সত্য, এবং নির্দেশ করে যে এটি বিরতি দেওয়া হয়েছে, অন্যথায় এটি চলছে)।

#অন্তর্ভুক্ত "SoftwareSerial.h"#অন্তর্ভুক্ত "DFRobotDFPlayerMini.h" // Inicia একটি সিরিয়াল পোর্ট সফটওয়্যার নং পিনো 10 ই 11 সফটওয়্যার সিরিয়াল mySoftwareSerial (10, 11); // RX, TX // Objeto responsável pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável por armazenar os comandos enviados para controlar o player String buf; // variável responsável por armazenar o estado do player (0: tocando; 1: pausado) বুলিয়ান পৌসা = মিথ্যা; // variável responsável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = সাধারন, 1 = পপ, 2 = রক, 3 = জ্যাজ, 4 = ক্লাসিক, 5 = বেস)

সেটআপ

এই ধাপে, আমরা প্রিন্টের বিকল্পগুলি রাখি যাতে আপনি ইঙ্গিত দিতে পারেন যে এটি সার্কিটটি মাউন্ট করছে, উদাহরণস্বরূপ মিথ্যা অবস্থার মূল্যায়ন সহ।

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo e se o // cartao SD foi encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando modulo DFPlayer… (3 ~ 5 segundos" "); যদি (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); সিরিয়াল। Serial.println ("2. Insira um cartao SD"); while (সত্য); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // টাইমআউট সিরিয়াল 500ms myDFPlayer.volume (10); // ভলিউম 10 vai de 0 a 30 myDFPlayer. EQ (0); // Equalizacao স্বাভাবিক // recupera o numero de Músicas encontradas no SD। maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

বিকল্প মেনু

আপনি সিরিয়াল মনিটরের মাধ্যমে এই সমগ্র সমাবেশটি নিয়ন্ত্রণ করেন। তাই প্রতিবার, স্কিমটি আপনার কাছে থাকা বিকল্প মেনু, কমান্ড, নির্দেশাবলী সহ মুদ্রণ করবে।

অকার্যকর menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); সিরিয়াল.প্রিন্ট ("[1-"); Serial.print (maxSongs); Serial.println ("] Para selecionar o arquivo MP3"); Serial.println ("[গুলি] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ বা -] aumenta ou diminui o volume"); Serial.println (); }

লুপ

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (icendice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // d na play na música menu_opcoes (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica…"); myDFPlayer.start (); } অন্য {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } পৌষ =! পৌষ; menu_opcoes (); } // পরদা যদি (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; যদি (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = সাধারণ, 1 = পপ, 2 = রক, 3 = জ্যাজ, 4 = ক্লাসিক, 5 = বেস)"); menu_opcoes (); } // Aumenta ভলিউম যদি (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("ভলিউম atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // ডিমিনুই ভলিউম যদি (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("ভলিউম atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // লুপ

প্রস্তাবিত: