Sujet : surProblème avec RTClib.h
Bonjour à tous,
Je ne sais pas si c'est ici que je dois posté !!!!, mais, ayant dû changer de PC entre temps, j’ai maintenant un portable équipé avec Windows 8.
Voulant utiliser à nouveau le programme ci-après, mis au point par Rovhel le mardi 20 août à 19 h 11 et qui a fonctionné correctement sous Vista sur l'ancien PC, malgré de très nombreux essais glanés ici et là, je n’ai pas réussi à lui faire passer l’étape de la vérification avant de le téléverser sur le nouveau PC.
J’ai constamment cet arrêt sur « RTC_DS1307 RTC ; » avec l’indication : does not name à type.(error :RTClib.h : no such file or directory)
Voici ce que je fais avant :
- sur le site GitHub, j’ai effectué le télécharge postal RTClib.
- Je le retrouve dans « le téléchargement » sous RTClib-master
- je remplace le tiret « - » par le souligner « _ »
- j’extrais en dézippant et obtiens un dossier RTClib_master dans « Téléchargement ».
- Je le copie.
- j’ouvre dans programme files(x86) « Arduino ».
- j’ouvre libraries et colle RTClib_master qui apparaît bien dans « Libraries.
- je ferme tout.
- je lance Arduino et là, j’ai bien l’indication de la présence « RTClib_master » dans la bibliothèque. (En ouvrant ce fichier j’ai : un dossier exemple ; keybord ; RTClib.ccp ; RTClib.h
Mais quand je lance la vérification de mon programme avant de le téléverser, j’ai l’indication suivante : « does not name a type ».
D’avance merci à tous de votre aide.
Bonjour,
Ayant dû changer de PC, j’ai maintenant un portable équipé avec Windows 8.
Voulant utiliser à nouveau le programme ci-après et qui a fonctionné correctement sous Vista, malgré de très nombreux essais glanés ici et là, je n’ai pas réussi à lui faire passer l’étape de la vérification avant de le téléverser.
J’ai constamment cet arrêt sur « RTC_DS1307 RTC ; » avec l’indication : does not name à type.(error :RTClib.h : no such file or directory)
Voici ce que je fais avant :
- sur le site GitHub, j’ai effectué le télécharge postal RTClib.
- Je le retrouve dans « le téléchargement » sous RTClib-master
- je remplace le tiret « - » par le souligner « _ »
- j’extrais en dézippant et obtiens un dossier RTClib_master dans « Téléchargement ».
- Je le copie.
- j’ouvre dans programme files(x86) « Arduino ».
- j’ouvre libraries et colle RTClib_master qui apparaît bien dans « Libraries.
- je ferme tout.
- je lance Arduino et là, j’ai bien l’indication de la présence « RTClib_master » dans la bibliothèque. (En ouvrant ce fichier j’ai : un dossier exemple ; keybord ; RTClib.ccp ; RTClib.h
Mais quand je lance la vérification de mon programme avant de le téléverser, j’ai l’indication suivante : « does not name a type ».
D’avance merci à tous de votre aide.
Voici le programme qui refuse de se laisser vérifier:
/* mardi 20 août à 19 h 11
** Étape 2
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
** DS1307 sur analog 4 et 5
*/
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
const int chipSelect = 4;
const int FERMETURE=0; // constante état de l'ILS
const int OUVERT=1; // constante état de l'ILS
const int ILS=2; //declaration constante de la broche ILS
const int LEDVERT=3; //declaration constante de la broche FERMETURE
const int LEDROUGE=6; //declaration constante de la broche OUVERT
// Déclaration des variables globales
int ETAT_ILS=0; // variable d'état de la porte surveillée
int LAST_ILS; // variable d'etat au passé
int a=1;
// Initialisation des fonctionnalités utilisées
void enregistrer(int etat);
// VI - FONCTION SETUP
// C’est le code d'initialisation. La fonction setup () est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
pinMode(ILS, INPUT); //met la broche en entrée
pinMode(LEDVERT, OUTPUT); //met la broche 3 en sortie
pinMode(LEDROUGE, OUTPUT); //met la broche 6 en sortie
digitalWrite(ILS, HIGH) ; // activation du pullup de la broche en entrée
// Open serial communications and wait for port to open:
Serial.begin(57600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC introuvable!");
// commenter la ligne suivante quand le bon fonctionnement du module est constaté
RTC.adjust(DateTime(__DATE__, __TIME__));
}
Serial.print("Initialisation de la carte...");
// make sure that the default chip select pin is set to
// output, even if you don't use it:
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)) {
Serial.println("Absence de la carte !");
return;
}
Serial.println("carte SD correcte.");
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("No");
dataFile.print(";");
dataFile.print("Temps"); // temps depuis que l'arduino est allumé. Remplacer plus tard avec l'implantation d'une vrai horloge
dataFile.print(";");
dataFile.print("Action");
dataFile.print(";");
dataFile.print("Heure");
dataFile.println(";");//saut de ligne
dataFile.close();
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
}
LAST_ILS=ETAT_ILS;
} // fin de la fonction setup()
// VII - FONCTION LOOP
// la fonction loop coeur du programme () s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
// Instructions à exécuter par le programme principal
ETAT_ILS=digitalRead(ILS); // lit l'état du BP et met la valeur 0/1 dans la variable
if (LAST_ILS!=ETAT_ILS)
{
enregistrer(ETAT_ILS);
}
LAST_ILS=ETAT_ILS;
if (ETAT_ILS==FERMETURE){ // si la porte est fermée (c’est-à-dire si la variable état ILS = 0
// Attention à bien utiliser == et non =
digitalWrite(LEDROUGE,0); // allume la LED ROUGE
delay (100);
digitalWrite(LEDVERT,1); // éteint la LED VERT
delay(100);
}
else { // sinon (c’est-à-dire si variable état ILS=1)
digitalWrite(LEDROUGE,1); // éteint la LED ROUGE
delay(100);
digitalWrite(LEDVERT,0); // allume la LED VERT
delay(3000);
}
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
void enregistrer(int etat)
{
DateTime now = RTC.now();
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.print(a);
dataFile.print(" ; ");
dataFile.print(millis());
dataFile.print(" ; ");
if (etat==1) {
dataFile.print("fermeture");
}
else
{
dataFile.print("ouverture");
}
dataFile.print(" ; ");
dataFile.print(now.day(), DEC);
dataFile.print('/');
dataFile.print(now.month(), DEC);
dataFile.print('/');
dataFile.print(now.year(), DEC);
dataFile.print(' ');
dataFile.print(now.hour(), DEC);
dataFile.print(':');
dataFile.print(now.minute(), DEC);
dataFile.print(':');
dataFile.print(now.second(), DEC);
dataFile.println(";");
dataFile.close();
a++;
// print to the serial port too:
Serial.println(etat);
}
// if the file isn't open, pop up an error:
else {
Serial.println("erreur ouverture datalog.txt");
}
}
Dernière modification par Guy-Roland-Pierre (13-12-2013 13:22:23)