Bonsoir a tous,
désolé de venir polluer ce forum mais je sèche..
ayant vu au fils des discutions des sketch dont certaines fonctions m' intéressement j'ai chargé les exemples et j'essaye de les tester sauf que... ca merdouille et je ne comprends pas!
/*
DS3231: Real-Time Clock. Temperature example
Read more: www.jarzebski.pl/arduino/komponenty/zegar-czasu-rzeczywistego-rtc-ds3231.html
GIT: https://github.com/jarzebski/Arduino-DS3231
Web: http://www.jarzebski.pl
(c) 2014 by Korneliusz Jarzebski
*/
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;
RTCDateTime dt;
void setup()
{
Serial.begin(9600);
// Initialize DS3231
Serial.println("Initialize DS3231");;
clock.begin();
}
void loop()
{
// The temperature registers are updated after every 64-second conversion.
// If you want force temperature conversion use forceConversion()
clock.forceConversion();
Serial.print("Temperature: ");
Serial.println(clock.readTemperature());
delay(1000);
}
et tous les exemples de sketch me donne le même type d'erreur
sketch_mar10a:13:1: error: 'RTCDateTime' does not name a type; did you mean 'DateTime'?
RTCDateTime dt;
^~~~~~~~~~~
DateTime
C:\Users\freddy\Documents\Arduino\sketch_mar10a\sketch_mar10a.ino: In function 'void setup()':
sketch_mar10a:21:9: error: 'class DS3231' has no member named 'begin'
clock.begin();
^~~~~
C:\Users\freddy\Documents\Arduino\sketch_mar10a\sketch_mar10a.ino: In function 'void loop()':
sketch_mar10a:28:9: error: 'class DS3231' has no member named 'forceConversion'
clock.forceConversion();
^~~~~~~~~~~~~~~
sketch_mar10a:31:24: error: 'class DS3231' has no member named 'readTemperature'; did you mean 'getTemperature'?
Serial.println(clock.readTemperature());
^~~~~~~~~~~~~~~
getTemperature
exit status 1
'RTCDateTime' does not name a type; did you mean 'DateTime'?
je précise que mon ds3231 fonctionne bien avec la lib "RTClib" (avec mon autre sketch
ce qui me plaisait c’était la possibilité de formater facilement l'affichage de l'heure
Serial.print("Long number format: ");
Serial.println(clock.dateFormat("d-m-Y H:i:s", dt));
Serial.print("Long format with month name: ");
Serial.println(clock.dateFormat("d F Y H:i:s", dt));
Il faut bien que tu comprennes une chose : si tu installes plusieurs librairies DS3231, pas mal d'entre elles possèdent un fichier nommé DS3231.h
Si tu installes deux librairies possédant chacune un fichier DS3231.h tu provoques une ambiguïté, et l'IDE ARDUINO prend le premier qu'il trouve.
Donc si tu compiles ton exemple précédent il faut installer la librairie à laquelle appartient cet exemple.
Par contre si tu avais installé auparavant une autre librairie possédant un fichier DS3231.h tu dois la virer.
La librairie RTClib ne pose pas de problème car son fichier header s'appelle RTClib.h
je crois que l'on a tous vécu ce genre de situation : un foultitude de bibliothèques portant le même nom. On charge la première venue, on lance le sketch de démo et ça plante avec le type de message d'erreur cité.
pour les modules ds3231 on trouve des DS3231.h mais aussi des ds3231.h majuscule, minuscule, c'est franchement déroutant quand on débute.
Je pense qu'il faut bien lire les recommandations jeter un œil sur le contenu des bibliothèques, et pour une bibliothèque donnée, tester avec l'exemple donné. GitHub est une mine, il faut y passer un peu de temps avant de se lancer dans la compil.
Pour tester différentes bibliothèques il y a un moyen simple : ne surtout pas les mettre dans le répertoire "libraries" créé par l'IDE sinon c'est le foutoir et cela ne fonctionne pas.
La seule différence entre les bibliothèques et la programmation en fichiers séparés c'est l'endroit où sont rangés les fichier h et cpp.
Tu peux très bien procéder ainsi :
tu créé ton fichier ino => l'IDE crée un répertoire du même nom
dans ce répertoire, à coté du fichier ino, tu copies les fichiers h et cpp de la bibliothèque que tu veux essayer
tu relance l'IDE pour qu"elle prenne en compte les nouveau fichiers
et maintenant tu n'écris plus : #include <bibliotheque.h>
mais : #include "bibliotheque.h" => l'IDE va chercher dans le répertoire courant au lieu d'aller dans ses répertoires habituels.
Une fois UNE bibliothèques choisie tu l'installe classiquement.
certains tutos pour débutants expliquent aussi qu'il faut créer un répertoire "libraries" dans le dossier des croquies C:\Users\UserName\Documents\Arduino ? ce que je n'ai jamais fait
par la methode : croquis>inclure biblio>gerer les bibliotheques OU "ajouter la biblio ZIP", elle sera installée dans "C:\Program Files\Arduino\libraries", sans compter celles qui s'installent
"C:\Users\UserName\AppData\Local\Arduino15\staging\libraries" si on installe des cartes tiers : esp82, digispark, attinycore, minicore, etc...