Arduino - Sistema riego

 
Vista:
Imágen de perfil de Vicente puertas
Val: 2
Ha aumentado su posición en 26 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Sistema riego

Publicado por Vicente puertas (1 intervención) el 15/01/2020 18:24:30
Tengo un código de riego automático para seis microbombas.
Mi código después de leer mucho funciona pero me gustaría limitar el tiempo de riego a 10 segundos descanse 1 minuto y vuelva a su estado normal.
Tengo 54 años y esto se me hace grande llevo 3 meses con esto.
Necesitaría me hecharan una mano. Gracias

// Código//


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
int rainPin1 = A0;
int base1 = 5;
int rainPin2 = A1;
int base2 = 4;
int rainPin3 = A2;
int base3 = 3;
int rainPin4 = A3;
int base4 = 2;
int rainPin5 = A4;
int base5 = 6;
int rainPin6 = A5;
int base6 = 7;
int thresholdValue = 500;
 
 
 
void setup(){
  Serial.begin(9600);
  pinMode(rainPin1, INPUT);
  pinMode(base1, OUTPUT);
  pinMode(rainPin2, INPUT);
  pinMode(base2, OUTPUT);
  pinMode(rainPin3, INPUT);
  pinMode(base3, OUTPUT);
  pinMode(rainPin4, INPUT);
  pinMode(base4, OUTPUT);
  pinMode(rainPin5, INPUT);
  pinMode(base5, OUTPUT);
  pinMode(rainPin6, INPUT);
  pinMode(base6, OUTPUT);
  digitalWrite(base1, LOW);
  digitalWrite(base2, LOW);
  digitalWrite(base3, LOW);
  digitalWrite(base4, LOW);
  digitalWrite(base5, LOW);
  digitalWrite(base6, LOW);
 
}
 
void loop() {
  int sensor1Value = analogRead(rainPin1);
  Serial.print(sensor1Value);
  if(sensor1Value < thresholdValue){
    Serial.println(" Plant 1 - No watering");
    digitalWrite(base1, HIGH);
  }
  else {
    Serial.println(" Plant 1 - Watering");
    digitalWrite(base1, LOW);
 
  }
 
delay(500);
  int sensor2Value = analogRead(rainPin2);
  Serial.print(sensor2Value);
  if(sensor2Value < thresholdValue){
    Serial.println(" Plant 2 - No watering");
    digitalWrite(base2, HIGH);
  }
  else {
    Serial.println(" Plant 2 - Watering");
    digitalWrite(base2, LOW);
  }
 
 delay(500);
  int sensor3Value = analogRead(rainPin3);
  Serial.print(sensor3Value);
  if(sensor3Value < thresholdValue){
    Serial.println(" Plant 3 - No watering");
    digitalWrite(base3, HIGH);
  }
  else {
    Serial.println(" Plant 3 - Watering");
    digitalWrite(base3, LOW);
  }
 
delay(500);
  int sensor4Value = analogRead(rainPin4);
  Serial.print(sensor4Value);
  if(sensor4Value < thresholdValue){
    Serial.println(" Plant 4 - No watering");
    digitalWrite(base4, HIGH);
  }
  else {
    Serial.println(" Plant 2 - Watering");
    digitalWrite(base4, LOW);
  }
 
delay(500);
int sensor5Value = analogRead(rainPin5);
  Serial.print(sensor5Value);
  if(sensor5Value < thresholdValue){
    Serial.println(" Plant 5 - No watering");
    digitalWrite(base5, HIGH);
  }
  else {
    Serial.println(" Plant 5 - Watering");
    digitalWrite(base5, LOW);
  }
 
  delay(500);
  int sensor6Value = analogRead(rainPin6);
  Serial.print(sensor6Value);
  if(sensor6Value < thresholdValue){
    Serial.println(" Plant 6 - No watering");
    digitalWrite(base6, HIGH);
  }
  else {
    Serial.println(" Plant 6 - Watering");
    digitalWrite(base6, LOW);
  }
 delay(500);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de RAUL
Val: 6
Ha disminuido su posición en 3 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Sistema riego

Publicado por RAUL (2 intervenciones) el 21/01/2020 17:09:08
Hola Vicente, este sistema de control de bombas es para algún proyecto de riego hidropónico?

Bueno no soy un experto en Arduino pero si he programado en otros lenguajes y considero que finalizada tu rutina
de riego de la bomba 6 deberías ampliar el tiempo de espera para iniciar la siguiente actividad.

si nos fijamos el último bloque indica un código: delay(500) = tiempo de espera realizando una actividad interna mientras se continúa con la siguiente actividad:

Habida cuenta que el número de la referencia indica los milisegundos antes de culminar ese tiempo de espera.
y sabiendo que 1 segundo=son 1000 milisegundos

entonces si te interesa que descanse 1 minuto (60 Segundos / 60000 milisegundos).
entonces tu último delay para que funcione debería ser :
delay(60000)
Espero que te sirva?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar