Bonjour à tous, j'ai copié (désolé je suis novice en programmation) un circuit d'arrosage avec 4 sondes et 4 sorties relais avec un arduino nano. Il fonctionne parfaitement sauf un petit détail comme je voulais l'utiliser au jardin j'aimerais augmenter le temps d'arrosage de chaque sortie, le temps qui se contrôle avec la fonction millis, mais je ne peux pas augmenter de plus de 30 secondes car à partir de là le temps sur cette sortie ne s'éteint plus. Est-ce que quelqu'un a une explication? merci
#define SENSOR_READ_DELAY 86400000 //This is the loop delay for sensor reading. Its in milli seconds. set it to 86400000 for once a day.
#define FULL_MOISTURE_READING 290
#define NO_MOISTURE_READING 595
#define CUT_OFF_MOISTURE_PERCENATGE 50
#define PUMP1_WATERING_TIME 2000 //This is millis
#define PUMP2_WATERING_TIME 2000 //This is millis
#define PUMP3_WATERING_TIME 2000 //This is millis
#define PUMP4_WATERING_TIME 2000 //This is millis
int pumpPin1=2;
int pumpPin2=3;
int pumpPin3=4;
int pumpPin4=5;
int inputSensorPin1=A0;
int inputSensorPin2=A1;
int inputSensorPin3=A2;
int inputSensorPin4=A3;
void setup()
{
// put your setup code here, to run once:
pinMode(pumpPin1,OUTPUT);
pinMode(pumpPin2,OUTPUT);
pinMode(pumpPin3,OUTPUT);
pinMode(pumpPin4,OUTPUT);
digitalWrite(pumpPin1,HIGH);
digitalWrite(pumpPin2,HIGH);
digitalWrite(pumpPin3,HIGH);
digitalWrite(pumpPin4,HIGH);
}
void getMoisturePercentageAndWaterIt(int sensorValue, int outPinNo, int wateringTime)
{
sensorValue = constrain(sensorValue ,FULL_MOISTURE_READING, NO_MOISTURE_READING);
int moisturePercentage = map(sensorValue, FULL_MOISTURE_READING, NO_MOISTURE_READING, 100, 0);
if (moisturePercentage < CUT_OFF_MOISTURE_PERCENATGE)
{
digitalWrite(outPinNo, LOW);
delay(wateringTime);
digitalWrite(outPinNo, HIGH);
}
}
void loop()
{
// put your main code here, to run repeatedly:
int inputSensorPin1Value = analogRead(inputSensorPin1);
getMoisturePercentageAndWaterIt(inputSensorPin1Value, pumpPin1, PUMP1_WATERING_TIME);
int inputSensorPin2Value = analogRead(inputSensorPin2);
getMoisturePercentageAndWaterIt(inputSensorPin2Value, pumpPin2, PUMP2_WATERING_TIME);
int inputSensorPin3Value = analogRead(inputSensorPin3);
getMoisturePercentageAndWaterIt(inputSensorPin3Value, pumpPin3, PUMP3_WATERING_TIME);
int inputSensorPin4Value = analogRead(inputSensorPin4);
getMoisturePercentageAndWaterIt(inputSensorPin4Value, pumpPin4, PUMP4_WATERING_TIME);
delay(SENSOR_READ_DELAY);
}```