Aller au contenu


Photo
- - - - -

arrosage pour bonsai


  • Veuillez vous connecter pour répondre
95 réponses à ce sujet

#61 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 04 avril 2020 - 03:26

Hum ... Je crois que j'ai compris. 

En fait à partir de la photo que tu as prise là le système reste bloqué dans " arrosage en cours " ? 

=> Dans ce cas là tu as identifier un problème dans la fonction " setWater " ... 

Vu que " arrosage en cours c'est dans cette fonction. 

On va donc modifier cette fonction et faire des " serialPrint" dedans afin de voir ce qui se passe et de comprendre ! =) 
Vu que cette fonction est toute petite ça ne devrait pas être trop compliqué ! =) 

 void setWater( uint8_t mlValue) {
   uint16_t mlReference = water_read();// on note la quantité en ml qui était déjà arrosée avant de commencer
   uint16_t ml = mlReference;
   bool etatPompe = false; // Pompe Off par défaut
   setWaterPump(true); // on allume la pompe
   Serial.println("Arrosage en cours");
   while(ml < mlReference + mlValue  ) {

    ml= water_read(); // mise à jour de ml

    // Affichage en attendant que le dosage d'eau soit ok
    Serial.print("Lecture : ");
    Serial.println(ml);
    Serial.print("Limite à atteindre : ");
    Serial.println(mlReference + mlValue);
    Serial.println("");

    attendre(1);  // attendre 1 seconde
  
   }
   Serial.println("dosage eau ok");
   
   setWaterPump(false);// on éteind la pompe quand le dosage est ok    
}

Tu as plus qu'à refaire un essais avec cette fonction modifiée et à afficher ce qui se passe =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#62 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 04 avril 2020 - 05:32

Mike 118 ,

je pense que c'est le comptage float qui ne fonctionne pas .

Du fait que tu as mis attendre(500)

il ne se passe rien 1 photo .

[attachment=11458:IMG_1711.JPG]

et aprés 2 eme photo [attachment=11461:IMG_1714.JPG]

les ml   ça défile et le relais claque oscille et le compteur ml s'emballe 

voila j’espère que ça t'aidera



#63 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 262 messages
  • Gender:Male

Posté 04 avril 2020 - 08:47

Bonsoir,

est-ce que tu pourrais s'il te plait nous faire un copier coller de TOUT le contenu du serial monitor (tu peux utiliser Ctrl+A pour tout sélectioner, puis Ctrl+C pour copier, et ensuite tu colles le tout). Et active si possible l'horodatage dès le début.

Comme ça on a l’enchaînement complet.

 

Et laisse tourner un peu plus longtemps, j'aimerais bien voir 3" lecture" au dessus de la "limite à atteindre" (si c'est bien ce qui arrive).

 

 

