Go Down

Topic: Diseño Controlador Acuario  (Read 4374 times) previous topic - next topic

car127

Hola
    el calefactor tiene que estar siempre encendido y trabajar así, si lo seteo a 25 grados se mantiene si sube se apaga si baja se enciende puede haber una variación de un grado, no entiendo porque en el dia una temperatura, horas que esta encendido , noche otra temperatura, la idea es tener una temperatura pareja y que no por un cambio de temperatura los peces se enfermen


Calefactor algo raro pasa

https://youtu.be/-n8DGmYBOMk

car127

Falta algo
Code: [Select]


CADUSA1:107: error: 'TempHoraInicio' was not declared in this scope
CADUSA1:108: error: 'TempHoraFin' was not declared in this scope




car127

#17
Aug 28, 2018, 08:45 pm Last Edit: Sep 19, 2018, 03:43 am by car127
No sigue igual y al quitar la energía no guarda lo configurado
adjunto archivo

car127

#18
Aug 29, 2018, 05:12 am Last Edit: Aug 31, 2018, 04:27 am by surbyte Reason: Agregado de etiquetas de código
linea 408,425,436,447,458 faltaba

 
Code: [Select]
read_but();  // Lee si opromimos el botón del encoder y enc_but pasa a valor 1.



Se mantiene lo observado primera configuración caracteres raros luego de 2 a 3 intentos se normaliza información Hora

Guarda configuración en Calefactor y CO2 al resetear y cortar energía

Realizadas las pruebas con código que adjuntaste

car127

#19
Aug 29, 2018, 07:46 pm Last Edit: Aug 31, 2018, 04:27 am by surbyte
Prueba de calefactor con rele

  temperatura 18° actual
 se bajó hasta 9.9° sin actividad
 aumento de temperatura hasta 60° sin actividad.

Configuración en el menú Calefactor
ON
Dia     : 25°
Hora   : 10:00 a 16:00
Noche : 18°

Hora toma de muestra 14:37

se probó con skech básico relé funcionando ok

car127

 Esta es la configuración para prueba donde el calefactor en este horario estará a 25° y el relé no se activa



esta es la pantalla principal con la temperatura actual







car127

e realizado la prueba y al conectar la señal del rele a negativo se activa, en ningun momento se activo ni con 9° ni con 60° que llego en un momento

car127

es lo mismo que tengo, la única forma que se activa el rele es si no dejo activa esta linea digitalWrite en el void setup pero no se desactiva el calefactor al pasar de los 26 o 35 o 65°

Code: [Select]
void setup() {
   pinMode(SFetAzul, OUTPUT);
   pinMode(SFetRojo, OUTPUT);
   pinMode(SFetBlanco, OUTPUT);
   pinMode(Relay1, OUTPUT);
 //  digitalWrite(Relay1, HIGH); // Subimos el pin a HIGH porque el relay se dispara con LOW
   pinMode(Relay2, OUTPUT);
 //  digitalWrite(Relay2, HIGH); // Subimos el pin a HIGH porque el relay se dispara con LOW
 




car127

OK,
     Calefactor  se activa y corta a la temperatura programada y CO2 enciende a la hora programada,  corta ala hora programada

Pruebas con ultimo codigo

car127

Pruebas memoria:
se carga programa para blanquear la memoria luego se carga archivo CADUSA y se chequean valores guardados en calefactor por defecto correspondiendo a estos dia 24° hora 09:00 a 21:40 noche 20°
en el caso del CO2 datos aparecen como en la imagen no siendo legibles y no activando rele


surbyte

No es mas fácil usar EEPROM.get y EEPROM.put y establecer una estructura donde pongan todos los parámetros para leerlos o grabarlos?

Este método funciona pero es muy complejo, teniendo una opción como la indicada.

Asi con un comando graban todo y con otro leen todo.




car127

 se carga programa para blanquear la memoria luego se carga archivo CADUSA y se chequean valores
 en calefactor valores por defecto correspondiendo a estos dia 24° hora 09:00 a 21:40 noche 20°
en el caso del CO2 valores  por defecto hora 09:00 a 21:40.
 en ambos casos se visualiza correctamente al resetear y cortar la energía
 al modificar valor CO2 o Calefactor estos se guardan sin perderse
 Todo OK

surbyte

que son las posiciones

termostato[1] y termostato[2]?

El resto lo tengo casi convertido.

surbyte

A bien, me faltaban estos dos

Quote
termostato[1]; para almacenar un valor entero de temperatura afectado por el horario, por default 24°
termostato[2]; para almacenar un valor entero de temperatura para el resto del día, por default 20°
ya los agrego y les doy la variante para que la evalúen.

surbyte

Bueno esta es la versión usando EEPROM.get y EEPROM.put

Deben verificar que se comporte correctamente porque yo no lo he hecho por no disponer de todas las librerías.
He hecho algunas simplificaciones pero hay mucho mas para simplificar en este código.

Muchas repeticiones de códigos que pueden compactarse.

Go Up