Go Down

Topic: Teddy Bear mp3 (Read 4902 times) previous topic - next topic

sven1977

Wieso könnt ihr nicht einfach ne Ampel machen ?
So wie ich das hier so mitbekommen habe, sind eure
Vorkenntnisse doch sehr sehr beschränkt.

Aber gut...

Als Lib braucht ihr nur die für die SD Karte. Auf die SD Karte kopiert ihr dann das WAV File in 8Bit und 22kHz.
Dann schickt ihr die Daten mit dem Arduino von der SD Karte Bit für Bit auf einen Analogen Pin.
Dabei solltet ihr darauf achten, den Takt von 22050 Bits pro sec.  einzuhalten. Sonst wird der Sound
zu schnell oder zu langsam abgespielt.

Ich weiss nicht so genau wie das mit Arduino geht. Aber mit BASCOM ging das auf jeden Fall und ich denke
mit Arduino auch.

Das lesen von der SD Karte benötigt Zeit und und lässt kaum Platz für mehr kHz. Aber mit Bascom konnte ich
das mit dem Interrupt machen, der im 44100 Mhz die Daten auf den analogen Pin schaufelt. Dafür brauchte ich
aber nen doppelten Buffer von 1Kb ( 2 x 512 byte ) der abwechselnd die Daten von der SD Karte ließt.
Allerdings habe ich die SD Karte im raw Modus gelesen. Mit Fat braucht der Arduino wohl noch etwas mehr Zeit.
Also nur 22 kHz.....


jurs


Aber mit Bascom konnte ich das mit dem Interrupt machen, der im 44100 Mhz die Daten auf den analogen Pin schaufelt.


Wow, 44100 Mhz! Also über 44 Gigahertz zaubert Bascom aus einem einfachen Controller!

Mit solchen Super-Fähigkeiten wie Dein BASCOM kann ARDUINO natürlich überhaupt nicht mithalten!
;-)

Anyway, weil das hier ein ARDUINO und kein BASCOM-Forum ist, poste ich dann hier mal zum Testen ein bischen was zum Töne machen für eines der schlappen ARDUINO-Boards, die bei 44100 Mhz nicht mithalten können.

Ohne SD-Karte.
Ohne Library.
Nur die tone()-Funktion von Arduino.

Code: [Select]

// Arduino-Code zum Abspielen von Melodien
// ueber Kopfhoerer oder Kleinlautsprecher per PWM
// frei nach "Tuerklingel von M. Baudisch 12/2008"

// Benoetigte Bauteile:
// 1. Arduino-Board
// 2. Kleinstlautsprecher 8 Ohm
// 3. Elektrolytkondensator 1 ... 100 uF (Mikrofarad)
// Reihenschaltung vom LAUTSPRECHERPIN am Board, Kondensator, Lautsprecher zu Ground
// Achtung: Elektrolytkondensator immer polrichtig anschließen!
// Pluspolseite des Kondensators zum Ausgangspin am Board
// Minuspolseite des Kondensators zur GND-Seite
// Falls kein Kondensator zur Hand, ggf. 100 KOhm Widerstand verwenden
// (mit Widerstand statt Kondensator ist die Lautstaerke aber deutlich geringer)
// Alternative Beschaltung:
// Statt eines Lautsprechers Anschluss am Line-In Eingang eines Verstaerkers

#define LAUTSPRECHERPIN 9

uint16_t ton[]=
{
262, // c Timerwerte fuer die enspr. Tonhoehen in Hz
277, //cis
294, //d
311, //dis
330, //e
349, //f
370, //fis
392, //g
416, //gis
440, //a
466, //b
495, //h
524, //c'
554, //cis'
588, //d'
622, //dis'
660, //e'
698, //f'
740, //fis'
784, //g'
831, //gis'
880, //a'
929, //b'
992, //h'
1050, //c''
1106, //cis''
1179, //d''
1244, //dis''
1316, //e'
1397, //f''
1562, //g'' auf position von fis'' verschoben
};

