Ales
Offline
Edison Member
Karma: 7
Posts: 1660
Do or DIY
|
 |
« Reply #15 on: September 24, 2012, 10:01:03 am » |
Ah oui ok, enfin on va se comprendre !! Alors même si je comprends ton point de vue, c'est quand même une solution vraiment à l'arrache que de vouloir faire un reset, surtout que ton problème n'est pas insolvable, loin de la ! Quelques petits point "à la va vite" : heure = RTC.get(DS1307_HR,true); minut = RTC.get(DS1307_MIN,false); seconde = RTC.get(DS1307_SEC,false); date = RTC.get(DS1307_DATE,false); mois = RTC.get(DS1307_MTH,false); annee = RTC.get(DS1307_YR,false); temps_perso = (heure * 100) + minut; //Affichage heure****************************************************************************************** lcd.setCursor(0,0); if (heure < 10) { lcd.print("0"); } lcd.print(RTC.get(DS1307_HR,true)); lcd.print("H"); if (minut < 10) { lcd.print("0"); } lcd.print(RTC.get(DS1307_MIN,false)); lcd.print(" ");
delay (100);
Pourquoi récupérer la date pour ensuite la redemander ? Ensuite je sais pas si c'est la que ça bug mais il y a des trous dans ta programmation horaire : que se passe-t-il entre minuit et 8h30/9h ? Il vaut mieux par sécurité toujours prévoir un état de ton système. Après quand une action a lieu, l'heure n'est affichée que 100 millisecondes, ça doit flashé ! Sinon ton bug est peut-être lié au fait que des fois essaye d'afficher plus de caractères que le LCD peut, par exemple " + POWER led + " = 17 caractères ! Utilise la fonction lcd.clear()
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #16 on: September 24, 2012, 04:01:22 pm » |
Bonsoir,
Ta question n'est surement pas bête ...
voila plus de 2 mois que je travaille sur se code et + de 3 mois sur le hardware. j'ai piocher dans des dizaine de code que j'ai trouver + des ajout/suppression qui mon été conseiller sur les forums. il y a environ 2 semaine que j'ai réussi a mettre bout a bout des codes qui font toute les action que je désir.
ressentant dans certaine réponse sur les forum un certain "mépris" pour un débutant posant des questions évidentes pour certain, je n'est pas voulu insister ni demander que l'on me refasse mon code.
Je suis déjà très content d’être arriver a se niveau de réalisation mais il est vrai que les 10% restant me dépasse et je suis incapable de pouvoir les résoudre seuls. Alors je cherche, recherche, lis et re lis, afin de comprendre par moi même, mais je sèche ...
Je vient de comprendre ta question et oui effectivement il n'y a aucun intérès. en se qui concerne le delay, je n'est pas de flash sur l'heure.
Je vais donc surpimer: heure = RTC.get(DS1307_HR,true); minut = RTC.get(DS1307_MIN,false); seconde = RTC.get(DS1307_SEC,false); date = RTC.get(DS1307_DATE,false); mois = RTC.get(DS1307_MTH,false); annee = RTC.get(DS1307_YR,false); temps_perso = (heure * 100) + minut;
et compter le nombre de caractère pour éteindre 16.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #17 on: September 25, 2012, 03:23:15 am » |
voila mon code avec les modification #include "Time.h" #include "LiquidCrystal.h" #include "WProgram.h" #include "Wire.h" #include "DS1307.h"
/* sorti /entre Arduino Analog Pin 0 = Température Sensor Analog Pin 4 = SDA pour ds1307 Analog Pin 5 = SCL pour ds1307 Digital Pin 2 = LCD Digital Pin 3 = LCD Digital Pin 4 = LCD Digital Pin 5 = LCD Digital Pin 6 = power led Digital Pin 7 = ventilateur Digital pin 9 = rouge Digital pin 10 = blanc Digital Pin 11 = LCD Digital Pin 12 = LCD Digital Pin 8 = bleu uv */
//Configuration des Pin de cablage**********************
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int sensorPin = 0; int power_led = 6; int bleu_uv = 8; int rouge = 10; int blanc = 9; int ventilateur = 7; int time; float temp; int timerPWM = 0; int valeurPWM=0; float PWMStep = 0; int SeuilMini = 18;
//Configuration des heures allumage/extinction ( format HHMM )**********************
int bleu_uv_on_time = 2030; int bleu_uv_off_time = 2359; int ventilateur_on_temp = 27; int ventilateur_off_temp = 26;
int minut; int heure; int temps_perso;
//Configuration de l'heure ( pour modifier l'heure de votre Arduino, enlevez les /* et */ puis une foi le programe envoyé, remettez les )**********************
void setup() { /* RTC.stop(); RTC.set(DS1307_SEC,30); //réglage secondes RTC.set(DS1307_MIN,37); //réglage minutes RTC.set(DS1307_HR,8); //réglage heures RTC.set(DS1307_DOW,6); //réglage jour de la semaine RTC.set(DS1307_DATE,15); //réglage date RTC.set(DS1307_MTH,9); //réglage mois RTC.set(DS1307_YR,12); //réglage année RTC.start(); */ //Configuration des entrées/sorties********************** pinMode(ventilateur, OUTPUT); // digital pin ventilateur 1 pinMode(bleu_uv, OUTPUT); // digital pin pour bleu uv pinMode(blanc, OUTPUT); // digital pin pour blanc pinMode(rouge, OUTPUT); // digital pin pour rouge pinMode(power_led, OUTPUT); // digital pin pour power led
lcd.begin(16, 2); Serial.begin(9600);
}
void loop(){
//Récupération de l'heure du DS1307**********************************************************************************************
heure = RTC.get(DS1307_HR,true); minut = RTC.get(DS1307_MIN,false); temps_perso = (heure * 100) + minut; //Affichage heure****************************************************************************************** lcd.setCursor(0,0); if (heure < 10) { lcd.print("0"); } lcd.print(heure); lcd.print("H"); if (minut < 10) { lcd.print("0"); } lcd.print(minut); lcd.print(" "); delay (100);
//Récupération de la température du LM35 ***************************************************************************************
temp = analogRead(sensorPin); temp = (temp * 0.538); //Affichage température*****************************************************************************
lcd.setCursor(10,0); lcd.print(temp); lcd.print((char)223);
//****************ventilateur if(temp > ventilateur_on_temp){ digitalWrite(ventilateur, HIGH); } if(temp < ventilateur_off_temp){ digitalWrite(ventilateur, LOW); } //****Affichage ventilateur ********
lcd.setCursor(0,1); if(digitalRead(ventilateur) == HIGH) { lcd.println("ventilateur ON "); int millis (5000); } else { lcd.println("ventilateur OFF "); int millis (5000); } //*****Controle des sorties eclairage ********* //**on-off******* bleu uv ************* if(bleu_uv_on_time > temps_perso || bleu_uv_off_time <= temps_perso){ digitalWrite(bleu_uv, LOW); } else{ digitalWrite(bleu_uv, HIGH); } //***on-off***** rouge *** if (heure == 8) { PWMStep = 255 / 59; timerPWM = minut-60; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + ROUGE + + "); delay(2000); } else if ((heure == 20) && (minut >30)) { PWMStep = 255 / 29; timerPWM = 30-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - ROUGE - - "); delay(2000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(rouge, 255); lcd.setCursor(0,1); lcd.print("ROUGE on "); delay(2000); } else if (heure <= 21) { analogWrite(rouge, 0); } //***on-off***** blanc *** if ((heure == 8) && (minut >30)) { PWMStep = 255 / 29; timerPWM = minut-30; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + BLANC + + "); delay(2000); } else if (heure == 20) { PWMStep = 255 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - BLANC - - "); delay(2000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(blanc, 255); lcd.setCursor(0,1); lcd.print("BLANC on "); delay(2000); } else if (heure <= 21) { analogWrite(blanc, 0); }
//***on-off***** power led ***
if (heure == 9) { PWMStep = 255 / 59; timerPWM = minut-60; if( valeurPWM < SeuilMini ) valeurPWM = 0; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" + POWER led + "); delay(2000);
} else if (heure == 20) { // entre 20:00 et 20:59:59 PWMStep = 255 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep); if( valeurPWM < SeuilMini ) valeurPWM = 0; analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" - POWER led - "); delay(2000);
} else if ((heure >= 10 ) && (heure < 21)) { analogWrite(power_led, 255); lcd.setCursor(0,1); lcd.print("POWER led on "); delay(2000);
} else if (heure <= 21) { analogWrite(power_led, 0); } }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #18 on: September 25, 2012, 03:31:13 am » |
De plus, je suis sur version 0022 car je n'est jamais trouver de code qui marchait sur 1.01. on ma dit que c’était mieux pour la librairie ds1307new. cela participe peut être a mes problème non ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #19 on: September 25, 2012, 03:48:51 am » |
et voici, j'ai r'ajouter entre 0h et 8/9h c'est mieux comme sa ?  #include "Time.h" #include "LiquidCrystal.h" #include "WProgram.h" #include "Wire.h" #include "DS1307.h"
/* sorti /entre Arduino Analog Pin 0 = Température Sensor Analog Pin 4 = SDA pour ds1307 Analog Pin 5 = SCL pour ds1307 Digital Pin 2 = LCD Digital Pin 3 = LCD Digital Pin 4 = LCD Digital Pin 5 = LCD Digital Pin 6 = power led Digital Pin 7 = ventilateur Digital pin 9 = rouge Digital pin 10 = blanc Digital Pin 11 = LCD Digital Pin 12 = LCD Digital Pin 8 = bleu uv */
//Configuration des Pin de cablage**********************
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int sensorPin = 0; int power_led = 6; int bleu_uv = 8; int rouge = 10; int blanc = 9; int ventilateur = 7; int time; float temp; int timerPWM = 0; int valeurPWM=0; float PWMStep = 0; int SeuilMini = 18;
//Configuration des heures allumage/extinction ( format HHMM )**********************
int bleu_uv_on_time = 2030; int bleu_uv_off_time = 2359; int ventilateur_on_temp = 27; int ventilateur_off_temp = 26;
int minut; int heure; int temps_perso;
//Configuration de l'heure ( pour modifier l'heure de votre Arduino, enlevez les /* et */ puis une foi le programe envoyé, remettez les )**********************
void setup() { /* RTC.stop(); RTC.set(DS1307_SEC,30); //réglage secondes RTC.set(DS1307_MIN,37); //réglage minutes RTC.set(DS1307_HR,8); //réglage heures RTC.set(DS1307_DOW,6); //réglage jour de la semaine RTC.set(DS1307_DATE,15); //réglage date RTC.set(DS1307_MTH,9); //réglage mois RTC.set(DS1307_YR,12); //réglage année RTC.start(); */ //Configuration des entrées/sorties********************** pinMode(ventilateur, OUTPUT); // digital pin ventilateur 1 pinMode(bleu_uv, OUTPUT); // digital pin pour bleu uv pinMode(blanc, OUTPUT); // digital pin pour blanc pinMode(rouge, OUTPUT); // digital pin pour rouge pinMode(power_led, OUTPUT); // digital pin pour power led
lcd.begin(16, 2); Serial.begin(9600);
}
void loop(){
//Récupération de l'heure du DS1307**********************************************************************************************
heure = RTC.get(DS1307_HR,true); minut = RTC.get(DS1307_MIN,false); temps_perso = (heure * 100) + minut; //Affichage heure****************************************************************************************** lcd.setCursor(0,0); if (heure < 10) { lcd.print("0"); } lcd.print(heure); lcd.print("H"); if (minut < 10) { lcd.print("0"); } lcd.print(minut); lcd.print(" "); delay (100);
//Récupération de la température du LM35 ***************************************************************************************
int reading = analogRead(sensorPin); float voltage = reading * 5.51 / 1024; int temp = voltage * 100 ; //Affichage température*****************************************************************************
lcd.setCursor(12,0); lcd.print(temp); lcd.print((char)223);
//****************ventilateur if(temp > ventilateur_on_temp){ digitalWrite(ventilateur, HIGH); } if(temp < ventilateur_off_temp){ digitalWrite(ventilateur, LOW); } //****Affichage ventilateur ********
lcd.setCursor(0,1); if(digitalRead(ventilateur) == HIGH) { lcd.println("ventilateur ON "); int millis (5000); } else { lcd.println("ventilateur OFF "); int millis (5000); } //*****Controle des sorties eclairage ********* //**on-off******* bleu uv ************* if(bleu_uv_on_time > temps_perso || bleu_uv_off_time <= temps_perso){ digitalWrite(bleu_uv, LOW); } else{ digitalWrite(bleu_uv, HIGH); } //***on-off***** rouge *** if (heure == 8) { PWMStep = 255 / 59; timerPWM = minut-60; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + ROUGE + + "); delay(2000); } else if ((heure == 20) && (minut >30)) { PWMStep = 255 / 29; timerPWM = 30-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - ROUGE - - "); delay(2000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(rouge, 255); lcd.setCursor(0,1); lcd.print("ROUGE on "); delay(2000); } else if ((heure >= 21) && (heure < 8 )){ analogWrite(rouge, 0); } //***on-off***** blanc *** if ((heure == 8) && (minut >30)) { PWMStep = 255 / 29; timerPWM = minut-30; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + BLANC + + "); delay(2000); } else if (heure == 20) { PWMStep = 255 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - BLANC - - "); delay(2000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(blanc, 255); lcd.setCursor(0,1); lcd.print("BLANC on "); delay(2000); } else if ((heure >= 21) && (heure < 8 )){ analogWrite(blanc, 0); }
//***on-off***** power led ***
if (heure == 9) { PWMStep = 255 / 59; timerPWM = minut-60; if( valeurPWM < SeuilMini ) valeurPWM = 0; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" + POWER led + "); delay(2000);
} else if (heure == 20) { // entre 20:00 et 20:59:59 PWMStep = 255 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep); if( valeurPWM < SeuilMini ) valeurPWM = 0; analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" - POWER led - "); delay(2000);
} else if ((heure >= 10 ) && (heure < 21)) { analogWrite(power_led, 255); lcd.setCursor(0,1); lcd.print("POWER led on "); delay(2000);
} else if ((heure >= 21) && (heure < 9 )){ analogWrite(power_led, 0); } }
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1660
Do or DIY
|
 |
