Hola buenas tardes, tengo un sistema de riego con sensores de suelo capacitivos arduino y relés que manejan las microbombas, en total 6 canales con los relés configurados como ÑO ( normal open).
Mi código es simple pero después de muchos meses intentándolo no consigo que los reles corten a un tiempo que le programemos ejem. 10 seg.
Osea que solo riegue 10 seg. Descanse 15 seg. Y vuelva a la normalidad.
No tengo ni idea de programacion pero he conseguido que funcione aunque no como quisiera.
Soy mayor para esto (54) y nunca había tocado arduino
//Code//
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);
}
Muchas gracias.