Fichier:Code Arduino : Différence entre versions

(Page blanchie)
 
Ligne 1 : Ligne 1 :
 +
# include <math.h>
 +
# define LIGHT_SENSOR A0
  
 +
int sensorPin = A5;                      // Déclaration de la broche d'entrée de thermomètre
 +
double Thermistor(int RawADC) //Calcul température du capteur correspondant
 +
{
 +
    double Temp;
 +
    Temp = log(10000.0 * ((1024.0 / RawADC - 1)));
 +
    Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
 +
    Temp = Temp - 227.15;            // conversion de degrés Kelvin en °C
 +
    return Temp;
 +
}
 +
 +
int PinNumeriqueHumidite=2;    // Broche Numérique mesurant l'humidité
 +
int humidite;
 +
 +
void setup()
 +
{
 +
  Serial.begin (9600);                //Connexion série à 9600 baud
 +
  pinMode(10, OUTPUT);        //Pin 10 en entrée numérique de la pompe
 +
  pinMode(PinNumeriqueHumidite, INPUT);      //Pin 3 en entrée numérique du capteur humidité
 +
}
 +
 +
void loop()
 +
{
 +
 
 +
  int readVal = analogRead(sensorPin);                  //Lecture valeur analogique de la température
 +
  double temperature =  Thermistor(readVal);
 +
 +
  int luminosite = analogRead(LIGHT_SENSOR);  //Lecture valeur numérique de la luminosité
 +
 +
  Serial.println("Température = ");                            //Affichage valeur température
 +
  Serial.print(temperature);
 +
  Serial.println(" degrés.");
 +
  delay(500);
 +
 
 +
  humidite = digitalRead(PinNumeriqueHumidite);  //Affichage valeur humidité
 +
  Serial.println("Humidité = ");
 +
  Serial.println(humidite);
 +
  delay(500); 
 +
 +
  Serial.println("Luminosité = ");                              //Affichage valeur luminosité
 +
  Serial.println(luminosite);
 +
  delay(500);
 +
 +
  if (humidite==1)                                                          //Condition pour sol sec
 +
    {
 +
      if ((temperature>2) && (temperature<=10))          //Condition arrosage pour 2°C<T<10°C
 +
          {
 +
            if (luminosite>100)                                          //Condition pour luminosité>100
 +
              {
 +
                digitalWrite(10, HIGH);
 +
                delay(500);
 +
                digitalWrite(10, LOW);
 +
              }
 +
            else
 +
            {
 +
              digitalWrite(10, LOW);
 +
            }
 +
          }
 +
     
 +
     
 +
      if ((temperature>10) && (temperature<25))        //Condition arrosage pour 10°C<T<25°C
 +
          {
 +
            digitalWrite(10, HIGH);  // Pompe allumée
 +
            delay (10000);
 +
            digitalWrite(10, LOW);     
 +
          }
 +
      if (temperature>=25)                                            //Condition arrosage pour T>25°C
 +
 +
          {
 +
            digitalWrite(10, HIGH);
 +
            delay(15000);
 +
            digitalWrite(10, LOW);
 +
          }
 +
      else
 +
      {
 +
            digitalWrite(10, LOW);   
 +
      }
 +
    }
 +
else
 +
{
 +
  digitalWrite(10, LOW);
 +
}
 +
}

Version actuelle datée du 2 janvier 2019 à 17:15

  1. include <math.h>
  2. define LIGHT_SENSOR A0

int sensorPin = A5; // Déclaration de la broche d'entrée de thermomètre double Thermistor(int RawADC) //Calcul température du capteur correspondant {

   double Temp;
   Temp = log(10000.0 * ((1024.0 / RawADC - 1)));
   Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
   Temp = Temp - 227.15;            // conversion de degrés Kelvin en °C
   return Temp;

}

int PinNumeriqueHumidite=2; // Broche Numérique mesurant l'humidité int humidite;

void setup() {

 Serial.begin (9600);                //Connexion série à 9600 baud
 pinMode(10, OUTPUT);         //Pin 10 en entrée numérique de la pompe
 pinMode(PinNumeriqueHumidite, INPUT);       //Pin 3 en entrée numérique du capteur humidité

}

void loop() {

 int readVal = analogRead(sensorPin);                  //Lecture valeur analogique de la température
 double temperature =  Thermistor(readVal);
 int luminosite = analogRead(LIGHT_SENSOR);  //Lecture valeur numérique de la luminosité
 Serial.println("Température = ");                            //Affichage valeur température
 Serial.print(temperature);
 Serial.println(" degrés.");
 delay(500);
 
 humidite = digitalRead(PinNumeriqueHumidite);  //Affichage valeur humidité 
 Serial.println("Humidité = ");
 Serial.println(humidite);
 delay(500);  
 Serial.println("Luminosité = ");                               //Affichage valeur luminosité
 Serial.println(luminosite);
 delay(500);
 if (humidite==1)                                                          //Condition pour sol sec
    {
      if ((temperature>2) && (temperature<=10))          //Condition arrosage pour 2°C<T<10°C 
         {
           if (luminosite>100)                                           //Condition pour luminosité>100
              {
               digitalWrite(10, HIGH);
               delay(500);
               digitalWrite(10, LOW);
              }
           else 
           {
             digitalWrite(10, LOW);
           }
         }
      
      
      if ((temperature>10) && (temperature<25))         //Condition arrosage pour 10°C<T<25°C 
         {
           digitalWrite(10, HIGH);   // Pompe allumée
           delay (10000); 
           digitalWrite(10, LOW);      
         }
      if (temperature>=25)                                            //Condition arrosage pour T>25°C
         {
           digitalWrite(10, HIGH);
           delay(15000);
           digitalWrite(10, LOW);
         }
      else 
      {
           digitalWrite(10, LOW);    
      }
    }

else {

 digitalWrite(10, LOW);

} }

Les 2 pages suivantes utilisent ce fichier :