uint8_t zeit[] =  // Notenlaengen
// beim Abspielen werden die Notenlaengen mit einem Faktor
// multipliziert, um die Notenlaenge im Millisekunden zu erhalten
{
2, //1/32 Note
3, //1/32. dito punktiert
4, //1/16 Note
6, //1/16. dite punktiert
8, //1/8 Achtelnote
12,//1/8.
16,//1/4 Viertelnote
24,//1/4.
};

//Format Lied :
//1. Byte: speed 2 schnell, 3..5 normal
//2. Byte - n Byte Noten

//Aufbau eines Notenbytes:

//Bit
// 7  6  5  4  3  2  1  0
// |__|__|  |__|__|__|__|_Tonhoehe ( 1..31 (C..G'') incl. aller Halbtonschritte
//    |                                             ausser 31: G'' statt FIS''
//    |                                     wenn 0, kein Ton sondern Pause
//    |
//    |___________________________________________Tonlaenge
//
//                                                7: 1/4.
//                                                6: 1/4
//                                                5: 1/8.
//                                                4: 1/8
//                                                3: 1/16.
//                                                2: 1/16
//                                                1: 1/32.
//                                                0: 1/32
//




void playTeddy(byte *lied, byte anzNoten)
// Parameter *lied ==> Bytepointer auf die Noten des Lieds
// Parameter anzNoten ==> Anzahl der Noten im Lied
{
  byte lspeed=0;
  byte dauer;
  byte hoehe;
  byte note ;
  byte i;
  lspeed= pgm_read_byte(lied); // im ersten Byte die Abspielgeschwindigkeit lesen
//  Serial.print("Speed: ");Serial.print(lspeed);Serial.println();
//  Serial.print("Anzahl Noten: ");Serial.print(anzNoten);Serial.println();
  for (i=1;i<anzNoten;i++)
  {
    note=pgm_read_byte(lied+i); //Note holen
//    Serial.println(note);
    hoehe=note & 0x1f; //Tonhöhe ausmaskieren (5 Bit)
    dauer= zeit[(note >> 5)]; // 5 Bit nach rechts schieben und Zeit holen
    if (hoehe) //wenn keine Pause
    {
       tone(LAUTSPRECHERPIN,ton[hoehe-1]);
       delay(int(dauer)*int(lspeed)*int(25));
       noTone(LAUTSPRECHERPIN);
       delay(25);
    }
    else
     delay(dauer);
  }   
  noTone(LAUTSPRECHERPIN);
}


// Ein paar wenige kurze Melodien,
// um RAM-Speicher zu sparen als "PROGMEM"-Variablen deklariert
byte lied_1[] PROGMEM={3,13,82,22,82,13,76,148,18,81,20,81,13,74,146,13,82,22,82,13,76,148,18,81,13,79,17,210};
byte lied_2[] PROGMEM={2,10,8,202,202,8,6,3,5,194,0,163,192,10,8,202,202,101,102,98,195};
byte lied_3[] PROGMEM={4,65,65,3,6,5,3,72,72,8,10,5,6,67,67,3,6,5,3,1,12,10,8,6,5,3,129};
byte lied_4[] PROGMEM={3,5,106,5,113,10,78,12,14,74,69,74,83,81,14,15,177,0,5,74,83,81,14,15,81,12,14,74,69,74,14,15,108,10,138};
byte lied_5[] PROGMEM={4,100,3,1,3,4,8,107,10,8,10,11,15,178,64,102,5,3,5,6,10,109,12,10,12,13,17,180,128};
byte lied_6[] PROGMEM={3,70,6,6,70,6,6,6,6,6,6,6,10,1,1,70,6,6,70,6,6,6,6,6,6,3,1,64,70,6,6,70,6,6,6,6,6,6,6,10,64,173,74,13,10,6,64,128};
byte lied_7[] PROGMEM={2,8,74,8,69,77,74,168,8,10,8,10,72,77,172,64,6,72,6,67,76,74,168,8,10,8,10,72,74,165};
byte lied_8[] PROGMEM={2,1,1,65,1,1,65,1,1,6,72,74,0,1,1,65,1,1,65,10,10,8,69,65,0,1,1,65,1,1,65,1,1,6,72,74,0,6,10,77,13,13,13,11,10,8,6,106,6};
byte lied_9[] PROGMEM={3,81,17,17,17,17,17,81,74,77,81,79,15,15,15,15,15,15,8,0,76,79,81,17,17,17,17,17,17,19,20,22,0,84,81,15,12,0,74,0,74};
byte lied_10[] PROGMEM={5,6,8,8,6,72,0,8,6,8,10,8,6,5,6,6,5,70,0,6,5,6,8,6,69,0,3,5,5,3,69,0,3,5,6,5,3,0,139};

