code

j’aimerais savoir si ce code est bon ?

// librairie ds3231 
#include <DS3232RTC.h> 
#include <Time.h>
#include <Wire.h>

int led[10] = {1,2,3,4,5};
int bp = 0;
int bp2= 0;
int etat1 = 0;
int etat2 = 0 ;
int hours = 0;
int jours = 0;
int minutes = 0 ;
int hoursd = 0 ;
int hourst = 0;
int minutest = 0;
float hourstt = 0;
int pourcent = 0;
int hoursttt = 0;

void setup()
{
   for(int i = 0 ; i < 6 ; i++)
     { 
        pinMode(led[i] , OUTPUT);
     }
   pinMode(0 , INPUT);
   pinMode(1 , INPUT);
}
void loop () 
{ 
    bp = digitalRead(0);
    bp2 = digitalRead(1);
  
    RTC.get();
    RTC.setAlarm(ALM1_MATCH_HOURS,00,56,23);
    
    if ( RTC.alarm(ALARM_1) ) 
    {    
      hoursd += 9;
    }
else 
{
    
}
if(bp == HIGH) 
{
    etat1++;
}
if(etat1 == 1)
{
  delay(60000);
  minutes += 1;
  if(minutes == 60)
  {
    hours += 1;
    minutes -=60;
  }
}
 else if(etat1 == 2)
 {
   minutest = minutes; 
   minutest /=60;
   hourstt = hours + minutest ;
   hoursttt = hourstt + hourst;
   etat1 = 0;
            digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);   
           digitalWrite(led4, HIGH);
           digitalWrite(led5, HIGH);
delay(750);
           digitalWrite(led1, LOW);   
           digitalWrite(led2, LOW);   
           digitalWrite(led3, LOW);   
           digitalWrite(led4, LOW);
           digitalWrite(led5, LOW);
delay(750);
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);   
           digitalWrite(led4, HIGH);
           digitalWrite(led5, HIGH);
delay(750);
           digitalWrite(led1, LOW);   
           digitalWrite(led2, LOW);   
           digitalWrite(led3, LOW);   
           digitalWrite(led4, LOW);
           digitalWrite(led5, LOW)
delay(750);
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);   
           digitalWrite(led4, HIGH);
           digitalWrite(led5, HIGH);
 }
 pourcent = hoursttt / hours * 100
 pourcent /= 5
if(bp2 == HIGH)
{
  switch (pourcent) {
    case pourcent =< 20 : 
       digitalWrite(led1, HIGH);
     break;
//bug
       case pourcent =<40 :
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);                   
        break;
       case pourcent =< 60:
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);               
        break;
         case pourcent =< 80:
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);   
           digitalWrite(led4, HIGH);             
        break;
//bug
         case pourcent =< 100:
           digitalWrite(led1, HIGH);   
           digitalWrite(led2, HIGH);   
           digitalWrite(led3, HIGH);   
           digitalWrite(led4, HIGH);
           digitalWrite(led5, HIGH);             
        break;     
 
     }
  }
}

La boucle for i compte un élément de trop

la broche 1 apparait à la fois dans le tableau led et dans le pinMode après la boucle for i.

Je n’ai pas regardé la suite.

à oui mais mais c’était A1 et A0 c’est la différence et je pensais que l’on ne mettait pas A1 dans les données mais que c’était dis par INPUT ou OUTPUT ?

Et le switch/case ne marche pas avec des conditions, uniquement des entiers

   pinMode(0 , INPUT);
   pinMode(1 , INPUT);

Cela demande de configurer en entrée les broches D0 et D1 soit RX et TX de ta carte.

   pinMode(A0 , INPUT);
   pinMode(A1 , INPUT);

Ici on configure les broches A0 et A1 en entrée.

merci de vos réponses :smiley:
je vais changer ça fdufnews
et à la place je vais changer le switch par des if merci de me le faire remarquer b@tto

voila comment j’ai refais le code

// librairie ds3231 
#include <DS3232RTC.h> 
#include <Time.h>
#include <Wire.h>

int led[10] = {1,2,3,4,5};
int bp = A0;
int bp2= A1;
int etat1 = 0;
int etat2 = 0 ;
int hours = 0;
int jours = 0;
int minutes = 0 ;
int hoursd = 0 ;
int hourst = 0;
int minutest = 0;
float hourstt = 0;
int pourcent = 0;
int hoursttt = 0;

