SD-Karte Fehlermeldung mit ISO C++

Hallo,
für mein Projekt wollte ich nachfolgenden Sketch verwenden. Ich verwende einen Arduino Nano V3, einen SD-Kartenleser (keinen micro-SD-Kartenleser) und einen Lautsprecher 16 Ohm 0,25W.
Die Karte besitzt das Format SD und nicht SDHC.



#include "SD.h"
#define SD_ChipSelectPin 10
#include "TMRpcm.h"
#include "SPI.h"

TMRpcm tmrpcm;

void setup()
{
  tmrpcm.speakerPin = 9;
  Serial.begin(115200);
  if (!SD.begin(SD_ChipSelectPin))
  {
    Serial.println("SD fail");
    return;
  }
  tmrpcm.setVolume(6);
  tmrpcm.play("HSAHS001.wav");

}

void loop() {
  // put your main code here, to run repeatedly:

}

Wenn das Programm kompiliert wird erhalte ich folgende Fehlermeldung:

SD-Karten-Sketch.ino: In function 'void setup()':

SD-Karten-Sketch.ino:41:27: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

Ich vermute, dass der Compiler mit dem Code tmrpcm.play("HSAHS001.wav"); nicht klar kommt.
Um Fehler auszuschliessen habe ich absichtlich das volle 8.3_Format verwendet.

Kann mir jemand helfen?

Viele Grüße
toni_20

Dies liegt daran, dass die Bibliothek nicht gut geschrieben ist und const nicht für die Funktion verwendet hat ...

versuche diesen Code:

#include "SD.h"
#define SD_ChipSelectPin 10
#include "TMRpcm.h"
#include "SPI.h"

TMRpcm tmrpcm;
char fileName[] = "HSAHS001.wav";

void setup()
{
  tmrpcm.speakerPin = 9;
  Serial.begin(115200);
  if (!SD.begin(SD_ChipSelectPin))
  {
    Serial.println("SD fail");
    return;
  }
  tmrpcm.setVolume(6);
  tmrpcm.play(fileName);
}

void loop() {}
1 Like

Hallo J-M-L,

vielen Dank für die gestrige Unterstützung zu SD-Karten. Deine Antwort hat mir sehr geholfen.
Nochmals vielen Dank und alles Gute.
toni_20