Se supone, o mejor dicho la idea inicial es que mis tres electrovalvulas desde las 7:00 hasta las 18:00 en intervalos de una hora se enciendan 10 minutos, estoy bastante verde en esto de arduino y vainas, pero bueno, cosas que se deben hacer. Tengo este codigo:
#include <TimeLib.h>
#define NUMERO_DE_ELECTROVALVULAS 3 // Número de electroválvulas
#define PINES_ELECTROVALVULAS {8, 9, 10} // Pines de control de las electroválvulas
#define TIEMPO_DE_ENCENDIDO 600000 // Tiempo de encendido en milisegundos (10 minutos)
#define TIEMPO_DE_APAGADO 3600000 // Tiempo de apagado en milisegundos (1 hora)
void setup() {
// Inicializa los pines de control de las electroválvulas como salidas
for (int i = 0; i < NUMERO_DE_ELECTROVALVULAS; i++) {
pinMode(PINES_ELECTROVALVULAS[i], OUTPUT);
}
// Inicializa la comunicación serial
Serial.begin(9600);
// Inicializa el reloj
setTime(7, 0, 0, 1, 1, 2022); // Establece la hora inicial del reloj a las 7:00 AM (opcional)
}
void loop() {
int horaActual = hour();
int minutoActual = minute();
// Verifica si es hora de encender alguna electroválvula
for (int i = 0; i < NUMERO_DE_ELECTROVALVULAS; i++) {
int horaInicio = 7 + i; // Hora de inicio para cada electroválvula
int horaFin = 18 + i; // Hora de finalización para cada electroválvula
if (horaActual >= horaInicio && horaActual < horaFin) {
// Calcula el tiempo transcurrido en segundos desde el inicio de la hora de inicio
int segundosTranscurridos = (horaActual - horaInicio) * 3600 + minutoActual * 60;
// Verifica si la electroválvula debe estar encendida o apagada en este momento
if (segundosTranscurridos % (TIEMPO_DE_ENCENDIDO + TIEMPO_DE_APAGADO) < TIEMPO_DE_ENCENDIDO) {
digitalWrite(PINES_ELECTROVALVULAS[i], HIGH); // Enciende la electroválvula
Serial.print("Electroválvula ");
Serial.print(i + 1);
Serial.println(" encendida.");
} else {
digitalWrite(PINES_ELECTROVALVULAS[i], LOW); // Apaga la electroválvula
Serial.print("Electroválvula ");
Serial.print(i + 1);
Serial.println(" apagada.");
}
}
}
// Espera un segundo antes de volver a comprobar
delay(1000); // 1 segundo
}
y me sale el error de "Compilation error: expected ')' before '[' token" en las lineas 11, 36 y 41. Y sinceramente no lo entiendo.
alguien me puede explicar por que pasa?