void setup() {
  Serial.begin(9600); // Serielle Schnittstelle initialisieren
}

void loop()
{
  // Spielt die 10 kurzen Melodien in Endlosschleife
  playTeddy(lied_1,sizeof(lied_1));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_2,sizeof(lied_2));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_3,sizeof(lied_3));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_4,sizeof(lied_4));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_5,sizeof(lied_5));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_6,sizeof(lied_6));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_7,sizeof(lied_7));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_8,sizeof(lied_8));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_9,sizeof(lied_9));
  delay(2000); // Kurze Pause nach der Melodie
  playTeddy(lied_10,sizeof(lied_10));
  delay(2000); // Kurze Pause nach der Melodie
}


Damit ihr Euren Lautsprecher wenigstens mal etwas testen könnt, bevor ihr anfangt, etwas mit der SD-Karte zu machen.


sven1977

Ups.... 44100 Mhz ist natürlich Quatsch... hab mich verschrieben... Hz natürlich.
Ich arbeite auch gerade daran das mit Arduino zu machen. Die ersten Tests
laufen schon prima :D

HAHA 44100 Mhz .... WOW bin ich gut... Das soll mit mal einer nachmachen...  ;)

IrgendJemand

Vielen, vielen Dank!! <33
Also wir haben den Lautsprecher so angeschlossen, dass das Programm das jurs gepostet hat läuft. Aber wir hatten ja schon so ein ähnliches gemacht gehabt das genauso läuft:
Code: [Select]

/*
Jojo und Fani Arduino Harry Potter Melodie~
*/

#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978

int pin=8;


int note[] = {
  NOTE_B4, NOTE_E5,NOTE_G5, NOTE_FS5, NOTE_E5, NOTE_B5, NOTE_A5, NOTE_FS5, NOTE_E5, NOTE_G5, NOTE_FS5, NOTE_D5, NOTE_F5, NOTE_B4, NOTE_B4, NOTE_E5, NOTE_G5, NOTE_FS5, NOTE_E5, NOTE_B5, NOTE_D6, NOTE_CS6, NOTE_C6, NOTE_GS5, NOTE_C6, NOTE_B5, NOTE_AS5, NOTE_AS5, NOTE_G5, NOTE_E5};


int noteDurations[] =                               // tonlänge: 4 = viertel note 8 = achtel note, etc.:
  {4, 4, 7, 4, 2, 3, 1, 1, 3, 7, 4, 2, 4, 1, 4, 3, 8, 4, 2, 4, 2, 4, 2, 4, 3, 8, 3, 6, 4, 2, 3, 0.5};

void setup() {                                     

  for (int i = 0; i <= 29; i= i+1) {

    int noteDuration = 1000/noteDurations[i];
    tone(8, note[i],noteDuration);

    // kurze Pause zwischen den einzelnen Noten
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stopt die Melodie
    noTone(8);
  }
}

void loop() {
}


Wir wollten ja "nur" anstatt von der Melodie ein Lied einbauen und dass es auf Knopfdruck funktioniert. Außerdem haben wir das ganze jetzt an einen 9 Volt Block angeschlossen damit wir es vom Computer weg in den Teddy kriegen.
Wir verstehen nur nicht ganz wie man das Programm dazu bekommt statt der Melodie das Lied abzuspielen.


