Bonsoir !
Jai faits des petits test et les resultat sont assomment !!!
Est ce que quelqu'un peut m'expliquer, je suis a plus 20h.. sur le problem et je ne comprend absolument pas ce qui se passe !! J-M-L Tu etais certe pas loin avec le faite que l'arduino compte de maniere differente ... ? Mais comme dois-je lui dire comment (8unit)... (16unit) .. Lol
bon ce sketch fonctionne !! Good , sauf que un petit resumé du vrai program: Il exécute en 50 sec le fan...( est-ce 18000 milli c vraiment suppose etre 50 sec ?)
int Ventilateur_Toilette_Ss2= 8;
int Electricite; // Etat 120V
int Etat_120V = 51; // Relais input 120V
int Time_delay_Toil_Ss = 0; // Etat delay du Fan
int Dm_Toil_Ss = 9; // capteur infrarouge PIR Toilette Ss
int pirState_Toil_Ss = LOW; // pas encore de mouvement détecté au départ Toilette Ss
int Etat_Lumiere_Toil_Ss;
int Lumiere_Toilette_Ss1= 7;
unsigned long Ventilateur_Toil_Ss = 0;
unsigned long pir_Toil_Ss = 0;
void setup(){
pinMode(Lumiere_Toilette_Ss1, OUTPUT); //Toilette Ss
pinMode(Ventilateur_Toilette_Ss2, OUTPUT); //Toilette Ss
pinMode(Dm_Toil_Ss, INPUT); //Toilette Ss
Serial.begin(115200);
}
void loop(){
Serial.println(Electricite);
// Relais Preuve de marche 120V
Electricite = digitalRead(Etat_120V);
if (Electricite == HIGH){
Serial.println ("{\"Electricite Fonctionnel\"}");
}
if (Electricite == LOW) {
Serial.println("{\"Elctricite en Panne\"}");
}
// unsigned long Ventilateur_Toil_Ss = 0;
// unsigned long pir_Toil_Ss = 0; **/
//Serial.println(Time_delay_Toil_Ss);
//Serial.println(Ventilateur_Toil_Ss);
//Serial.println(pir_Toil_Ss);
if (Etat_Lumiere_Toil_Ss == HIGH){
Ventilateur_Toil_Ss++;
//Serial.println(Ventilateur_Toil_Ss);
if (Ventilateur_Toil_Ss >= 18000ul) { //delais reel de la lumiere:258 ... soit 4.31 min
Time_delay_Toil_Ss = HIGH;
digitalWrite(Ventilateur_Toilette_Ss2, HIGH);
}
}
if (Etat_Lumiere_Toil_Ss == LOW){
Ventilateur_Toil_Ss = 0; }
if (Etat_Lumiere_Toil_Ss == LOW && Time_delay_Toil_Ss == HIGH) {
pir_Toil_Ss++;
//Serial.println(pir_Toil_Ss);
if (pir_Toil_Ss >= 18000ul){
Time_delay_Toil_Ss = LOW;
digitalWrite(Ventilateur_Toilette_Ss2, LOW);
pir_Toil_Ss = 0;
}
}
int val_Toil_Ss = 0;
val_Toil_Ss = digitalRead(Dm_Toil_Ss); // Lire le statut
//unsigned long currentMillis_Ss = millis(); //Heure
if (val_Toil_Ss == HIGH) { // Si HIGH, détection
digitalWrite(Lumiere_Toilette_Ss1, HIGH);
Etat_Lumiere_Toil_Ss = HIGH;
if (pirState_Toil_Ss == LOW) { //Front montant (début de détection)
//Serial.println("Mouvement detecte Lumiere_Toilette_Ss"); //Affiche une seule fois
pirState_Toil_Ss = HIGH; //Mémoriser l'état haut
// previousMillis_Ss = currentMillis_Ss; //Mémoriser debut du signal
}
} else { //Sinon pas de mouvement détecté
Etat_Lumiere_Toil_Ss = LOW;
digitalWrite(Lumiere_Toilette_Ss1, LOW);
if (pirState_Toil_Ss == HIGH){ //Détecter le front descendant
//Serial.println(" stop Lumiere_Toilette_Ss ");
pirState_Toil_Ss = LOW; //Mémoriser l'état bas
//unsigned long duree = currentMillis_Ss - previousMillis_Ss;
//Serial.println(" Duree Lumiere_Toilette_Ss ");
//Serial.println(duree); //Durée en millisecondes
}
}
} // last one
maintenant si je retire l'etat de l'électricité, avec lequel javais fais des test...
Il part le fan automatique ! Dès que la lumiere est allumé !
int Ventilateur_Toilette_Ss2= 8;
int Electricite; // Etat 120V
int Etat_120V = 51; // Relais input 120V
int Time_delay_Toil_Ss = 0; // Etat delay du Fan
int Dm_Toil_Ss = 9; // capteur infrarouge PIR Toilette Ss
int pirState_Toil_Ss = LOW; // pas encore de mouvement détecté au départ Toilette Ss
int Etat_Lumiere_Toil_Ss;
int Lumiere_Toilette_Ss1= 7;
unsigned long Ventilateur_Toil_Ss = 0;
unsigned long pir_Toil_Ss = 0;
void setup(){
pinMode(Lumiere_Toilette_Ss1, OUTPUT); //Toilette Ss
pinMode(Ventilateur_Toilette_Ss2, OUTPUT); //Toilette Ss
pinMode(Dm_Toil_Ss, INPUT); //Toilette Ss
Serial.begin(115200);
}
void loop(){
/**
Serial.println(Electricite);
// Relais Preuve de marche 120V
Electricite = digitalRead(Etat_120V);
if (Electricite == HIGH){
Serial.println ("{\"Electricite Fonctionnel\"}");
}
if (Electricite == LOW) {
Serial.println("{\"Elctricite en Panne\"}");
}
**/
// unsigned long Ventilateur_Toil_Ss = 0;
// unsigned long pir_Toil_Ss = 0; **/
//Serial.println(Time_delay_Toil_Ss);
//Serial.println(Ventilateur_Toil_Ss);
//Serial.println(pir_Toil_Ss);
if (Etat_Lumiere_Toil_Ss == HIGH){
Ventilateur_Toil_Ss++;
//Serial.println(Ventilateur_Toil_Ss);
if (Ventilateur_Toil_Ss >= 18000ul) { //delais reel de la lumiere:258 ... soit 4.31 min
Time_delay_Toil_Ss = HIGH;
digitalWrite(Ventilateur_Toilette_Ss2, HIGH);
}
}
if (Etat_Lumiere_Toil_Ss == LOW){
Ventilateur_Toil_Ss = 0; }
if (Etat_Lumiere_Toil_Ss == LOW && Time_delay_Toil_Ss == HIGH) {
pir_Toil_Ss++;
//Serial.println(pir_Toil_Ss);
if (pir_Toil_Ss >= 18000ul){
Time_delay_Toil_Ss = LOW;
digitalWrite(Ventilateur_Toilette_Ss2, LOW);
pir_Toil_Ss = 0;
}
}
int val_Toil_Ss = 0;
val_Toil_Ss = digitalRead(Dm_Toil_Ss); // Lire le statut
//unsigned long currentMillis_Ss = millis(); //Heure
if (val_Toil_Ss == HIGH) { // Si HIGH, détection
digitalWrite(Lumiere_Toilette_Ss1, HIGH);
Etat_Lumiere_Toil_Ss = HIGH;
if (pirState_Toil_Ss == LOW) { //Front montant (début de détection)
//Serial.println("Mouvement detecte Lumiere_Toilette_Ss"); //Affiche une seule fois
pirState_Toil_Ss = HIGH; //Mémoriser l'état haut
// previousMillis_Ss = currentMillis_Ss; //Mémoriser debut du signal
}
} else { //Sinon pas de mouvement détecté
Etat_Lumiere_Toil_Ss = LOW;
digitalWrite(Lumiere_Toilette_Ss1, LOW);
if (pirState_Toil_Ss == HIGH){ //Détecter le front descendant
//Serial.println(" stop Lumiere_Toilette_Ss ");
pirState_Toil_Ss = LOW; //Mémoriser l'état bas
//unsigned long duree = currentMillis_Ss - previousMillis_Ss;
//Serial.println(" Duree Lumiere_Toilette_Ss ");
//Serial.println(duree); //Durée en millisecondes
}
}
} // last one
Bon jai fais dautre test, je vais vous epargnez les copiers / coller :
Il marrive de l'avoir en 10 sec de delais si je mets le Serial.println dans l'execution et quand je mets le Serial au dessus 15 sec
Conclusion !! WTF ? J'ai un cas de 36" je crois !! Hahaaha Je suis un peu au bout de mes test, Je comprend que le time se fait pas comme il faut ! J'ai vu nul part sur les commentaires un probleme simillaire. La position ou est ecris mon program change le resultat.PK?
Jai cru lire sous toute reserve que la pin 6 influencerais l'horloge interne ??
c vrai ?
Merci pour celui ou ceux qui peuvent plancher à m'aider, votre connaissance est de l'or sur ce Forum !!!
Merci, Merci !!!