Estoy intentando programar el siguiente codigo en arduino uno
El programa debería de comprobar el nivel de agua en el deposito de la bomba, si esta LOW, no debiera funcionar, estando en HIGH, debería empezar a funcionar la bomba durante 20 sg
Si el nivel de agua del deposito de distribución cambia a estado HIGH, tiene que para la Bomba y si los 20 segundos no llega a nivel HIGH , deberá seguir otros 20 sg hasta llegar a nivel HIGH .
Si durante el llenado del deposito de distribución el nivel de la bomba cambia a LOW, parara todo el proceso.
quisiera añadir un reloj tipo ds3231 pero no se como hacerlo para implantarlo en el codigo para poder activar el riego durante una 10 min al dia.
Saludos
El programa debería de comprobar el nivel de agua en el deposito de la bomba, si esta LOW, no debiera funcionar, estando en HIGH, debería empezar a funcionar la bomba durante 20 sg
Si el nivel de agua del deposito de distribución cambia a estado HIGH, tiene que para la Bomba y si los 20 segundos no llega a nivel HIGH , deberá seguir otros 20 sg hasta llegar a nivel HIGH .
Si durante el llenado del deposito de distribución el nivel de la bomba cambia a LOW, parara todo el proceso.
quisiera añadir un reloj tipo ds3231 pero no se como hacerlo para implantarlo en el codigo para poder activar el riego durante una 10 min al dia.
Código:
int levelPump=0
int levelWater=0
int nivelPump; // define variable nivel bomba
int nivelWater; // define variable nivel agua distribuido
int relayPin=2; // pin de salida activa relay
int nivelBomba=4; // conectare nivel bomba pin 4
int nivelAgua=7; // conectare nivel agua distribuidor pin 7
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT); // led nivel de agua alto
pinMode(relayPin,OUTPUT); // configuro pin 2 como salida relay
pinMode(nivelBomba,INPUT); // configuro pin 4 como entrada nivel bomba
pinMode(nivelAgua,INPUT); // configuro pin 7 como entrada nivel agua
}
void loop() {
if (digitalRead(4)==1){ // comprobamos si hay nivel bomba
levelPump=1;
digitalWrite(13,HIGH);} // encendemos un led que nos indica nivel agua alto
nivel();}
void nivel(){
if(levelPump==1){ // comprueba estado de nivel
Serial.println("nivel alto"); // muestra nivel y sige con riego
levelPump=1; }
else{
digitalWrite(4,LOW); // muestra nivel bajo y no continua
Serial.print("nivel bajo");}
}
void riego(){
if (digitalRead(7)==0){ /*comprueba el estado del nivel de
depositro distribuidor*/
levelWater=0; // la variable nivel distribuidor nivel bajo
digitalWrite(2,HIGH); // activa rele y comienza bomba
Serial.println("BOMBA ON");
delay(20000); // iniciamos bomba 20 sg
digitalWrite(2,LOW);
Serial.print("BOMBA OFF");
delay(20000); // esperamos 20 sg
riego(); } //volvemos a iniciar riego
else{digitalWrite(9,LOW);
levelWater=1; }} // se detecta nivel distribuidor alto se apaga riego
Saludos
Última edición por un moderador: