que pensez-vous vous de mon code ?
#include <DS3232RTC.h>
#include <Streaming.h>
#include <Time.h>
#include <Wire.h>
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int b = 11;
int v = 10;
int r = 9;
boolean bp = 0;
boolean bp2= 0;
boolean bp3 = 0;
boolean bp4 = 0;
boolean etat1 = 0;
boolean etat2 = 0 ;
char hours = 0;
float minutes = 0;
char hoursd = 9;
float hourstt = 0;
float pourcent = 0;
long temps;
boolean e = 0;
boolean e2 = 0;
char rgb = 0;
boolean etatalarme1 = 0;
void setup()
{
pinMode(1, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(r, OUTPUT);
pinMode(b, OUTPUT);
pinMode(v, OUTPUT);
pinMode(A0 , INPUT);
pinMode(A1 , INPUT);
pinMode(A2, INPUT);
pinMode(A3 , INPUT);
temps = millis();
Serial.begin(9600);
}
void loop ()
{
bp = digitalRead(A0);
bp2 = digitalRead(A1);
bp3 = digitalRead(A2);
bp4 = digitalRead(A3);
if(bp4 == HIGH)
{
Serial.println("alarme declenchée");
RTC.setAlarm(ALM2_MATCH_HOURS,00, 00, 22, dowSunday);
RTC.setAlarm(ALM1_MATCH_HOURS,00, 30, 9, dowSunday);
delay(1000);
}
if( RTC.alarm(ALARM_2) && etat1 == 0)
{
analogWrite(1, 210);
delay(1000);
analogWrite(1, 0);
delay(500);
analogWrite(1, 210);
delay(1000);
analogWrite(1, 0);
analogWrite(r, 175);
analogWrite(v, 30);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
}
if ( RTC.alarm(ALARM_1) && etatalarme1 == 0)
{
analogWrite(1,210);
analogWrite(b, 255);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(1000);
analogWrite(b, 0);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
analogWrite(1,0);
delay(1000);
analogWrite(1,210);
analogWrite(b, 255);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(1000);
analogWrite(b, 0);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
analogWrite(1,0);
delay(1000);
analogWrite(1,210);
analogWrite(b, 255);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(1000);
analogWrite(b, 0);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
analogWrite(1,0);
analogWrite(b, 255);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
etatalarme1 = 1;
}
if(bp == HIGH)
{
e2 = 1;
etat1 = 1;
analogWrite(b, 255);
Serial.println("minuterie lancé");
delay(100);
analogWrite(b, 0);
analogWrite(r, 0);
analogWrite(v, 0);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}
if(etat1 == 1 && etat2 == 0)
{
if(bp2 == HIGH)
{
etat2 = 1;
etat1 = 0;
analogWrite(b, 255);
delay(100);
analogWrite(b, 0);
Serial.println("boucle cassé");
Serial.println("bp2 appuyé ");
}
Serial.print("millis");
Serial.print(millis());
Serial.print(" minutes");
Serial.print(minutes);
Serial.print(" hours");
Serial.println(hours);
Serial.print("temps:");
Serial.println(temps);
if((millis()-temps)>60000)
{
minutes++;
temps = millis();
}
}
if(etat2 == 1)
{
e = 1;
if(bp == HIGH)
{
etat2 = 0;
etat1 = 1;
}
if(e == 1)
{
Serial.println("calcul en cour");
minutes /=60;
Serial.println(minutes);
pourcent = minutes;
pourcent *= 100;
pourcent /= hoursd;
Serial.print("pourcent:");
Serial.println(pourcent);
e = 0;
etat2 = 0;
etatalarme1 = 0;
}
}
if(bp3 == HIGH)
{
analogWrite(b, 0);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
if(pourcent >= 100)
{
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
rgb = 1;
}
if(pourcent <= 100)
{
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
rgb = 1;
}
if(pourcent <= 75)
{
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
rgb = 2;
}
if(pourcent <= 50)
{
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
rgb = 3;
}
if(pourcent <= 25)
{
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
rgb = 4;
}
switch (rgb) {
case 1:
analogWrite(b, 255);
analogWrite(v, 30);
rgb = 0;
break;
case 2:
analogWrite(r, 150);
analogWrite(v, 30);
rgb = 0;
break;
case 3:
analogWrite(r, 200);
analogWrite(v, 30);
rgb = 0;
break;
case 4:
analogWrite(r, 255);
rgb = 0;
break;
default:
break;
}
delay(5000);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(r, LOW);
digitalWrite(v, LOW);
digitalWrite(b, LOW);
}
}