Hi friend, I want to automize my acquarium so I’m working on this project.
- Automatic check of the temperature
2)Automatic turn on and turn off illumination
3)Other sensors to read some parameters
But my real problem is the RTC. I can’t set the time and I don’t know how I can compare two times to turn on or turn off the illumination at a predeterminated hour.
Can you help me, please?
This is my writing:
#include <Wire.h>
#include <LiquidCrystal.h>LiquidCrystal lcd(12,11,10,4,3,2);
int rele_out1 = 5;
int rele_out2 = 6;
int pulsantepiu = 0;
int pulsantemeno = 1;
int pulsanteok = 7;
int pulsantenext = 8;
int tmax;
int temperatura;
int piu=0;
int meno=0;
int ok=0;
int next=0;
int posizione=0;
char* menu_principale[6] = {“Pagina iniziale”,“Temperatura max”,“Temperatura min”,“Orario on”,“Orario off”,“Imposta ora”};byte grado[8] = {
0b00010,
0b00101,
0b00010,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
};void setup(){
Serial.begin(57600);temperatura = analogRead(A3)*0.48828125; //Coversione temperatura rilevata dal sensore LM35
lcd.createChar(0, grado);
lcd.begin(16,2);
lcd.print( menu_principale[posizione] );
pinMode(rele_out1, OUTPUT);
pinMode(rele_out2, OUTPUT);
pinMode(pulsantepiu, INPUT);
pinMode(pulsantemeno, INPUT);
pinMode(pulsanteok, INPUT);
pinMode(pulsantenext, INPUT);
tmax=1;
}void loop(){
next=digitalRead(pulsantenext);
if(next == HIGH){
posizione = posizione ++;
if(posizione == 2)
piu = digitalRead(pulsantepiu);
meno = digitalRead(pulsantemeno);
ok = digitalRead(pulsanteok);
if (piu == HIGH){
tmax = tmax ++;
lcd.clear();
lcd.print(“Temperatura di”);
lcd.setCursor(0, 1);
lcd.print("soglia: ");
lcd.setCursor(10, 1);
lcd.print(tmax,DEC);
lcd.write((byte)0);
lcd.print(“C”);
delay(1000);
}
if (meno == HIGH){
tmax = tmax --;
lcd.clear();
lcd.print(“Temperatura di”);
lcd.setCursor(0, 1);
lcd.print("soglia: ");
lcd.setCursor(10, 1);
lcd.print(tmax,DEC);
lcd.write((byte)0);
lcd.print(“C”);
delay(1000);
}
} else if(posizione == 3){
} else if(posizione == 4){
} else if(posizione == 5){
} else if(posizione == 1){
} else if(posizione == 6){
}
if(temperatura > (tmax + 1)){
lcd.clear();
lcd.print(“Termostato spento!”);
digitalWrite(rele_out1, LOW);
} else{
digitalWrite(rele_out1, HIGH);
}
}