NRF24L01 Modülü Kontrollü Müzik Çalar (Arduino)

Transistör ile Led Yakma (Arduino)

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

Proje Fotoğrafı:
Açıklama:
Bu projede verici konumundaki arduino ile serial monitörden nrf24l01 modülünü kullanarak alıcı konumundaki arduino’ya komut gönderdik. Alıcı arduino gelen komuta göre LM386 anfisiyle hafıza kartındaki müziği çalıyor.

Malzemeler:
  • (2 adet) Arduino Uno
  • (2 adet) Antenli NRF24L01 Modülü
  • (1 adet) Micro SD Modülü
  • (1 adet) Micro SD Hafıza Kartı
  • (1 adet) LM386 DIY (Kendi Yap) kiti
  • (1 adet) 4 ohm 3 watt hoparlör
  • (1 adet) 3.5mm Stereo Audio erkek jack
  • (1 adet) TP4056 3.7 V Şarj Modülü
  • (1 adet) 18650 Pil
  • (1 adet) Tekli 18650 Pil Yuvası
  • (1 adet) Dişi Power Jack 5.5×2.1mm
  • (1 adet) Erkek Power Jack 5.5×2.1mm
  • (1 adet) 1 adet Aç Kapa Anahtar
  • (1 adet) XL6009 Voltaj Yükseltici Modül
  • (1 adet) 5V Güç Kaynağı
  • 24 awg kablo
  • Jumper kablolar

Alıcı Devre Şeması:

Verici Devre Şeması:

Proje Video’su:

Alıcı Kodu:

#include <SimpleSDAudio.h>
#include <SPI.h>
#include <Enrf24.h>

Enrf24 nRF(5, 6, 2);  // CE , SDCS/SCN/CSN/CS/SS , IRQ pinleri

const byte alici_adresi[] = { 0xDE, 0xAD, 0xBE, 0x0F, 0x01 };

int muzikAdi; 
int sdCardPin=4;

void setup() 
{
  Serial.begin(9600);
  SPI.begin(); 
  SPI.setDataMode(SPI_MODE0); 
  SPI.setBitOrder(MSBFIRST); 
  
  SdPlay.setSDCSPin(sdCardPin); //sd kart cs pini
 
  if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER))
  {
    while(1);
  }
  
  nRF.begin(1000000,124); 
  nRF.setRXaddress(alici_adresi); 
  nRF.enableRX(); 
}

void loop(){
 char alinan_bilgi[33];
   
  if(SdPlay.isStopped()) //müzik durduysa
  {   
    if (nRF.read(alinan_bilgi))  //nrf modülünden bilgi geldiyse
    {
      Serial.print("Alinan komut: ");
      Serial.println(alinan_bilgi);
      SdPlay.setFile(alinan_bilgi);
      SdPlay.play();    
    }  
  }

}

Verici Kodu:

#include <Enrf24.h>
#include <SPI.h>

Enrf24 nRF(9, 10, 2);  // CE , SDCS/SCN/CSN/CS/SS , IRQ pinleri
 
const byte verici_adresi[] = { 0xDE, 0xAD, 0xBE, 0x0F, 0x01 };

String okunan; //Serial monitorden gonderilen komut
i
void setup() 
{
  Serial.begin(9600);
  SPI.begin(); // SPI başlat
  SPI.setDataMode(SPI_MODE0); 
  SPI.setBitOrder(MSBFIRST);    
   
  nRF.begin(1000000,124);  
  nRF.setTXaddress(verici_adresi);  
}
 
void loop() 
{
  if (Serial.available() > 0) { // Serial Porta girdi değerinin olup olmadığını kontrol et
    okunan = Serial.readString(); // Serial Porttaki girdi değerini oku ve string e ata
    Serial.print("Gonderilen komut: "); //okunan değeri ekrana yazdır
    Serial.println(okunan); 
    nRF.print(okunan+".wav"); //dosya adını nRF24L01 ile gönder
    nRF.flush(); 
  }

  //denemeleri göre delay süresi en az 50 olunca alıcı, vericinin bütün komutlarını eksiksiz aldı
  delay(50); //alıcının verileri eksiksiz alması için delay süresi en az 50 olsun
}

Not 1:

Alıcı devresini 18650 pil takmadan önce 9v luk adaptörle çalıştırmıştım, amper metreyle ölçtüğümde, devre müzik çalarken 140 ma akım çekti.

Not 2:

Bir kaç tane 3 watt’lık hoparlör denedim, hepsinde ses seviyesi farklı oldu. Yani bazılarından çok ses geldi, bazılarından az.

Size faydalı olduysa, sosyal medyada paylaşarak bize destek olun. Teşekkürler.

Transistör ile Led Yakma (Arduino)