« Reply #20 on: September 25, 2012, 06:35:20 am » |
Petite erreur else if ((heure >= 21) && (heure < 8 )){
Il faut faire un OU avec || et pas un ET &&, sinon quand il sera 1h du mat tu seras inférieur à 8 mais pas supérieur à 21  Il me semble également que la librairie time n'a aucune utilité. Sinon il y aurait bien quelques petits optimisations à faire mais vu ce que tu demandes à l'arduino elles ne serviraient qu'à rendre plus clair le code ^^ N'hésite pas à poser des questions, mais il est vrai que certains abusent de la gentillesse et ne prennent même pas la peine de faire une recherche sur google qui résolverait leur problèle en 10s ... Après ton problème de code forcément tu auras du mal à trouver la réponse tout seul si tu n'y comprends pas tout et le forum est fait pour ça. Sinon arrête moi si je me trompe mais si je comprend bien tu n'as qu'un problème d'affichage, le reste fonctionne même si le LCD a planté ? Pour le localiser le problème le mieux est alors de mettre en commentaire tous les lcd.print et de les rajouter au fur et à mesure pour voir laquelle fait planter.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #21 on: September 25, 2012, 04:39:25 pm » |
Bonsoir,
Merci, je vais effectuer cette petite modification. J'ai aussi supprimer time et pas d'erreur (j'avais du l'ajouter pour tester des morceaux de code qui n'ont pas du fonctionner). Effectivement, tout fonctionne même quand l'affichage est planté. Se qui me parait bisard c'est que si j'avait un problème dans une ligne, l'erreur serait visible des le premier loop non ? il y a une fois ou tout a fonctionner 3 jours de suite .... Avec les modif que j'ai fait precedament, je vais déjà voir si cela se reproduit. peut être a cause des caractère supplémentaire que j'avais mis ?
Je te tiens au courant et je te remercie encore
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1660
Do or DIY
|
 |
« Reply #22 on: September 26, 2012, 02:19:45 am » |
Si tu continues à coder tu verras que tu tomberas sur des bugs parfois complétement fantaisistes. En plus dans ton cas il y a pas mal de possibilités, il faut peut-être une conjoncture (ventilo + autre par exemple) pour que le bug apparaisse. Le plus efficace reste encore comme je te l'ai suggeré de localiser le bug. Parce qu'en plus les lcd y'a plein de contrôleur qui fonctionne plus ou moins de la même manière, par exemple j'e ai un qui fait 1x16 et il faut que je le déclare en 2x8 pour qu'il marche xD
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #23 on: September 26, 2012, 04:53:58 am » |
je test tout sa, sa risque de prendre plusieurs jour lol jte tiens au courant
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #24 on: September 28, 2012, 01:13:55 am » |
Bonjour,
Bonne nouvelle ! Pour le moment tout marche et l’écran est toujours OK. Je continu a faire tourner tout le weekend pour être sur ...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #25 on: October 01, 2012, 04:21:20 pm » |
Salut,
Bon j'ai peut être trouver une explication Je suis revenu de week end et tous fonctionnait J'ai nettoyer les vitre et j'ai fait bouger ma rampe et la, plus rien su l’écran. Ma sonde de température est brancher via une prise DIN. Est il possible q'un contact de cette sonde puisse faire sa a mon écran ? si je met un LCDCLEAR sur mon loop es-que mon écran repartira ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 72
|
 |
« Reply #26 on: October 05, 2012, 02:25:28 am » |
Bonjour, Voila, avec un lcd clear a chaque loop plus de problème  voici mon code pour vous autre germanophile et merci a tout se qui m'on aider depuis le tout début. #include "LiquidCrystal.h" #include "WProgram.h" #include "Wire.h" #include "DS1307.h"
/* sorti /entre Arduino Analog Pin 0 = Température Sensor Analog Pin 4 = SDA pour ds1307 Analog Pin 5 = SCL pour ds1307 Digital Pin 2 = LCD Digital Pin 3 = LCD Digital Pin 4 = LCD Digital Pin 5 = LCD Digital Pin 6 = power led Digital Pin 7 = ventilateur Digital pin 9 = rouge Digital pin 10 = blanc Digital Pin 11 = LCD Digital Pin 12 = LCD Digital Pin 8 = bleu uv */
//Configuration des Pin de cablage**********************
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int sensorPin = 0; int power_led = 6; int bleu_uv = 8; int rouge = 10; int blanc = 9; int ventilateur = 7; int time; float temp; int timerPWM = 0; int valeurPWM=0; float PWMStep = 0;
//Configuration des heures allumage/extinction ( format HHMM )**********************
int bleu_uv_on_time = 2030; int bleu_uv_off_time = 2359; int ventilateur_on_temp = 26.75; int ventilateur_off_temp = 26.00;
int minut; int heure; int temps_perso;
//Configuration de l'heure ( pour modifier l'heure de votre Arduino, enlevez les /* et */ puis une foi le programe envoyé, remettez les )**********************
void setup() { /* RTC.stop(); RTC.set(DS1307_SEC,30); //réglage secondes RTC.set(DS1307_MIN,52); //réglage minutes RTC.set(DS1307_HR,11); //réglage heures RTC.set(DS1307_DOW,6); //réglage jour de la semaine RTC.set(DS1307_DATE,15); //réglage date RTC.set(DS1307_MTH,9); //réglage mois RTC.set(DS1307_YR,12); //réglage année RTC.start(); */ //Configuration des entrées/sorties********************** pinMode(ventilateur, OUTPUT); // digital pin ventilateur 1 pinMode(bleu_uv, OUTPUT); // digital pin pour bleu uv pinMode(blanc, OUTPUT); // digital pin pour blanc pinMode(rouge, OUTPUT); // digital pin pour rouge pinMode(power_led, OUTPUT); // digital pin pour power led
lcd.begin(16,2); Serial.begin(9600);
}
void loop(){ //Récupération de la température du LM35 ***************************************************************************************
int reading = analogRead(sensorPin); float voltage = reading * 5.52 / 1024; int temp = voltage * 100 ; //Récupération de l'heure du DS1307**********************************************************************************************
heure = RTC.get(DS1307_HR,true); minut = RTC.get(DS1307_MIN,false); temps_perso = (heure * 100) + minut; lcd.clear(); lcd.setCursor(0,0); lcd.print (" AQUA GESTION "); lcd.setCursor(6,1); if (heure < 10) { lcd.print("0"); } lcd.print(heure); lcd.print("H"); if (minut < 10) { lcd.print("0"); } lcd.print(minut); lcd.print(" "); delay(5000); lcd.setCursor(0,1); lcd.print(" "); lcd.print(temp); lcd.print((char)223); lcd.print(" "); delay(5000);
lcd.setCursor(0,0); lcd.print (" GESTION "); lcd.setCursor(0,1); lcd.print (" lune "); delay(1500); lcd.setCursor(0,1); lcd.print (" soleil "); delay(1500); lcd.setCursor(0,1); lcd.print (" temperature "); delay(1500); lcd.setCursor(0,1); lcd.print (" niveau d'eau "); delay(1500); lcd.clear(); //Affichage heure****************************************************************************************** lcd.setCursor(0,0); if (heure < 10) { lcd.print("0"); } lcd.print(heure); lcd.print("H"); if (minut < 10) { lcd.print("0"); } lcd.print(minut); lcd.print(" "); delay (100);
//Affichage température*****************************************************************************
lcd.setCursor(13,0); lcd.print(temp); lcd.print((char)223);
//****************ventilateur if(temp > ventilateur_on_temp){ digitalWrite(ventilateur, HIGH); } if(temp < ventilateur_off_temp){ digitalWrite(ventilateur, LOW); }
//*****Controle des sorties eclairage ********* //**on-off******* bleu uv ************* if(bleu_uv_on_time > temps_perso || bleu_uv_off_time <= temps_perso){ digitalWrite(bleu_uv, LOW); } else{ digitalWrite(bleu_uv, HIGH); } //***on-off***** rouge *** if (heure == 8) { PWMStep = 255 / 59; timerPWM = minut-60; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + ROUGE + + "); delay(5000); } else if ((heure == 20) && (minut >30)) { PWMStep = 255 / 29; timerPWM = 30-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (rouge, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - ROUGE - - "); delay(5000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(rouge, 255); lcd.setCursor(0,1); lcd.print(" ROUGE on "); delay(5000); } else if ((heure <= 21) && (heure > 8 )){ analogWrite(rouge, 0); } //***on-off***** blanc *** if ((heure == 8) && (minut >30)) { PWMStep = 255 / 29; timerPWM = minut-30; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" + + BLANC + + "); delay(5000); } else if (heure == 20) { PWMStep = 255 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep); analogWrite (blanc, valeurPWM); lcd.setCursor(0,1); lcd.print(" - - BLANC - - "); delay(5000); } else if ((heure >= 9 ) && (heure < 21)) { analogWrite(blanc, 255); lcd.setCursor(0,1); lcd.print(" BLANC on "); delay(5000); } else if ((heure <= 21) && (heure > 8 )){ analogWrite(blanc, 0); }
//***on-off***** power led ***
if ((heure == 9) && (minut >3)) { PWMStep = 240 / 59; timerPWM = minut-60; valeurPWM = (int)(timerPWM * PWMStep)+ 15; analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" + POWER led + "); delay(5000);
} else if (heure == 20) { // entre 20:00 et 20:59:59 PWMStep = 240 / 60; timerPWM = 60-minut; valeurPWM = (int)(timerPWM * PWMStep) + 15; analogWrite (power_led, valeurPWM); lcd.setCursor(0,1); lcd.print(" - POWER led - "); delay(5000);
} else if ((heure >= 10 ) && (heure < 21)) { analogWrite(power_led, 255); lcd.setCursor(0,1); lcd.print(" POWER led on "); delay(5000);
} else if ((heure <= 21) && (heure > 9 )){ analogWrite(power_led, 0); } //****Affichage ventilateur ********
lcd.setCursor(0,1); if(digitalRead(ventilateur) == HIGH) { lcd.println("ventilateur ON "); delay(5000); } else { lcd.println("ventilateur OFF "); delay(5000); } }
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1660
Do or DIY
|
 |
« Reply #27 on: October 08, 2012, 02:39:17 am » |
|
|
|
|
|
Logged
|
|
|
|
|
|