Go Down

Topic: [Résolu] Comparaison heure sur une carte sd et heure d'un module RTC DS1037 (Read 875 times) previous topic - next topic

Vigier67

Bonjour à tous,

J'ai besoins de votre aide sur un projet de Terminal.  

Je dois faire un code permettant de faire tourner un moteur pas à pas à une heure précise dans la journée.( l'information est envoyer par une page web et est reçu sur la carte sd, je n'ai pas encore coder la lecture des informations sur la carte sd.)

j'utilise un moteur pas à pas,
une carte de puissance L293 pour le moteur,
un module RTC DS1307,
et un shield ethernet.

Le problème est que je ne comprend pas bien l'utilisation de la librairie RTClib.h dans le code que je dois faire.

Si vous pouviez me m'aider a comprendre et me corriger je vous en remercierais.

Code: [Select]
// --- Programme Arduino ---

// ---Déclaration des librairies
#include <Stepper.h> // librairie pour moteurs pas à pas
#include <Wire.h>
#include <RTClib.h>



// --- constantes des broches ---

const int C0=2; //déclaration constante de broche
const int C1=3; //déclaration constante de broche
const int C2=4; //déclaration constante de broche
const int C3=8; //déclaration constante de broche

DateTime HeureSite; //L'Heure envoyer par le site
DateTime MinuteSite;// Minutes envoyer par le site
const int NombrePas=200;


Stepper stepper(NombrePas, C0, C1, C2, C3);  // crée un objet Stepper pour contrôler le moteur pas à pas
RTC_DS1307 RTC;
//RTC.adjust(DateTime(__DATE__, __TIME__));


void setup()   {
 stepper.setSpeed(30);
 Wire.begin();
 RTC.begin();

 // ------- Broches en sortie -------  
 pinMode(C0, OUTPUT); //met la broche en sortie
 pinMode(C1, OUTPUT); //met la broche en sortie
 pinMode(C2, OUTPUT); //met la broche en sortie
 pinMode(C3, OUTPUT); //met la broche en sortie

}
void loop(){

 
DateTime now = RTC.now();


 if( HeureSite = now.hour() ) and (MinuteSite = now.minute())
 
 {
   for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
     stepper.step(1); // un pas en sens positif
   }
 }



}


Pour la partie moteur je me suis référer au site mon club elec recommandé par ma professeur.


fdufnews

Erreur là:
Code: [Select]
  if( HeureSite = now.hour() ) and (MinuteSite = now.minute())

= opérateur d'affectation
== opérateur de test d'égalité

La bonne syntaxe c'est:
Code: [Select]
  if( HeureSite == now.hour() ) and (MinuteSite == now.minute())

Vigier67

merci pour ta réponse mais j'ai toujours ce problème.  =(
Quand je vérifie le programme il me marque sa
Quote

no match for'operator==' HeureSite==now.DateTime::hour()
moteurpasapas.cpp: In function 'void loop()':
moteurpasapas:45: error: no match for 'operator==' in 'HeureSite == now.DateTime::hour()'
moteurpasapas:45: error: expected identifier before '(' token
moteurpasapas:45: error: expected `;' before '(' token
moteurpasapas:53: error: expected `}' at end of input


Je pense que sa dois être à cause des déclarations de variables

fdufnews

J'avais pas vu le type de HeureSite et MinuteSite.

HeureSite et MinuteSite doivent être de type byte


Go Up