Arduino + DFPlayer + Reed Röle ile Müzik Çalmak

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
12,715
Özel bir günde alınan hediyenin içine duygusal bir müzik yerleştirerek karşı cinsin kalbini iki kere fethedebilirsiniz.

ThinkerCad sağolsun ne reed röle bulabildim nede dfplayer. O yüzden devre şemasını çizemedim.

Bağlantılar şu şekilde;
DFPlayer'in VCC ve GND bacaklarına Arduinonun 5v ve GND bacaklarından besleme verin.
DFPlayer'in SPK1 ve SPK2 bacaklarına tek bir 2W'lık hoparlör kablolarını bağlayın.
DFPlayer'in RX bacağını Arduinonun 10 nolu pinine direk bağlayın.
DFPlayer'in TX bacağını 1K Ohm luk bir direnç ile Arduinonun 11 nolu pinine bağlayın.
Reed Rölenin bir bacağına Arduinodan 5v verin.
Reed Rölenin diğer bacağına 10K Ohm luk bir direnç bağlayarak Arduinonun GND bacağına bağlayın.
Reed Rölenin 10K Ohm Direnç bağladığınız bacağından Arduinonun 2 nolu dijital pinine direk bir kablo bağlayın. (Direncin GND hattına giden tarafından değil.)
Böylece bağlantılar tamamlanmış oluyor.

Aşağıdaki kodları kullanarak istediğiniz müziği DFPlayer'a çaldırabilirsiniz.
Ayrıca DFPlayer için "DFRobotDFPlayerMini" Kütüphanesini arduino ide de kütüphane kısmından yüklemeniz gerek.

Kod:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11);  // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
int reed = 2;
int reedoku = 0;

int kapakAcik = 0;
int kapakAcikEskiDurum = 0;
int muzikcaliyor = 0;
void setup() {
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);

  pinMode(reed, INPUT);

  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while (true)
      ;
  }
  Serial.println(F("DFPlayer Mini online."));

  myDFPlayer.volume(23);  //Set volume value. From 0 to 30 23 yap
  //myDFPlayer.play(1);  //Play the first mp3
}

void loop() {
  static unsigned long timer = millis();

  if (millis() - timer > 3000) {
    timer = millis();
    //myDFPlayer.next();  //Play next mp3 every 3 second.
  }

  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read());  //Print the detail message from DFPlayer to handle different errors and states.
  }

  reedoku = digitalRead(reed);
  if (reedoku == 1) {
    kapakAcik = 0;
  } else if (reedoku == 0) {
    kapakAcik = 1;
  }

  if (kapakAcik != kapakAcikEskiDurum) {
    kapakAcikEskiDurum = kapakAcik;
    if (muzikcaliyor == 0) {
      muzikcaliyor = 1;
      myDFPlayer.play(1);
    } else {
      muzikcaliyor = 0;
      myDFPlayer.stop();
    }
  }
}

void printDetail(uint8_t type, int value) {
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
          break;
        case Sleeping:
          Serial.println(F("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
        case Advertise:
          Serial.println(F("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
}

 

Forum istatistikleri

Konular
8,318
Mesajlar
136,660
Üyeler
3,296
Son üye
Uğur Subaşı

Son kaynaklar

Son profil mesajları

mechanic ayhanarican mechanic wrote on ayhanarican's profile.
https://www.allmystery.de almanca biliyorsan burada araştır. Yapay zekada çeviriyor gerçi.
Almanların matematik bilgisi daha iyi oluyor.
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Back
Top