Enfin, quand tu dis que le relais "claque oscille", tu veux dire quoi exactement? Qu'il oscille très vite? (en produisant à chaque fois un claquement?). A quelle fréquence à peu près? Et est-ce qu'à chaque claquement tu observe un message "pompe on" ou "pompe off"? Et est-ce qu'à chaque claquement la pompe change effectivement d'état (s'arrête de couler ou recommence)?


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#64 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 04 avril 2020 - 09:55

Mike 118 ,

je pense que c'est le comptage float qui ne fonctionne pas .

Du fait que tu as mis attendre(500)

 

 

mea culpa j'ai oublié que attendre attendait des secondes en paramètres ... Du coup j'ai édité mon poste plus haut ... en mettant " attendre(1); " à la place . Du coup relis mes deux messages précédents 

Après avoir relu mes messages en plus de refaire un test en répondant aux questions de Sandro poste ton dernier code complet =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#65 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 05 avril 2020 - 01:55

Bonjour Mike118,sandro,

je te joint le fichier serial dans un bloc notes

j’espère que vous comprendrez ce qui se passe .

pour répondre au claquement du relais quand l'eau passe cela fait osciller le relais entre deux position .

BON DIMANCHE



#66 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 05 avril 2020 - 02:04

Bonjour Mike118, sandro,

[attachment=11462:serial.txt]

Voila la copie du serial avec horodatage.

bon dimanche j'espére que vous trouverais le soucis .



#67 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 262 messages
  • Gender:Male

Posté 05 avril 2020 - 03:32

Et tu pourrais s'il te plait joindre le code complet actuel, comme Mike te l'a demandé?


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#68 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 05 avril 2020 - 03:48

Voila le code complet .

 

 

/*Soil Moisture*/
const uint8_t  sensor_MoisturePin =  A0;
const uint32_t tempsEntreDeuxAffichages = 1000;// Temps en ms

/*Relay Pompe Arrosage*/
const uint8_t RelayPin = A2;

/* Capteur de débit d'eau*/
const uint8_t sensorInterrupt = 0;
const uint8_t sensorPin       = 2;
const float calibrationFactor = 90;

/* Variables volatiles utilisées dans l'interruption pour le débit d'eau = une des rares variables qu'on a le droit d'avoir en globale*/
  volatile uint8_t pulseCount = 0;

void setup() {
    Serial.begin(9600);
    /* Init SoilMoisture*/
    pinMode(sensor_MoisturePin,INPUT);
    /* Init Relay Pumpe  */
    pinMode(RelayPin, OUTPUT);
    /* initialisation du capteur de pompe*/
    water_setup ();
  
}

uint16_t getRawHumidity(){
    /* Variables Arrosage*/
    uint16_t rawHumidity = analogRead(sensor_MoisturePin);
    return rawHumidity;
}

uint8_t getPercentHumidity(uint16_t rawHumidity){
    if(rawHumidity > 1023)
     rawHumidity = 1023;
    uint8_t percentHumidity = map(rawHumidity, 0, 1023, 0, 100);
    return percentHumidity;
}
void water_setup () {
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);
  pulseCount = 0;
  attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
/* fonction qui lit stock en interne et retourne le résultat */
  uint32_t water_read () {
  /* Les variables statiques sont des variables qui ne sont pas écrasée, ça permet d'éviter d'utiliser des variables globales*/
  static uint32_t totalMilliLitres = 0;
  static uint32_t oldTime = millis();

  /* Variables temporaires juste pour les calculs => Pas besoin d'avoir des variables globales pour ça*/
  float flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
  float flowMilliLitres = (flowRate / 60) *1000;

  /* Mise à jour de notre variable de stockage ( variable statique ) */
  totalMilliLitres += flowMilliLitres;

  /* Remise à zero des outils de calculs ( variable statique + globale volatile)*/
  oldTime = millis();
  pulseCount = 0;

  /* Retour du résultat*/
  return totalMilliLitres;
}

void pulseCounter() {
  /* Incremente pulseCount*/
    pulseCount++;
}


void setWaterPump(bool etat) {
  if ( etat == false ) {
    digitalWrite(RelayPin,false);
    Serial.println("pompe Off");
 }
 else {
    digitalWrite(RelayPin,true);
    Serial.println("pompe On");
  }
}
void loop() {
    affichage();      //affichage des constantes sur le serial
    Arrosage(30);     // arroser si humidité <30%
    attendre(1000);   // attendre 1000ms    
    
}
void affichage() {
    uint16_t rawHumidity = getRawHumidity();
    uint8_t percentHumidity = getPercentHumidity(rawHumidity);
    Serial.print("Raw Humidity value: ");
    Serial.print(rawHumidity);
    Serial.print("\t");
    Serial.print("Percentage: ");
    Serial.print(percentHumidity);
    Serial.println("%");
    Serial.print("Output Liquid Quantity: ");
    Serial.print(water_read ());
    Serial.println("mL");
}
 void setWater( uint8_t mlValue) {
   uint16_t mlReference = water_read();// on note la quantité en ml qui était déjà arrosée avant de commencer
   bool etatPompe = false; // Pompe Off par défaut
   setWaterPump(true); // on allume la pompe
   Serial.println("Arrosage en cours");
   while(water_read() < mlReference + mlValue  ) {
      // On ne fait rien en attendant que le dosage d'eau soit ok
      // Affichage en attendant que le dosage d'eau soit ok
    Serial.print("Lecture : ");
    Serial.println(water_read());
    Serial.print("Limite à atteindre : ");
    Serial.println(mlReference + mlValue);
    Serial.println("");
    attendre(1);
   }
   Serial.println("dosage eau ok");
   
   setWaterPump(false);// on éteind la pompe quand le dosage est ok    
}
void attendre(uint16_t attente) {    // temps d'attente en secondes
   uint16_t timeReference = millis();// temps avant de commencer
   Serial.println("on attend");
   while (millis() - timeReference <= attente * 1000) {
      // On ne fait rien en attendant
   }
   Serial.println("Fin d'attente");
}
    
 void Arrosage(uint8_t seuil){
      uint8_t percentHumidity = getPercentHumidity(getRawHumidity());
       
   if ( percentHumidity < seuil ) {
         setWater(10);//(x ml)
         attendre(30);//attendre
        
         percentHumidity = getPercentHumidity(getRawHumidity());
         if ( percentHumidity >= seuil ) {
           Serial.println("Arrosage terminé avec succès");   
         } else {
           Serial.println("Echec d'arrosage");
         }
   } else {
         Serial.println("Pas besoin d'arroser");
   }
}   
 
 

 

#69 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 05 avril 2020 - 05:11

Bonjour Mike118,sandro,

je te joint le fichier serial dans un bloc notes

j’espère que vous comprendrez ce qui se passe .

pour répondre au claquement du relais quand l'eau passe cela fait osciller le relais entre deux position .

BON DIMANCHE

 

De ce que j'en comprends =>  tu as un problème électrique qui fait que ton relais oscille ...  Dans ce cas là on ne va rien pouvoir faire pour toi juste avec le code ... Peux tu montrer ton montage ? 

Ensuite petites remarques comme ça : 

Dans le loop tu peux éventuellemement réduire le " attendre(1000) " avec un chiffre un peu plus petit car ce sont des secondes ... 

Mettre attendre(10) par exemple .... ou bien 5 ...

Ensuite il serait pertinent de corriger la fonction attendre car un uint16_t c'est une variable trop petite : 
 

void attendre(uint32_t attente) {    // temps d'attente en secondes
   uint32_t timeReference = millis();// temps avant de commencer
   Serial.print("On attend ");
   Serial.print(attente);
   Serial.print("secondes");
   while (millis() - timeReference <= attente * 1000) {
      // On ne fait rien en attendant
   }
   Serial.println("Fin de l'attente");
}

Enfin tu n'as pas complètement corrigé la fonction waterRead comme sur mon message  plus haut:  ... C'est pour ça que j'ai demandé de mettre le code complet =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#70 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 262 messages
  • Gender:Male

Posté 05 avril 2020 - 05:18

Pour attendre, je venais aussi de repérer le problème (ça crée des attentes complètement faussées, parfois de 0.000 secondes, parfois beaucoup trop courtes (les 1000 secondes deviennent en fait 1000*1000 modulo 2^16 millisecondes, soit environ 16 secondes).

 

@Mike : tu es sur que ça marche ta nouvelle version : attente est un uint16_t que tu multiplie par 1000 (je suppose que par défaut c'est un int16_t), du coup je crains que le résultat soit d'abord un (u)int16_t (donc overflow) et que seulement après on convertisse en  uint32_t pour la comparaison. Mais je me trompe peut-être.

 

Dans le doute, j'utiliserais plutôt ce code ci :

void attendre(uint16_t attente) {    // temps d'attente en secondes
   uint32_t timeReference = millis();// temps avant de commencer
   Serial.print("On attend ");
   Serial.print(attente);
   Serial.print("secondes");
   while (millis() - timeReference <= (unsigned long)attente * 1000) {
      // On ne fait rien en attendant
   }
   Serial.println("Fin de l'attente");
}

 


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#71 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 05 avril 2020 - 05:26

voila la photo de la carte ainsi que du relais .[attachment=11463:IMG_1716.JPG]



#72 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 05 avril 2020 - 07:32

 

 

@Mike : tu es sur que ça marche ta nouvelle version : attente est un uint16_t 

 

Tu as raison j'ai édité pour que l'entré de la fonction soit un uint32_t ...  Mais bon il y a plusieurs façon de faire la même chose =) la tienne aussi se tient. 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#73 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 06 avril 2020 - 02:00

bonjour Mike118 , sandro,

Bonne nouvelle toutes vos modifications ont portées leurs fruits .

J'ai fait  plusieurs arrosage avec soil_moisture hors de l'eau et cela à bien fonctionner .

Je vous joint le serial .[attachment=11464:Serial_06_04_20.txt]

Juste la quantité d'eau à chaque déversement environ le double de la commande ,je pense que cela  ai du à plusieurs facteur (pompe ,longueur du tuyau ou ai positionner le flow water par rapport à la sortie de la pompe etc...) .

je vous joint le code pour vérifier le code .

merci

/*Soil Moisture*/
const uint8_t  sensor_MoisturePin =  A0;
const uint32_t tempsEntreDeuxAffichages = 1000;// Temps en ms

/*Relay Pompe Arrosage*/
const uint8_t RelayPin = A2;

/* Capteur de débit d'eau*/
const uint8_t sensorInterrupt = 0;
const uint8_t sensorPin       = 2;
const float calibrationFactor = 4.5;

/* Variables volatiles utilisées dans l'interruption pour le débit d'eau = une des rares variables qu'on a le droit d'avoir en globale*/
  volatile uint8_t pulseCount = 0;

void setup() {
    Serial.begin(9600);
    /* Init SoilMoisture*/
    pinMode(sensor_MoisturePin,INPUT);
    /* Init Relay Pumpe  */
    pinMode(RelayPin, OUTPUT);
    /* initialisation du capteur de pompe*/
    water_setup ();
  
}

uint16_t getRawHumidity(){
    /* Variables Arrosage*/
    uint16_t rawHumidity = analogRead(sensor_MoisturePin);
    return rawHumidity;
}

uint8_t getPercentHumidity(uint16_t rawHumidity){
    if(rawHumidity > 1023)
     rawHumidity = 1023;
    uint8_t percentHumidity = map(rawHumidity, 0, 1023, 0, 100);
    return percentHumidity;
}
void water_setup () {
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);
  pulseCount = 0;
  attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
/* fonction qui lit stock en interne et retourne le résultat */
  uint32_t water_read () {
  /* Les variables statiques sont des variables qui ne sont pas écrasée, ça permet d'éviter d'utiliser des variables globales*/
  static uint32_t totalMilliLitres = 0;
  static uint32_t oldTime = millis();

  /* Variables temporaires juste pour les calculs => Pas besoin d'avoir des variables globales pour ça*/
  float flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
  float flowMilliLitres = (flowRate / 60) *1000;

  /* Mise à jour de notre variable de stockage ( variable statique ) */
  totalMilliLitres += flowMilliLitres;

  /* Remise à zero des outils de calculs ( variable statique + globale volatile)*/
  oldTime = millis();
  pulseCount = 0;

  /* Retour du résultat*/
  return totalMilliLitres;
}

void pulseCounter() {
  /* Incremente pulseCount*/
    pulseCount++;
}


void setWaterPump(bool etat) {
  if ( etat == false ) {
    digitalWrite(RelayPin,false);
    Serial.println("pompe Off");
 }
 else {
    digitalWrite(RelayPin,true);
    Serial.println("pompe On");
  }
}
void loop() {
    affichage();      //affichage des constantes sur le serial
    Arrosage(30);     // arroser si humidité <30%
     attendre(1);   // attendre 1000ms    
    
}
void affichage() {
    uint16_t rawHumidity = getRawHumidity();
    uint8_t percentHumidity = getPercentHumidity(rawHumidity);
    Serial.print("Raw Humidity value: ");
    Serial.print(rawHumidity);
    Serial.print("\t");
    Serial.print("Percentage: ");
    Serial.print(percentHumidity);
    Serial.println("%");
    Serial.print("Output Liquid Quantity: ");
    Serial.print(water_read ());
    Serial.println("mL");
}
void setWater( uint8_t mlValue) {
   uint16_t mlReference = water_read();// on note la quantité en ml qui était déjà arrosée avant de commencer
   uint16_t ml = mlReference;
   bool etatPompe = false; // Pompe Off par défaut
   setWaterPump(true); // on allume la pompe
   Serial.println("Arrosage en cours");
   while(ml < mlReference + mlValue  ) {

    ml= water_read(); // mise à jour de ml

    // Affichage en attendant que le dosage d'eau soit ok
    Serial.print("Lecture : ");
    Serial.println(water_read());
    Serial.print("Limite à atteindre : ");
    Serial.println(mlReference + mlValue);
    Serial.println("");

    attendre(1);  // attendre 1 seconde
 
   }
   Serial.println("dosage eau ok");
   
   setWaterPump(false);// on éteind la pompe quand le dosage est ok    
}
void attendre(uint32_t attente) {    // temps d'attente en secondes
   uint32_t timeReference = millis();// temps avant de commencer
   Serial.print("On attend ");
   Serial.print(attente);
   Serial.print("secondes");
   while (millis() - timeReference <= attente * 1000) {
      // On ne fait rien en attendant
   }
   Serial.println("Fin de l'attente");
}
    
 void Arrosage(uint8_t seuil){
      uint8_t percentHumidity = getPercentHumidity(getRawHumidity());
       
   if ( percentHumidity < seuil ) {
         setWater(10);//(x ml)
         attendre(30);//attendre
        
         percentHumidity = getPercentHumidity(getRawHumidity());
         if ( percentHumidity >= seuil ) {
           Serial.println("Arrosage terminé avec succès");   
         } else {
           Serial.println("Echec d'arrosage");
         }
   } else {
         Serial.println("Pas besoin d'arroser");
   }
}   
 
 


#74 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 06 avril 2020 - 05:47

petite correction pour la fonction setWater et attendre: 


 

 void setWater( uint8_t mlValue) {
   uint16_t mlReference = water_read();// on note la quantité en ml qui était déjà arrosée avant de commencer
   uint16_t ml = mlReference;
   bool etatPompe = false; // Pompe Off par défaut
   setWaterPump(true); // on allume la pompe
   Serial.println("Arrosage en cours");
   while(ml < mlReference + mlValue  ) {

    ml= water_read(); // mise à jour de ml

    // Affichage en attendant que le dosage d'eau soit ok
    Serial.print("Lecture : ");
    Serial.println(ml);
    Serial.print("Limite à atteindre : ");
    Serial.println(mlReference + mlValue);
    Serial.println("");

    attendre(1);  // attendre 1 seconde
  
   }
   Serial.println("dosage eau ok");
   
   setWaterPump(false);// on éteind la pompe quand le dosage est ok    
}
void attendre(uint32_t attente) {    // temps d'attente en secondes
   uint32_t timeReference = millis();// temps avant de commencer
   Serial.print("On attend ");
   Serial.print(attente);
   Serial.println("s");
   while (millis() - timeReference <= attente * 1000) {
      // On ne fait rien en attendant
   }
   Serial.println("Fin de l'attente");
}

J'ai quand même l'impression que la fonction water read ne marche pas bien ... 


Peux tu essaye ça : 



void loop() {
    setWaterPump(HIGH);
    Serial.print(water_read());
    Serial.println("ml");
    Serial.println("");
    attendre(1);   // attendre 1s       
}

Et montrer ce que donne le moniteur série? 

 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#75 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 07 avril 2020 - 01:19

bonjour Mike118,

je te joint le Serial_1_test_programme avec tes dernières modif .

et le Serial_test_loop.

Bonne journée.

[attachment=11466:lSerial_test_loop.txt]

[attachment=11465:Serial_1_test_programme.txt]



#76 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 07 avril 2020 - 05:10

Il n'y avait pas d'eau qui coulait lors du test ? Car ça indique tout le temps 0ml ... 

Le but du test c'est de savoir si la fonction water read fonctionne ... 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#77 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 07 avril 2020 - 07:30

Ok je te la refait demain ; 

bonne soirée



#78 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 08 avril 2020 - 01:56

bonjour Mike118,

voila le Serial_de la_pompe .[attachment=11473:loop_arrosage .txt]



#79 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 08 avril 2020 - 03:20

ok visiblement la fonction marche bien, il faut environ 6 secondes et demi pour que l'eau arrive au capteur, et ensuite tu as environ un débit de 300ml / s  du coup attendre 1 seconde c'est beaucoup trop si tu veux de la précision au ml ...  Du coup il va peut être falloir revoir la fonction attendre pour enlever le *100 qui est dedans remettre le paramètre en ms et pas en secondes ...

Ton arrosage tu veux quoi comme précision ? 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#80 michel

michel

    Habitué

  • Membres
  • PipPip
  • 179 messages
  • Gender:Male
  • Location:nice

Posté 08 avril 2020 - 03:34

Je t'ai mis la pompe que j'utilise pour l'instant .

pour la précision c'est pas au centième c'est juste une plante , au plus prés en Ml  .

par contre pour le manque d'eau tu as déjà une idée toujours par rapport au flow water .

d'avance merci .

bonne journée.






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users