Go Down

Topic: Assembler deux programmes (Read 212 times) previous topic - next topic

amandineshr

Dans le cadre d'un projet je veux faire un réveil avec un simulateur d'aube
J'ai déjà programmé l'horloge avec un real time oclock qui est le ZS-042 DS3231 et il fonctionne correctement seul puis j'ai programmé le simulateur d'aube séparément et il fonctionne bien aussi et donc j'ai voulu les coupler j'ai fais juste une simple ligne avec la commande if et les horaires du réveil
Quand l'horloge atteint les horaires du réveil, le simulateur d'aube s'enclenche mais pendant ce temps l'afficheur ne continu plus d'afficher l'heure, elle reste figée au horaires du réveil
Code: [Select]
#include <Wire.h>
    #include <ds3231.h>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
    struct ts t;
    int rh=8;
    int rm=20;
    int led = 9;                            // la led est connéctée à l'entrée 3
    int i = 0;                              // la variable i = 0
 
    void setup() {
      lcd.begin(16, 2);
      Wire.begin();
      DS3231_init(DS3231_INTCN);

       t.hour=8; // données pour mettre à l'heure l'horloge
       t.min=19;
       t.sec=0;
       t.mday=14 ;
       t.mon=03;
       t.year=2018;
       DS3231_set(t); // mise à l'heure de l'horloge
                     
       pinMode(led, OUTPUT);                 // on défini la led comme sorti
    }
     
    void loop() {
      // put your main code here, to run repeatedly:
      DS3231_get(&t);
        lcd.setCursor (0,0);
       if (t.mday<10){
      lcd.print('0');
      lcd.print(t.mday);}
      else
      lcd.print(t.mday);
      lcd.print("/");
       if (t.mon<10){
      lcd.print('0');
      lcd.print(t.mon);}
      else
      lcd.print(t.mon);
      lcd.print("/");
      lcd.print(t.year);
      lcd.setCursor (12,0);
      lcd.print (rh);
      lcd.print ("h");
       if (rm<10){
      lcd.print('0');
      lcd.print(rm);}
      else
      lcd.print (rm);
      lcd.setCursor (5,1);
       if (t.hour<10){
      lcd.print('0');
      lcd.print(t.hour);}
      else
      lcd.print(t.hour);
      lcd.print(" : ");
      if (t.min<10){
      lcd.print('0');
      lcd.print(t.min);}
      else
      lcd.print(t.min);
      if(t.hour == rh && t.min == rm){
   {
    lcd.clear ();
  while (i < 10)                       // tant que i < 10
 
for (i=0; i<10;i++)                    // pour i de 0 à 10 , faire i+1
  {
  analogWrite(led,i);                  // allumer la led pendant i sec
  delay(75);                           // par pas de 75 ms
  lcd.setCursor (0,0);
       if (t.mday<10){
      lcd.print('0');
      lcd.print(t.mday);}
      else
      lcd.print(t.mday);
      lcd.print("/");
       if (t.mon<10){
      lcd.print('0');
      lcd.print(t.mon);}
      else
      lcd.print(t.mon);
      lcd.print("/");
      lcd.print(t.year);
      lcd.setCursor (12,0);
      lcd.print (rh);
      lcd.print ("h");
       if (rm<10){
      lcd.print('0');
      lcd.print(rm);}
      else
      lcd.print (rm);
      lcd.setCursor (5,1);
       if (t.hour<10){
      lcd.print('0');
      lcd.print(t.hour);}
      else
      lcd.print(t.hour);
      lcd.print(" : ");
      if (t.min<10){
      lcd.print('0');
      lcd.print(t.min);}
      else
      lcd.print(t.min);
  }
 
  {
   lcd.clear ();
  while (i < 255)                      // tant que i < 255
  for (i=10; i<255;i++)                // pour i de 10 à 255 , faire i+1
  {
  analogWrite(led,i);                  // allumer la led pendant i sec
  delay(1221);                         // par pas de 1221 ms
   lcd.setCursor (0,0);
       if (t.mday<10){
      lcd.print('0');
      lcd.print(t.mday);}
      else
      lcd.print(t.mday);
      lcd.print("/");
       if (t.mon<10){
      lcd.print('0');
      lcd.print(t.mon);}
      else
      lcd.print(t.mon);
      lcd.print("/");
      lcd.print(t.year);
      lcd.setCursor (12,0);
      lcd.print (rh);
      lcd.print ("h");
       if (rm<10){
      lcd.print('0');
      lcd.print(rm);}
      else
      lcd.print (rm);
      lcd.setCursor (5,1);
       if (t.hour<10){
      lcd.print('0');
      lcd.print(t.hour);}
      else
      lcd.print(t.hour);
      lcd.print(" : ");
      if (t.min<10){
      lcd.print('0');
      lcd.print(t.min);}
      else
      lcd.print(t.min);
  }
 
  }
  {
 
    digitalWrite (led, LOW);            // quand i= 255 eteindre la led
}
}
}
}


Voila le code avec les deux ensembles
Merci d'avance pour vos réponses

Go Up