Arduino Uno ile SD Kart'tan Ses Çalma
  • Projem için sesli çıkış almam lazım. Sayi adında bir int tanımladım.
    Örneğin sayi ==1; olunca 1. sesi çal, sayi==2; olunca 2. sesi çal şeklinde 50'ye kadar yaptım. Ama ses bir türlü çalmıyor. Kodu inceleyebilir misiniz.
    -Arduino Uno
    SimpleSDAudio(Kütüphane)
    LiquidCrystal(Kütüphane)


    #include < SimpleSDAudio.h> // SD Kart Modül Kütüphanesi(Sesleri SD Karta Yükleyeceğiz)
    #include < LiquidCrystal.h> // LCD Ekran Kütüphanesi

    LiquidCrystal lcd(7, 8, A0, A1, A2 , A3); // LCD Ekranın Arduino Üzerindeki Bağlantı Numaraları

    #define LCD_LIGHT_PIN 6 // LCD Arkaplan Işığı Pini
    int civalisensor=3; // Civalı Sensörü Arduino'nun 3 Numaralı Girişine Bağladık
    int sayi; // LCD Ekranda Görünmesi ve Sesli Çıkış İçin sayi Adında Değişken Tanımladık
    int kontrol=1;


    void setup()
    {
    SdPlay.setSDCSPin(4); // sd kart cs pini
    SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
    pinMode(LCD_LIGHT_PIN, OUTPUT); // LCD Arkaplan Işığı
    digitalWrite(LCD_LIGHT_PIN, HIGH); // LCD Arkaplan Işığını Aç
    Serial.begin(9600);
    pinMode(civalisensor,INPUT); // Civalı Sensör'ün Bağlandığı Pin Giriş Olarak Ayarlanıyor
    }


    void loop()
    {
    if(digitalRead(civalisensor) == HIGH ) // Eğer Civalı Sensör aktifleşirse...
    {
    if(kontrol)
    {
    kontrol = 0 ;
    sayi ++ ;
    if(sayi == 1) // Civalı Sensör 1 Kere Aktif Olursa
    {
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 1"); // Kaldırma Sayısı 1 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("1.wav"); // 1. sesi çal
    SdPlay.play();
    }
    else if(sayi == 2) // Civalı Sensör 2 Kere Aktif Olursa
    {
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 2"); // Kaldırma Sayısı 2 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("2.wav"); // 2. sesi çal
    SdPlay.play();
    }
    else if(sayi == 3) // Civalı Sensör 3 Kere Aktif Olursa
    {
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 3"); // Kaldırma Sayısı 3 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("3.wav"); // 3. sesi çal
    SdPlay.play();
    }
    else if(sayi == 4) // Civalı Sensör 4 Kere Aktif Olursa
    {
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 4"); // Kaldırma Sayısı 4 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("4.wav"); // 4. sesi çal
    }
    else if(sayi == 5)
    {
    sayi==5; // Civalı Sensör 5 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 5"); // Kaldırma Sayısı 5 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("5.wav"); // 5. sesi çal
    }
    else if(sayi == 6)
    {
    sayi==6; // Civalı Sensör 6 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 6"); // Kaldırma Sayısı 6 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("6.wav"); // 6. sesi çal
    }
    else if(sayi == 7)
    {
    sayi==7; // Civalı Sensör 7 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 7"); // Kaldırma Sayısı 7 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("7.wav"); // 7. sesi çal
    }
    else if(sayi == 8)
    {
    sayi==8; // Civalı Sensör 8 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 8"); // Kaldırma Sayısı 8 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("8.wav"); // 8. sesi çal
    }
    else if(sayi == 9)
    {
    sayi==9; // Civalı Sensör 9 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 9"); // Kaldırma Sayısı 9 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("9.wav"); // 9. sesi çal
    }
    else if(sayi == 10)
    {
    sayi==10; // Civalı Sensör 10 Kere Aktif Olursa
    lcd.begin(16, 2);
    lcd.setCursor(4,0);
    lcd.print("KALDIRMA");
    lcd.setCursor(4,2);
    lcd.print("SAYISI: 10"); // Kaldırma Sayısı 10 Şeklinde LCD Ekrana Yazdır.
    !SdPlay.setFile("10.wav"); // 10. sesi çal
    }

    Ses çalmamasının sebebi nedir bulamıyorum. SdPlay.play(); kodunu koydum çalışmıyor , çıkardım yine çalışmıyor.
    LCD ile birlikte çalışması gerek. int sayi her arttığında değeri ekrana gelecek ve o sayının sesi çalacak şekilde olmalı ama. Yazılar LCD'ye geliyorken ses çalmıyor.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.