jurs


Wir verstehen nur nicht ganz wie man das Programm dazu bekommt statt der Melodie das Lied abzuspielen.


Also nochmal der Hinweis:
http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio

Wo hakt es denn genau?

Das Lied passend in eine 8-Bit Mono WAV-Datei zu konvertieren?

Eine SD-Karte mit FAT16 zu formatieren und die Datei im 8.3-Format auf die Karte zu kopieren?

Die SD-Karte (wohl aus der Fassung auf dem EthernetShield?) mit der SimpleSDAudio-Library anzusprechen?

Oder ist das Problem, einen Tastschalter so anzusprechen, dass das Drücken des Tasters die Abspielfunktion startet?

IrgendJemand

Also wir haben die Datei von mp3 in wav umgewandelt und jetzt auf die Mikro SD Karte getan nachdem wir die mit FAT 16 formatiert haben (wir mussten sie halt zweiteilen weil sie zu groß war, aber es sollte ja eigentlich funktionieren, da es ja trotzdem FAT 16 ist).

Außerdem sind wir uns nicht sicher, wie man die Datei nennen muss, da wir sie ja 8 Zeichen lang machen sollten nen Punkt und nochmal 3 Zeichen aber wenn wir die Datei wibbly.wav nennen kommt ja wibbly.wav.wav raus. Sollen wir das erste .wav dann einfach weglassen?

Und die SD Karte haben wir ins Ethernetshield getan und den Lautsprecher und den Knopf angeschlossen so dass zumindets die Melodie schonmal funktioniert.

Aber wir verstehen nicht, wie man den Arduino zum Abspielen der Datei bringt und wie man das mit den ganzen Librarys macht.

IrgendJemand

Also das Programm spielt jetzt halt die Melodie auf Knopfdruck aber weiter kommen wir nicht, da wir das mit den Libraries nicht verstehen.
Die Noten sind ja in der Datei "pitches", die wir mit hochgeladen haben.
Code: [Select]

/*
  Spielt nach Tastendruck die Melodie von Levels (Avicii).
*/
// Einfügen der Notenliste:
#include "pitches.h"

// Noten der Medlodie:
int melody[] = {
  NOTE_CS5, NOTE_B4, NOTE_GS4, NOTE_FS4, NOTE_E4, NOTE_E4, 0, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_DS4, NOTE_DS4, NOTE_E4, NOTE_E4, 0,
  NOTE_CS5, NOTE_B4, NOTE_GS4, NOTE_FS4, NOTE_E4, NOTE_E4, 0, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_CS4, NOTE_CS4, NOTE_B3, NOTE_B3, 0};

// Notenlänge: 4 = Viertelnote, 8 = Achtelnote, etc.:
int noteDurations[] = {
  4, 4, 4, 4 ,4 ,4 ,4 ,4 ,4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};

void setup() {
}
void loop()
{
int messwert = analogRead(0);
if(messwert < 500) // Wenn der Konpf gedrückt wird wird die Melodie abgespielt.
{
    for (int thisNote = 0; thisNote < 32; thisNote++) {
     
      int noteDuration = 700/noteDurations[thisNote];
      tone(8, melody[thisNote],noteDuration);
     
      int pauseBetweenNotes = noteDuration * 1.30;
      delay(pauseBetweenNotes);
      noTone(8);
    }
  }
}


sth77

