Go Down

Topic: Control de luces de Acuario (Read 4877 times) previous topic - next topic

Perdido

oks muchas gracias!

Los resultados son estos:

Solo con el ejemplo del texto alterna estos tres valores:874964, 874960, 874968

Solo con el segundero quitando el texto ejemplo testText va dando valores desde 46108 46112, 46128,46124, creo que llega a 46136... veo que se salta un segundo de vez en cuando

Si pongo los segundos y el ejemplo de texto se mueve en estos rangos: 921068, 921080, 92088, 92092

surbyte

Coloca los segundos y quita el testText que no tiene sentido.

Perdido

asi dices?

Code: [Select]
#include <Wire.h>
#include "RTClib.h"
#include <UTFTGLUE.h>             //tft
UTFTGLUE tft(0,A2,A1,A3,A4,A0);   //tft

RTC_DS3231 rtc; // Declaramos un RTC DS3231

unsigned long S ;

//Declaramos variables monitor TFT---------------------------------------
int Segundo;
char Vsegundo[2];

#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define GRAY    0x8410

uint16_t version = MCUFRIEND_KBV_H_;

DateTime HoraFecha;

void setup () {
  Serial.begin(9600);

   // Comprobamos si tenemos el RTC conectado
  if (! rtc.begin()) {
   Serial.println("No hay un módulo RTC");
   while (1);
  }

  //definimos propiedades monitor tft------------------------------------------------
    uint16_t ID = tft.readID(); //
    tft.begin(ID);
    tft.setRotation(1); //pantalla horizontal
    tft.fillScreen(0x0000); //Rellenamos la pantalla de color negro
}

void loop () {
  DateTime now = rtc.now();
  HoraFecha = rtc.now(); //obtenemos la hora y fecha actual
 
  if (millis() - S> 1000UL) {   //mostrará la hora cada 1 segundo o 1000 mseg
    unsigned long start = micros();
    queSegundo();                 
      S = millis();
      Serial.println(micros() - start);
  }
}

unsigned long queSegundo() {
  Segundo = HoraFecha.second();
  sprintf(Vsegundo,"%02d", Segundo);
  tft.setCursor(155, 60);
  tft.setTextColor(WHITE, BLACK);
  tft.setTextSize(4);
  tft.println(Vsegundo);
}


De esta forma es lo que comentaba, salta un segundo cada 10 o 20, las lecturas que da son de 46108 a 46136

surbyte

Ok. Vamos a organizarnos.

Olvidemos esto por ahora.

Que deberías presentar en el TFT?

la hora, fecha, qué mas?

Necesito que trabajemos en algo mas concreto y definitivo porque será febrero y seguiremos con esto a este ritmo.

Y como te dije.. los temas cuando se alargan dejan de interesarme.
Asi que hay que concretar.

Haz una lista de lo que tienes que presentar en la pantalla y con que tamaño y color.

Entonces veremos cómo hacerlo TODO dentro de los márgenes disponibles.

Perdido

OKs, la idea es que en la pantalla muestre la hora, minuto, segundo, día, mes, año y día de la semana.

Ademas debe mostrar las temperaturas de los 7 sensores... bueno realmente lo hace, pero con los problemas que ya comente

Ahí pongo el código completo que tengo por el momento


Al final si que se esta alargando la cosa!, muchas gracias por la ayuda y paciencia

Perdido

Por Fin!!! hoy he tenido la tarde inspirada y ya he conseguido que funcione todo!!!  ;D

Una pregunta.... hay alguna forma de hacer que guarde variables en la memoria?

Ahora mismo si hay un corte de luz, las luces se vuelven un poco locas hasta que van pasando las horas y se van asignando los valores como corresponde.

Bueno ahí pongo el código completo y funcionado!

surbyte

Lo guardas en la EEPROM pero debes asegurarte de usarlo una vez no dentro de un loop porque la cantidad de usos de la EEPROM esta limitada. Cuantas veces? 100.000. Son muchas? parecen muchas pero si un loop x error graba sin control las 100.000 se agotarán enseguida.

Tortugaz

Hola!me alegro de que finalmente lo hayais conseguido. yo tengo una duda al respecto para un proyecto parecido.
que modelo de mosfet utilizariais para el mismo proyecto pero alimentado con una fuente de 12v y 8.5A ?

muchas gracias de antemano.

surbyte

Puedes usar un MOSFET IRL520 en adelante.
El IRL520 permite hasta 9.2A a 25 Celsius
El IRL530 permite hasta 15 A que me parece el mas apropiado.

@Tortugaz, para la próxima recuerda hacer tus preguntas en tu propio hilo (Sección Hardware) sin desviar la idea de ESTE hilo.
Como no lo haces del todo te he respondido pero acá termina la consulta.
Si te interesa seguir, crea un un hilo propio.

Tortugaz

#84
Jan 20, 2019, 07:19 pm Last Edit: Jan 20, 2019, 08:25 pm by Tortugaz Reason: incumplir normas foro
Mil gracias @surbyte

Perdido

#85
Jan 29, 2019, 08:08 pm Last Edit: Jan 29, 2019, 08:21 pm by Perdido
Aunque ya parecía que estaba todo funcionando he ido mejorando el programa, pero me quedaba un cabo suelto, los ventiladores:

Unas veces se encendían los 4, otras 3 y otras 2... pensaba que era por que habría alguna soldadura mal puesta, las repase.... y seguían fallando igual.

Así que dándole vueltas empece a tomar lecturas del voltaje que llega a los ventiladores y me he dado cuenta que de la salida del transistor 2N2222 solo esta entregando por el emisor 3,9V como mucho, con lo que no es suficiente para poder moverlos

Se supone que esos transistores pueden trabajar con 12V no?, al final puse unos ventiladores de 12V.... pero vamos que no les llegan ni los 5V que deberían llegarles, he probado aponer el step donw a 7V y el transistor sigue dando 3,9V

Según el Datasheet entiendo que estos transistores deberían funcionar sin problemas... que puede estar pasando? puede ser por haber unido los GRN? (los he separado y creo que pasa igual)

Tendría que poner otros transistores que aguanten mas V?, cual iría mejor?

Ahí pongo el gráfico y el programa mejorado tal y como lo tengo en estos momentos:


Gefre

#86
Mar 11, 2019, 10:11 am Last Edit: Mar 11, 2019, 12:46 pm by Gefre
Wow, de no saber nada, sobre arduino, y sus diferentes aplicaciones mi interés de automatizar mi acuario subido mas.

Espero que logres detectar el fallo, ya sean los transistores 2n2222 u otra complicacion.

Felicidades por tu perseverancia en el proyecto, seguiré estudiando analizando cada línea del sketch para aprender. 

Perdido

#87
Mar 17, 2019, 02:51 pm Last Edit: Mar 17, 2019, 02:52 pm by Perdido
Gracias!

Si, resolví el problema, al final puse un TIP120, y modifique un poco las uniones de los GRN ya funciona perfecto el circuito. Adjunto el esquema definitivo. La pantalla la tengo funcionando desde enero y va perfecta por el momento.



También pongo el código con algunas mejoras que hice, aunque tengo pendiente revisar el tiempo exacto de los millies del contador del dimmer, hay un pequeño desfase que aun no he podido revisar.


surbyte


Go Up