Go Down

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

surbyte

Bueno pero la idea tal vez les sirva, te parece que es mas cómodo mas alla de los nombres que elegí.

surbyte

Si @Daniel_Arg estoy de acuerdo que el uso de módulo o como tu lo haces es cuestión de gustos. Como dije reiteradamente el código funciona y mi aporte era solamente intentar hacer mas fácil las cosas.
Creo que el uso de la estructura y .get/.put lo logra.
Habrá detalles, seguro.

Luego veo numerosas acciones repetidas que luego voy a intentar simplificar siempre y cuando sea para hacer mas liviano el código y mas entendible. Nada mas. Peroo será mañana.

surbyte

Ok. Ire ayudando por donde me dices.

car127

#33
Sep 06, 2018, 12:39 am Last Edit: Sep 19, 2018, 03:40 am by car127
CADUSA2 en prueba
Se limpia la eeprom se carga CADUSA2
pantalla inicio OK
pantalla información hora. fecha,temperaturas OK
menús: calefactor  valores por defecto aparecen, funciona rele al activar ON OK
          fecha y hora Ok
         control CO2 se agrega read_but(); en lineas 482, 513, 531, 548, 566, al faltar solo mostraba ON OFF y  no entrega información en pantalla de valores por defecto, al seleccionar ON o OFF aparece leyenda Hecho y sale del menú.
Al borrar un símbolo ! linea 476
if (!Co2Var.Status == 0)
aparece información por defecto  y se activa rele
en cada prueba se limpio eeprom

se adjunta archivo con agregado de lineas faltantes y en estado original linea 476 para análisis

surbyte

va esto como te dice Daniel
Code: [Select]
if (Co2Var.Status == 0)

o va solo esto

Code: [Select]
if (!Co2Var.Status)


si se me escapó disculpas

car127

ok , hago el cambio y pruebo todo

surbyte

Aunque @Daniel_Arg lo dejó muy claro siempre hay alguien que no sabe seguir los pasos.
Acá esta RTC_lib con la funcion get_temperature() incorporada.

Ya pude compilar todo el código sin errores.
Ahora veré de impliementarlo para poder seguir mas que nada las opciones de LCD.
Y luego ir colaborando.

car127

#37
Sep 06, 2018, 07:50 pm Last Edit: Sep 06, 2018, 08:49 pm by car127
Ya que estamos mostrado este era mi acuario de agua dulce de 170 cm de largo luego cambie al actual marino


   


Actual en proceso

 


sigo probando solo un relajo

car127

#38
Sep 06, 2018, 08:25 pm Last Edit: Sep 19, 2018, 03:41 am by car127
CADUSA2 en prueba
Se limpia la eeprom se carga CADUSA2
pantalla inicio OK
pantalla información hora. fecha,temperaturas OK
menús:
Reloj y fecha OK
calefactor  valores por defecto aparecen, rele se activa depues de 1 minutos OK
control CO2  entrega información en pantalla de valores por defecto, al seleccionar ON activa rele despues de 1 minuto.
se mantiene la configuracion puesta por usuario al resetear y desconectar energia
Prueva de sobre calentamiento a 72° mensaje  Alta temperatura en pantalla y se reestablece bajo los 50°
en cada prueba se limpio eeprom

Lo otro hay posibilidad de agregar este control de temperatura en la parte del void overheating(), que se accione con el termómetro del rtc como una acción antes que la temperatura llegue al sobre calentamiento y mantener una temperatura y si falla pasaría al modo sobre calentamiento.
la idea la saque de aca

https://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/

el codigo a modificar para usar el sensor de temperatura del rtc

Code: [Select]
#include <Wire.h>
#include <OneWire.h>                     //libreria temperatura
#include <DallasTemperature.h>
OneWire ourWire(12);           //  Se establece el pin D12  como bus OneWire
DallasTemperature sensors(&ourWire);  //Se declara una variable u objeto para nuestro sensor
int PinVent = 5;                         //puerto digital D11 dodne conectar el ventildor
int Temperatura;                     //variable calculo temperatura
int Restriccion_de_Temp;             //Variable para mapear la temperatura
int pwm;                              //Variable para generar pwm

void setup() {
sensors.begin();
pinMode(5,OUTPUT);
// Serial.begin(9600);
}

void loop() {
  
/////// Regulador Veloc Ventilador  ////////////
 sensors.requestTemperatures();
Temperatura = (sensors.getTempCByIndex(0));
     Restriccion_de_Temp = constrain(Temperatura, 35, 45);
  pwm = map(Restriccion_de_Temp, 35, 45, 0, 255);
  analogWrite(PinVent,pwm);
//  Serial.println(sensors.getTempCByIndex(0));
//  Serial.println (pwm);
 delay(1000);  
}


se adjunta archivo CADUSA2

car127

una idea  para la iluminación del display has probado con una resistencia de 10K donde esta el jumper del lcd atenúa arto  y es visible la información y no es molesto a la vista y  solo ver que se apague la pantalla cuando termine el periodo de luz y se encienda cuando comience el periodo.

se ve mejor en vivo que en la foto


     

surbyte

Bueno, debido a diferencias con Daniel_Arg que me exige resolver cosas... simplemente paso de colaborar. No trabajo de ese modo con nadie.

Intenté de buena voluntad colaborar y lo hice con EEPROM.put y get.

Suficiente.


Suerte a ambos.

car127

Prueba de ventilador activándose a los 50° y desactivando a los 45 ...........OK
prueba de atenuación iluminación y activación iluminación LCD .................OK
en lo personal use resistencia de 10k

car127

    10k ilumina justo para que se vea y como dices a gusto del lector y se probo con un valor  bajo y uno  alto de resistencia.
    Se ve muy genial, esa era la idea, al mover el encoder recobra la iluminación genial.

car127

#43
Sep 18, 2018, 03:50 am Last Edit: Sep 19, 2018, 03:39 am by car127
        Lo único diferente  indicador de dirección de menú ( > ) al cargar por primera vez, reiniciar o apagar y prender no aparece asta mover el encoder en la dirección de la flecha.
     Lo demás OK

Adjunto sketch

car127

OK , el cambio ( > ) funciona al cargar, reset y apagado y encendido

Go Up