Du wurdest doch auf diese Bibliothek verwiesen: http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio
Dort gibt es das Beispiel BareMinimum.ino:
Code: [Select]
/*
Simple SD Audio bare minimum example, plays file EXAMPLE.AFM from root folder of SD card.

This example shows how to use the SimpleSDAudio library for audio playback.
You need:
- An Arduino with ATmega168/ATmega368 or better
- An SD-Card connected to Arduinos SPI port (many shields will do)
   -> copy EXAMPLE.AFM on freshly formated SD card into root folder
- A passive loudspeaker and resistor or better: active speakers (then stereo output will be possible)

Audio signal output is at the following pin:
- Arduino with ATmega168/328   (many non-mega Arduinos): Pin 9
- Arduino with ATmega1280/2560 (many mega Arduinos)    : Pin 44

Using passive speaker:
    Audio-Pin --- -[100 Ohm resistor]- ---- Speaker ---- GND
   
Using amplifier / active speaker / line-in etc.:
    Audio-Pin --||--------------[10k resistor]----+----[1k resistor]---- GND
              100nF capacitor                   to amp

See SimpleSDAudio.h or our website for more information:
http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio

created  23 Jun 2012 by Lutz Lisseck
*/
#include <SimpleSDAudio.h>

void setup()
{
  // If your SD card CS-Pin is not at Pin 4, enable and adapt the following line:
  // SdPlay.setSDCSPin(10);
 
  // Init SdPlay and set audio mode
  if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO)) {
    while(1); // Error while initialization of SD card -> stop.
  }
 
  // Select file to play
  if(!SdPlay.setFile("EXAMPLE.AFM")) {
    while(1); // Error file not found -> stop.
  }   
 
  // Start playback
  SdPlay.play();
 
  // Let the worker work until playback is finished
  while(!SdPlay.isStopped()) {
    SdPlay.worker();
  }
}

void loop(void) {
}

Damit ist echt nichts anzufangen?
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

jurs


Also wir haben die Datei von mp3 in wav umgewandelt


In WAV umgewandelt reicht nicht aus. Ihr müsst die Datei auch noch in eine 8-Bit WAV mit bestimmter Datenrate umwandeln, das Kommandozeilenprogramm "sox" dafür ist gleich mit dabei.


und jetzt auf die Mikro SD Karte getan nachdem wir die mit FAT 16 formatiert haben (wir mussten sie halt zweiteilen weil sie zu groß war, aber es sollte ja eigentlich funktionieren, da es ja trotzdem FAT 16 ist).


FALSCH!
Nehmt eine alte 2GB Speicherkarte und formatiert sie FAT16!
Und KEINE PARTITIONIERUNG der Karte in verschiedene Bereiche, damit kann die Lib nicht umgehen!


Außerdem sind wir uns nicht sicher, wie man die Datei nennen muss, da wir sie ja 8 Zeichen lang machen sollten nen Punkt und nochmal 3 Zeichen aber wenn wir die Datei wibbly.wav nennen kommt ja wibbly.wav.wav raus. Sollen wir das erste .wav dann einfach weglassen?


Ja. "wibbly.wav" ist als 8.3 Dateiname vollkommen in Ordnung und kann so von einer NTFS-formatierten Platte problemlos auf eine FAT16 formatierte Speicherkarte rüberkopiert werden.


Lautsprecher und den Knopf angeschlossen so dass zumindets die Melodie schonmal funktioniert.


Na bravo, dann habt ihr ja wenigstens eine Notlösung mit Tönen, selbst wenn ihr das mit der WAV-Datei nicht mehr rechtzeitig hinbekommt.


Aber wir verstehen nicht, wie man den Arduino zum Abspielen der Datei bringt und wie man das mit den ganzen Librarys macht.


Die Library wird so (mit derselben Ordnerstruktur) wie sie aus dem Archiv entpackt wird, in das Arduino libraries Verzeichnis reinkopiert. Beim nächsten Arduino-Programmstart kennt Arduino dann die Library und ihr könnt sie in Eurem Programm verwenden.

Addi

Hier ein Tipp we ihr es nicht mit den Bauteilen von euch arbeiten müsst:
Mit dem MSP 430 kann man über einen Piezolautsprecher die Töne ausgeben:
http://www.youtube.com/watch?v=CGEkj41XQNI

