Bonjour,
Je travaille sur un projet pour lequel j'ai besoin d'enregistrer des données horodatées (températures) sur une carte SD.
Je voudrais utiliser pour cela une Arduino Uno, une RTC DS1307 de Sparkfun et le shield Ethernet R3 d'Arduino qui est doté d'un lecteur de carte SD.
J'en suis au début de mon projet et j'ai commencé par tester les fonctions élémentaires, notamment en ce qui concerne l'heure.
Avec la carte Uno seule, j'arrive à régler la DS1307 (avec SDA et SCL reliés à A4 et A5) sans problème avec le code suivant :
#include <Wire.h>
#include "RTClib.h" //bibliothèque Adafruit
RTC_DS1307 RTC;
void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(DATE, TIME));
DateTime now = RTC.now();
String heure = "Il est " + String(now.hour(),DEC) + ':' + String(now.minute(),DEC) + ':' + String(now.second(),DEC);
Serial.println(heure);
}
void loop()
{
DateTime now = RTC.now();
String heure = "Il est " + String(now.hour(),DEC) + ':' + String(now.minute(),DEC) + ':' + String(now.second(),DEC);
Serial.println(heure);
delay(15000);
}
L'horloge se met à l'heure de la compilation puis tourne toute seule.
Par contre, quand je monte le shield sur la carte, la DS1307 étant donc cette fois reliée au shield, toujours sur les entrées A4 et A5, j'obtiens ce résultat sur la console : 165:165:85 (tant à la mise à l'heure qu'ensuite), ce qui est un peu bizarre pour une heure !!
Le fait de compléter le code avec les bibliothèques SD et SPI ne change rien.
J'ai cherché sur le forum et trouvé des post évoquant des problèmes similaires, mais je n'ai pas identifié de solution (ou pas compris les pistes suggérées, étant plutôt débutant...).
Je pense qu'il n'y a pas de problème matériel avec le shield car j'ai pu utiliser tant les fonctions réseau que le lecteur SD.
Merci d'avance pour votre aide !