Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec la fonction if ( Arduino )

sur les capteur TSL2561

    22 avril 2019 à 20:19:43

    Bonjour,
    Je suis en bac STI2D et je ne suis pas douée dans le code Arduino. Mon projet étant de faire un parasol autonome. J'ai réussi de faire fonctionner trois capteur TSL2561( capteur de luminosité ) mais le problème étant de comparé deux capteur avec la fonction if  . 
    voici le code avec deux  capteurs : 
    [code]
    #include <Wire.h>
    #include <Adafruit_TSL2561_U.h>
    #include <Adafruit_Sensor.h>
    int valor = 0;
    Adafruit_TSL2561_Unified tsl1 = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345) ;
    Adafruit_TSL2561_Unified tsl2 = Adafruit_TSL2561_Unified(TSL2561_ADDR_LOW, 12345);
    void configureSensor(void)
    {
      {
        tsl1.enableAutoRange(true);
        tsl1.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
      }
      {
        tsl2.enableAutoRange(true);
        tsl2.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
      }
    }
    void setup()
      {
        Adafruit_TSL2561_Unified tsl1 = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
        Adafruit_TSL2561_Unified tsl2 = Adafruit_TSL2561_Unified(TSL2561_ADDR_LOW, 12345);
       }
      {
      Serial.begin(9600);
      sensor_t sensor;
      tsl1.getSensor(&sensor);
      tsl2.getSensor(&sensor);
      }
      {
      pinMode(4,OUTPUT);
      }
      {
      digitalWrite(4, HIGH);
      }
     }  
    void loop() {
      {
        {
      }
        sensors_event_t event;
        tsl1.getEvent(&event);
        if (event.light)
        {
          Serial.print("Sensor 1: ");
          Serial.print(event.light);
          Serial.println(" lux");
          delay(5000);
        }
        tsl2.getEvent(&event);
        if (event.light)
        {
          Serial.print("Sensor 2: ");
          Serial.print(event.light);
          Serial.println(" lux");
          delay(5000);
        }
        else
        {
          Serial.println("Sensor overload");
        }
        if ((TSL2561_ADDR_FLOAT, 12345) > (TSL2561_ADDR_LOW, 12345));
       else  digitalWrite(4,LOW);
       {
        if ((TSL2561_ADDR_FLOAT, 12345) < (TSL2561_ADDR_LOW, 12345));
       else digitalWrite(4,HIGH);
       }
      }
    }
    [/code]
    Par exemple : 
    si le capteur 2 est supérieur  au capteur 1 , alors la led (gauche) est éteint.
    si le capteur 2 est inférieur  au capteur 1 , alors la led (gauche) s'allume.
    si le capteur 2 est supérieur  au capteur 3 , alors la led (droite) est éteint .
    si le capteur 2 est inférieur  au capteur 3 , alors la led (droite) s'allume.
    PS: la led correspondra au moteur pas à pas. 
    J'ai fais un code pour le moteur pas à pas mais le moteur tourne que dans un sens et je voudrais le faire tourner dans les deux sens.
    voici le code du moteur :
    [code]
    const int stepPin = 5; 
    const int dirPin = 6; 
    void setup() {
      // Sets the two pins as Outputs
      pinMode(stepPin,OUTPUT); 
      pinMode(dirPin,OUTPUT);
    }
    void loop() {
      digitalWrite(dirPin,HIGH); 
      for(int x = 0; x < 200; x++) {
        digitalWrite(stepPin,HIGH); 
        delayMicroseconds(500); 
        digitalWrite(stepPin,LOW); 
        delayMicroseconds(500); 
      }
      delay(1000); 
      digitalWrite(dirPin,LOW); 
      for(int x = 0; x < 400; x++) {
        digitalWrite(stepPin,HIGH);
        delayMicroseconds(500);
        digitalWrite(stepPin,LOW);
        delayMicroseconds(500);
      }
      delay(1000);
    }
    [/code]
    Pourrez-vous m'aider parce que je suis bloquer ? 
    • Partager sur Facebook
    • Partager sur Twitter

    Problème avec la fonction if ( Arduino )

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown