Benötige Hilfe bei einem Programm code

Hey Leute :slight_smile:

Ich arbeite grad an einem Projekt (Wecker). Jedoch ich hab mich da bisher an den codes von der rtc und vom mp3 shield orientiert (funduinoshop). Ich hab jedoch als ich diese kopiert habe probleme mit den Libarys. ich kann die Vom mp 3 shield nicht in meinen arduino ?client? einfügen, wodurch das programm (welches ich noch erweitern muss ) nicht funktionieren kann.

Hilfe wäre echt super :slight_smile:

Falls mir da jemand via discord helfen könnte wäre ich sehr dankbar (hxfzocker#7057)
muss jedoch nicht via discord sein sondern einfach unter diesem post :slight_smile:

mfg Martin

Dann wäre es an der Zeit, dass Du Dir einige Grundkenntnisse aneignest. z.B. wie man Libs installiert.

Gruß Tommy

Hi, herzlich willkommen!

Hmm ... zu deinem Vorhaben ...
Ich glaube nicht, dass hier jemand einen Privat Lehrgang, abseits des Forums, mit dir durchzieht.

Sach doch einfach, welche Probleme du hast....
Zeige deinen Code.

Also ich habe schon gewisse libarys installiert bloß bei dieser einen funktioniert das nicht :confused:

Der code bisher sieht so aus

#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>
#include <LiquidCrystal_I2C.h> //Bibliotheken laden
LiquidCrystal_I2C lcd(0x3D, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //Das I²C Display bennen und die HEX Adresse //eingeben (bei uns 0x3D)

#include <SPI.h>      // libraries
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>
SdFat sd;       //SD Karte benennen
SFEMP3Shield MP3player;   //MP3 Shield als „MP3Player benennen

void setup() {
lcd.begin(16, 2); //Das Display starten, festlegen dass es sich um ein Display mit 16 Zeichen in 2 Zeilen //handelt
lcd.backlight(); //Beleuchtung des Displays einschalten
Serial.begin(9600); //Seriellen Verbindung mit Baudrate 9600 starten
setSyncProvider(RTC.get); //Daten von der RTC abrufen

 Serial.begin(9600);   //Serielle Verbindung starten

 if(!sd.begin(9, SPI_HALF_SPEED)) sd.initErrorHalt();  //SD Karte mit MP3 Dateien auslesen
 if (!sd.chdir("/")) sd.errorHalt("sd.chdir");

 MP3player.begin();    //MP3 Shield starten
 MP3player.setVolume(10,10); //Die Lautstärke einstellen 
 
}

void loop() {
 
 MP3player.available();
 
Serial.print(hour()); //Serial.print ist der Befehl etwas im seriellen Monitor anzuzeigen (Stunde, Minute, //Sekunde,Leerzeichen, Tag, Leerzeichen, usw.)
printDigits(minute()); //bei den Minuten und Sekunden wird der Befehl
printDigits(second()); //printDigits verwendet, welcher am Ende des Codes noch festgelegt wird
Serial.print(“ „);
Serial.print(day());
Serial.print(“ „);
Serial.print(month());
Serial.print(“ „);
Serial.print(year());
Serial.println();
delay(1000); //eine Sekunde warten
lcd.setCursor(2, 0); // setCursor gibt an wo der Text beginnen soll. In diesem Fall beim dritten Zeichen in //der ersten Reihe.
lcd.print(hour()); //Die Uhrzeit soll angezeigt werden im Format:
lcd.print(„:“); //Stunden:minuten:sekunden
lcd.print (minute());
lcd.print(„:“);
lcd.print(second());
lcd.print(“ „);
lcd.print(„Uhr“); //Dahinter soll das Wort „Uhr“ angezeigt werden
lcd.print(“ „);
lcd.print(“ „);
lcd.print(“ „);
lcd.setCursor(1, 1); //In der zweiten Zeile soll das Datum angezeigt //werden
lcd.print(day());
lcd.print(„.“);
lcd.print(month());
lcd.print(„.“);
lcd.print(year());
}

void printDigits(int digits){ //Der printDigits Befehl für den seriellen Monitor
Serial.print(„:“);
if(digits < 10)
Serial.print(‚0‘);
Serial.print(digits);
}
{  
int day;
day = weekday(); // Die Wochentage sollen abhängig vom Datum angezeigt werden.
if(day == 1){lcd.print("So, ");} // Wenn es sich um Tag 1 handelt soll „So“ usw. angezeigt werden.
if(day == 2){lcd.print("Mo, ");}  
if(day == 3){lcd.print("Di, ");}
if(day == 4){lcd.print("Mi, ");}
if(day == 5){lcd.print("Do, ");}
if(day == 6){lcd.print("Fr, ");}
if(day == 7){lcd.print("Sa, ");}
}

}

Setze Deinen Sketch bitte in Codetags (</> oben links im Editor). Damit wird er besonders auf mobilen Geräten erst lesbar.

Gruß Tommy

Edit: Es ist auch unheimlich hilfreich, die Fehlermeldung geheim zu halten.

hab ich gemacht :slight_smile:

Tommy56:
Edit: Es ist auch unheimlich hilfreich, die Fehlermeldung geheim zu halten.

@hxf_martin
Das war ironisch gemeint , kein Lob. Du solltest antworten.
Grüße Uwe

Ich sehe 8 libraries in deinem Code.

Welche funktioniert denn nicht? Und woran siehst du das?

Das ist der fehler der dabei rauskommt

Arduino: 1.8.4 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Users\dell\Documents\Arduino\Wecker\Wecker.ino:8:19: fatal error: SdFat.h: No such file or directory

#include <SdFat.h>

^

compilation terminated.

exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.
Angegebener Ordner/ZIP-Datei enthält keine gültige Bibliothek

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Steht die SdFat im Ordner \libraries\SdFat ?

Gruß Tommy

nein, da ich von der website (GitHub - madsci1016/Sparkfun-MP3-Player-Shield-Arduino-Library: A nice and neat library for playing MP3s on your Arduino using Sparkfun's MP3 Player Shield)
die libary integrieren kann
und ich weiß nicht wieso

Da gehört sie aber hin, also mach das mal. Du hast die Grundlagen nicht gelesen, die ich verlinkt habe.

Gruß Tommy

ich hab diese liabary manuell eingefügt laut anleitung es kommt aber trotzdem zum selben problem :confused:

Da von hier aus keiner auf Deinen Rechner schauen kann, wird es sehr schwer werden, Dir mit den geringen Informationen deinerseits zu helfen.
Die Fehlermeldung bleibt die Gleiche?

Gruß Tommy

jap leider :confused:

Wirf mal alle Vorkommen der SdFat raus (löschen) und installiere sie über den Lib-Manager.

Gruß Tommy

wenn ich das mache kommt der selber Fehler bloß diesmal mit SdfatUtil.h

Die ist bei mir in SdFat mit drin.

Gruß Tommy

hast du die obere oder untere libary installiert wenn du sdfat eingibst ?

Das war vor ca. 1 Jahr. Das weiß ich heute nicht mehr.

Gruß Tommy