void setup()
{
   for(int i = 0 ; i < 6 ; i++)
     { 
        pinMode(led[i] , OUTPUT);
     }
   pinMode(A0 , INPUT);
   pinMode(A1 , INPUT);
}
void loop () 
{ 
    bp = digitalRead(0);
    bp2 = digitalRead(1);
  
    RTC.get();
    RTC.setAlarm(ALM1_MATCH_HOURS,00,56,23);
    
    if ( RTC.alarm(ALARM_1) ) 
    {    
      hoursd += 9;
    }
else 
{
    
}
if(bp == HIGH) 
{
    etat1++;
}
if(etat1 == 1)
{
  delay(60000);
  minutes += 1;
  if(minutes == 60)
  {
    hours += 1;
    minutes -=60;
  }
}
 else if(etat1 == 2)
 {
   minutest = minutes; 
   minutest /=60;
   hourstt = hours + minutest ;
   hoursttt = hourstt + hourst;
   etat1 = 0;
            digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);   

           digitalWrite(led4, HIGH);

           digitalWrite(led5, HIGH);

delay(750);

           digitalWrite(led1, LOW);   

           digitalWrite(led2, LOW);   

           digitalWrite(led3, LOW);   

           digitalWrite(led4, LOW);

           digitalWrite(led5, LOW);

delay(750);

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);   

           digitalWrite(led4, HIGH);

           digitalWrite(led5, HIGH);

delay(750);

           digitalWrite(led1, LOW);   

           digitalWrite(led2, LOW);   

           digitalWrite(led3, LOW);   

           digitalWrite(led4, LOW);

           digitalWrite(led5, LOW);

delay(750);

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);   

           digitalWrite(led4, HIGH);

           digitalWrite(led5, HIGH);

 }
 pourcent = hoursttt / hours * 100;
 pourcent /= 5;
if(bp2 == HIGH)
{
 

    if( pourcent =< 20 )

{

       digitalWrite(led1, HIGH);

}

//bug

       if(pourcent =<40)

{

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);                   

     }

       if(pourcent =< 60)

{

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);                

       }

         if(pourcent =< 80)

{

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);   

           digitalWrite(led4, HIGH);             

       }

//bug

         if(pourcent =< 100)

{

           digitalWrite(led1, HIGH);   

           digitalWrite(led2, HIGH);   

           digitalWrite(led3, HIGH);   

           digitalWrite(led4, HIGH);

           digitalWrite(led5, HIGH);             

  }  

 

  }
}

et voila l’erreur que j’obtiens

Arduino : 1.6.3 (Windows 7), Carte : "Arduino Uno"

_tude_sommeil.ino: In function 'void loop()':

_tude_sommeil.ino:67:26: error: 'led1' was not declared in this scope

_tude_sommeil.ino:69:25: error: 'led2' was not declared in this scope

_tude_sommeil.ino:71:25: error: 'led3' was not declared in this scope

_tude_sommeil.ino:73:25: error: 'led4' was not declared in this scope

_tude_sommeil.ino:75:25: error: 'led5' was not declared in this scope

_tude_sommeil.ino:132:19: error: expected primary-expression before '<' token

_tude_sommeil.ino:136:21: error: 'led1' was not declared in this scope

_tude_sommeil.ino:142:21: error: expected primary-expression before '<' token

_tude_sommeil.ino:146:25: error: 'led1' was not declared in this scope

_tude_sommeil.ino:148:25: error: 'led2' was not declared in this scope

_tude_sommeil.ino:152:21: error: expected primary-expression before '<' token

_tude_sommeil.ino:156:25: error: 'led1' was not declared in this scope

_tude_sommeil.ino:158:25: error: 'led2' was not declared in this scope

_tude_sommeil.ino:160:25: error: 'led3' was not declared in this scope

_tude_sommeil.ino:164:23: error: expected primary-expression before '<' token

_tude_sommeil.ino:168:25: error: 'led1' was not declared in this scope

_tude_sommeil.ino:170:25: error: 'led2' was not declared in this scope

_tude_sommeil.ino:172:25: error: 'led3' was not declared in this scope

_tude_sommeil.ino:174:25: error: 'led4' was not declared in this scope

_tude_sommeil.ino:180:23: error: expected primary-expression before '<' token

_tude_sommeil.ino:184:25: error: 'led1' was not declared in this scope

_tude_sommeil.ino:186:25: error: 'led2' was not declared in this scope

_tude_sommeil.ino:188:25: error: 'led3' was not declared in this scope

_tude_sommeil.ino:190:25: error: 'led4' was not declared in this scope

_tude_sommeil.ino:192:25: error: 'led5' was not declared in this scope

Erreur lors de la compilation.

  Ce rapport contiendrait plus d'informations si l'option
  "Montrer les informations de sortie pendant la compilation"
  était activée dans Fichier > Préférences.

Bin ça dit ce que ça dit, t'as pas déclaré led1, led2 ...

Evidemment puisqu’il déclare led donc il faut écrire led[0], led[1], …

il faut écrire <= et non pas =<

merci je vais changé ça et je vous redonnerai des nouvelles si ça ne marche pas :stuck_out_tongue: