Arduino NANO sorunu

Kodu daha düzenli ve belli bir formata uygun olarak yazmaya çalış. Böylece okunabilirliği senin için de daha kolay olur, problemleri görmen kolaylaşır. Derleyici çok daha dağınığını sorunsuz derler, ama biz insanlar kavramakta zorluk çekeriz.

Gereksiz şeyleri çıkardım ve biraz formatlama yaptım. Bir de ana döngüde mesaj gelmese bile tekrar tekrar dosya çalmaya çalışıyorsun. Sorun bu değil ama sonuç vermesi mümkün olmayan bir işi sürekli yaptırmaya çalışıyorsun. Sadece bluetooth'dan mesaj gelirse çalmayı başlatmak lazım.

Bu yapıya göre eğer ilk dosya çalıyor diğerleri çalmıyorsa sorun muhtemelen bluetooth kaynaklı. Koddaki herşeyi çıkar, sadece bluetooth kalsın. Sonra da bluetooth'dan istediğin mesajı alana kadar debug et. Sorunu çözdükten sonra player kodunu ekle. Problem çözerken her zaman bu metodu kullan. Önce çalışan en asgari yapılandırmayı bul, sonra yavaş yavaş eklemeler yap. Bu şekilde sorunu daraltmış olursun.

Kod:
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>

SoftwareSerial Bluetooth(13, 12);       // HC-05 Bluetooth - RX (13) - TX (12)
SoftwareSerial SesCalarModulu(3, 2);    // Df player       - RX (3) - TX (2)

DFRobotDFPlayerMini Ses_calar;

String Gelen_mesaj = "", Gelen_bilgi = "";

//==============================================================

void setup()
{
    Bluetooth.begin(9600);
    delay(2000);

    Serial.begin(9600);
    delay(2000);

    SesCalarModulu.begin(9600);
    delay(2000);

    Serial.println("Bluetooth test-2");

    if (Ses_calar.begin(SesCalarModulu) == 0)
    {
        Serial.println(F("Başlatılamıyor:"));
        Serial.println(F("1.Lütfen bağlantınızı kontrol ediniz!"));
        Serial.println(F("2.SD kartı takınız!"));

        while (true)
        {
            ;
        }
    }

    Ses_calar.play(62);
}

//==============================================================

void loop()
{
    Bluetooth.listen();

    if (Bluetooth.available() > 0)
    {
        Gelen_mesaj = Bluetooth.readString();
        Gelen_bilgi = Gelen_mesaj.substring(4, Gelen_mesaj.length());
        Serial.println(Gelen_bilgi);

        if (Gelen_bilgi == "nasılsın")
        {
            Ses_calar.play(63);
        }
        else if (Gelen_bilgi == "Hava nasıl oralarda")
        {
            Ses_calar.play(95);
        }
        else if (Gelen_bilgi == "hazır mısın")
        {
            Ses_calar.play(62);
        }
    }
}
 
Eğer problemi bulursan burada da paylaş başkaları da yararlansın :tamam2:
 
Arkadaşlar,

Sorunun çözümünü beklenmedik bir şekilde buldum :

Yazdığım kodda DFRobotDFPlayerMini.h kütüphanesini kullanmıştım. Aniden aklıma "acaba bu kütüphane devremdeki UNO, HC-5 veya DfPlayer ile uyumsuzluık mu gösteriyor" sorusu geldi. Internet'te tesadüfen rastladığım DFPlayerMini_Fast.h kütüphanesini koydum ve mükemmel çalıştı.

Mesaj yazarak katkı sağlayan tüm arkadaşlara teşekkür ediyorum.
 

Forum istatistikleri

Konular
7,239
Mesajlar
122,467
Üyeler
2,924
Son üye
aytu

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top