Addi
/ \    _|  _| o
 /--\ (_| (_| |

IrgendJemand

Wir haben jetzt die Speicherkarte und die Datei "richtig" gemacht aber wir verstehen nicht wie man die ganzen Befehle von der Seite anwendet den uns alle geben http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio
Bis jetzt haben wir das:

Code: [Select]


boolean init(uint8_t soundMode);

boolean setFile(char wibbly.wav);        //datei wird gefunden

void setup()
{  void play();
      if {messwert<500);                   //taste gedrückt
      {                                    //Anwesungen     
      }
  }
 
  if("wibbly.wav") {                      //wird gespielt wenn vorhanden
  }   

  }
  void stop();
    if ()
}

void loop() {
}

Wir wissen ja dass es falsch ist aber kommen einfach nicht weiter und wissen nicht mal ob das in "void loop" oder "void setup" rein muss und wie das Programm dann die Datei finden soll.
Außerdem haben wir das bisher immer mit "int" gemacht, dass das Programm weiß welcher Begriff was bedeutet aber hier soll man ja was anderes verwenden und wir blicken gar nicht mehr durch.

sth77

Zur Library gibt es einige Beispiele, das simpelste habe ich sogar hier im Thread gepostet. Warum willst du nicht auf diesen Beispielen aufbauen? Denn die Programmierung, die ihr bisher habt, ist gelinde gesagt gar nichts...
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

jurs


Wir haben jetzt die Speicherkarte und die Datei "richtig" gemacht aber wir verstehen nicht wie man die ganzen Befehle von der Seite anwendet


Jede Arduino-Library kommt mit mindestens einem Beispiel.

Als erstes nehmt ihr Euch also das Beispiel vor und spielt Euer Lied mit dem Beispielcode ab.

Den Beispielcode zur Library findet ihr unter:
Datei - Beispiele - SimpleSDAudio - BareMinimum

Und in diesem Minimum-Code ersetzt ihr in dieser Zeile:
if(!SdPlay.setFile("EXAMPLE.AFM"))
den Dateinamen "EXAMPLE.AFM" durch Euren Dateinamen "wibbly.wav"

Und wenn mit der Karte und der Datei darauf dann alles soweit in Ordnung ist, sollte Eure Datei vom Beispielcode abgespielt werden.

Tuttut

Tach zusammen,
durch Zufall stöbere ich gerade mal im deutschen Forum und sehe gerade, dass auch hier auf meine Library (SimpleSDAudio) verwiesen wird. Wenn ihr schon ein Ethernet-Shield zur Verfügung hat, dass ja einen brauchbaren SD-Slot mitbringt, empfehle ich euch, so wie bereits vorgeschlagen, für den Anfang irgendwie das BareMinimum-Beispiel (mit der Audio-Beispiel Datei, die dabei ist) ans Laufen zu bringen. Bevor das nicht klappt, macht es keinen Sinn, irgendwie die Befehle der Library ohne Verstand durchzuprobieren. Wenn ihr Schwierigkeiten habt, das Beispiel ans rennen zu bringen, schreibt es ins Forum, schreibt auch was ihr genau gemacht habt oder nicht versteht.

Ach ja, wenn eure Karte größer als 2GB ist, macht keinen Unsinn wie rumpartitionieren, sondern formatiert sie als Ganzes mit FAT32. Das unterstützt die Library nämlich auch.

Solltet ihr es geschafft haben, probiert ob ihr statt dem Beispielsound auch eure eigene Audiodatei damit abgespielt bekommt. Wichtig hierbei: Nie die Datei auf der Karte löschen oder überschreiben, immer die ganze Karte frisch formatieren und dann ein oder mehrere Dateien ins Hauptverzeichnis draufkopieren, Ordner werden auch nicht unterstützt.

Viel Erfolg!
tuttut

IrgendJemand

Wir haben versucht das Programm selbst zu schreiben, weil das Beispielprogramm immer Fehlermeldungen angezeigt hat, die wir nicht beheben konnten.
Also die Zeile hat immer ne Fehlermeldung;
  if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO)) {

Außerdem hat uns unser Lehrer uns heute gesagt, dass das anscheinend nicht mit einem Arduino Uno sondern nur mit einem Arduino Due funktioniert.

Go Up