Arduino - Controlador Acuario

 
Vista:

Controlador Acuario

Publicado por Enrique (1 intervención) el 09/04/2019 03:21:41
Hola a todos tengo unas dudas estoy haciendo un controlador de las luces de mi acuario.-
Cuento con: Arduino UNO (clone),RTC DS1302,
Modulo de 1 rele (estaba en el kit inicial) ,mañana voy a comprar el de modulo de 4 rele para poder tener mas opciones.-
No me interesa por ahora mostrar los datos en display lcd al menos por ahora.-
Solo quiero automatizar el proceso de encendido y apagado de las luces a controlar
LUZBLANCA
LUZFULL
LUZLUNA
La idea es definir horas de encendido y apagado
luz blanca enciende 15.00 apaga 21.00
luz full enciende 15.00 apaga 19.00
luz luna enciende 15.00 apaga 23.00
Ahora hasta aquí lo que hice, pero copie la función para tomar la hora del rtc desde un ejemplo del rtc1307 pero tengo error .

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
// PROYECTO LUCES DE ACUARIO //
 
#include <DS1302.h>
#include <Time.h>
#include <TimeAlarms.h>
 
// Inicializacion del modulo
DS1302 rtc(2, 3, 5);
Time t;
 
// Definicion de Luces del Acuario 
int LUZBLANCA = 8;
int LUZFULL = 9;
int LUZLUNA = 10;
 
void setup() {
// Preparar la interfaz serial
Serial.begin(9600);
// Definiendo los pines de salida modulo relay
// recordamos que los modulos de reles se activan con un estado bajo
pinMode(LUZBLANCA, OUTPUT); // Pin 8 LUZBLANCA
digitalWrite(LUZBLANCA, HIGH);
pinMode(LUZFULL,OUTPUT); // Pin 9 LUZFULL 
digitalWrite(LUZFULL, HIGH);
pinMode(LUZLUNA,OUTPUT); // Pin 10 LUZLUNA
digitalWrite(LUZLUNA, HIGH);
 
// Cargar la hora actual desde el RTC e indicar que esto suceda de forma automática durante loop()
// Utilizamos el método RTC.get() de la libreria DS1307RTC. El RTC debe estar conectado como se
// indica en el texto y debe tener la fecha y hora correctas
setSyncProvider(RTC.get);
if (timeStatus() != timeSet)
Serial.println("Fallo de RTC");
else
Serial.println("Sincronizado con RTC");
 
// Evento Encender y apagar LUZBLANCA
Alarm.alarmRepeat(15, 0, 0, EventoEnciendeLuz); // Evento a las 15:00 diario (enciende LUZBLANCA)
Alarm.alarmRepeat(21, 0, 0, EventoApagaLuz); // Evento a las 7:05 diario (apaga LUZBLANCA)
 
// Evento Encender y apagar LUZFULL
Alarm.alarmRepeat(15, 0, 0, EventoEnciendeLuz); // Evento a las 15:00 diario (enciende LUZFULL)
Alarm.alarmRepeat(19, 0, 0, EventoApagaLuz); // Evento a las 7:05 diario (apaga LUZFULL)
 
// Evento Encender y apagar LUZLUNABLANCA
Alarm.alarmRepeat(15, 0, 0, EventoEnciendeLuz); // Evento a las 15:00 diario (enciende LUZBLANCA)
Alarm.alarmRepeat(21, 0, 0, EventoApagaLuz); // Evento a las 7:05 diario (apaga LUZBLANCA)
 
}
 
void loop() {
// Mostrar el reloj en el monitor serial
digitalClockDisplay();
 
// Esperar 1 segundo y procesar las Alarmas mientras tanto...
// El metodo Alarm.delay() procesa en el fondo las alarmas y llamara a las funciones indicadas
Alarm.delay(1000);
}
 
void EventoEnciendeLuz()
{
Serial.println("Encendiendo LUZBLANCA!!!");
digitalWrite(8, LOW);
}
 
/**
Funcion callback que desactiva el rele en el pin 8 (apaga LUZBLANCA)
*/
void EventoApagaLuz()
{
Serial.println("Apagando LUZBLANCA!!!");
digitalWrite(8, HIGH);
}
 
/**
Funciones para la impresion del reloj al monitor serial de arduino
*/
void digitalClockDisplay() {
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
 
void printDigits(int digits) {
Serial.print(":");
if (digits < 10)
Serial.print('0');
Serial.print(digits);
}

-----------------------

error mostrado
exit status 1
'RTC' was not declared in this scope


ya corregui a minusculas RTC y ahora el error es

ahora me da este error soy nuevo llevo horas en arduino jaja y estoy perdido error exit status 1
'class DS1302' has no member named 'get'
El tema es que estoy usando esa funcion que es de DS1307 no se cual es la funcion para extraer la hora del ds1302 y ademas si el resto del programa esta bien

gracias
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