Forums GRAFCET | Automatisme Systèmes automatiques Distributeur automatique de solution hydroalcoolique qui beug

  • Ce sujet contient 1 réponse, 2 participants et a été mis à jour pour la dernière fois par admin, le il y a 8 mois.
Vous lisez 1 fil de discussion
  • Auteur
    Messages
    • #19124
      Belkay
      Participant
      Up
      2
      Down

      Bonjour,

      J’ai développé pour une école un distributeur de gel hydroalcoolique, mais celui-ci présente quelques problèmes de fiabilité et je ne trouve pas pourquoi. Le système pourtant est très simple, composé comme suit:

      Un capteur laser VL53L0X – un Relai – une pompe péristaltique 12 V – Une carte arduino NANO – une Led – une alimentation 12 V.

      Le principe est que quand l’enfant passe sa main sous le capteur , il y a détection et fermeture du relai qui alimente la pompe, = l’enfant reçoit une dose de gel hydroalcoolique.

      Le problème qui se pose de façon aléatoire, est que à un moment donné le système se bloque et il faut débrancher l’alimentation 12V et la rebrancher pour qu’à nouveau ça refonctionne. Je soupçonne un problème de codage mais je ne suis pas sûr.

      Si quelqu’un pouvait au moins valider mon code ça serait vraiment sympa de sa part, au moins je serais fixé.

      Voici le code que j’ai utilisé :

      /* Use continuous mode to take range measurements with the VL53L0X. It is based on
      vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.

      The range readings are in units of mm. */

      #include <Wire.h>
      #include <VL53L0X.h>

      VL53L0X sensor;
      int relay = 2;
      int led = 8;
      boolean contact = false ;
      int sensor_value ;
      void setup()
      {
      Serial.begin(9600);
      Wire.begin();
      pinMode(relay, OUTPUT);
      pinMode(led, OUTPUT);
      sensor.setTimeout(500);
      if (!sensor.init())
      {
      Serial.println(« Failed to detect and initialize sensor! »);
      while (1) {}
      }

      // Start continuous back-to-back mode (take readings as
      // fast as possible). To use continuous timed mode
      // instead, provide a desired inter-measurement period in
      // ms (e.g. sensor.startContinuous(100)).
      sensor.startContinuous(20);
      }

      void loop()
      {
      //digitalWrite(relay, LOW) ;
      Serial.print(sensor.readRangeContinuousMillimeters());
      if (sensor.timeoutOccurred()) {
      Serial.print( » TIMEOUT »);
      }

      Serial.println();
      sensor_value = sensor.readRangeContinuousMillimeters();

      if ((sensor_value > 80) && (sensor_value < 300) && contact == false)
      {
      digitalWrite(relay, HIGH);
      digitalWrite(led, HIGH);
      //turn ON Water pump
      delay(1000); //delay 1000ms (1 second)

      digitalWrite(relay, LOW); //turn OFF Water pump
      digitalWrite(led, LOW);
      }

      if ((sensor_value > 80) && (sensor_value < 300) )
      {
      contact = true ;
      }
      else
      {
      contact = false ;
      }
      }

      Merci de votre aide.

       

       

       

       

    • #19175
      admin
      Maître des clés
      Up
      2
      Down

      Bonjour, Projet intéressant. Si j’ai bien compris, le projet fonctionne normalement, mais un défaut apparait d’une façon aléatoire. Peut etre le soucis de la liaison série. Il ‘est utile d’enlever la partie de la liaison série pour soulager le code et libérer le port série (surtout pas utile pour votre projet). Il peut avoir un soucis du capteur aussi. Voila un exemple semblable qui utilise un capteur à ultrason: https://www.electronique-mixte.fr/projet-electronique-17-seche-mains-ultrason-avec-arduino/

Vous lisez 1 fil de discussion
  • Vous devez être connecté pour répondre à ce sujet.

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.