Faire tourner un moteur pas à pas pendant un laps de temps tout les jours à la même heure

Bonjour,
Je suis actuellement entrain de réaliser un projet de distributeur de graine pour poule à l'aide d'une vis sans fin.
Mon objectif est de faire tourner celle ci tous les jours à la même heure, pendant un certain temps histoire que la bonne quantité de graine sorte.
Pour ce faire j'utilise un module RTC DS3231.
J'ai fait séparément deux programme, un qui permet d'afficher l'heure et le second qui fait tourner le moteur pas à pas pendant un certains temps.

Mon problème maintenant est que je ne sait pas comment faire en sorte d'effectuer l'action du moteur à l'heure souhaité. Auriez vous une idée de solution pour résoudre mon soucis?

Merci d'avance!

Voici mon programme :

#include <Wire.h>
#include <DS3231.h>

#define dirPin 2
#define stepPin 3
int t;

int CR = A0;    
int CRVal = 0; 
int NbPoule = 1;

byte Year ;
byte Month ;
byte Date ;
byte DoW ;
byte Hour ;
byte Minute ;
byte Second ;
bool Century  = false;
bool h12 ;
bool PM ;

DS3231 Clock;

void setup() {
 Serial.begin(9600);
 Wire.begin();
}

void readRTC( ) {
 Serial.print(Clock.getHour(h12, PM), DEC);
 Serial.print(":");
 Serial.print(Clock.getMinute(), DEC);
 //Serial.print(":");
 //Serial.println(Clock.getSecond(), DEC);
 delay(1000);
}

void loop() {
 readRTC();
 t=millis();

 if( readRTC == "08:00"){
  while ((millis()-t) < 10000){
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
    }
 }
}

Il y a peu de chances pour que le pointeur vers la fonction readRTC soit égal au pointeur vers la chaîne "08:00"…

Si vous calculez le nombre de secondes écoulées depuis 0h00 vous auriez un nombre que vous pourriez comparer au nombre de secondes similaire pour 8h00

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.