Go Down

Topic: efecto dia y noche en acuario  (Read 2587 times) previous topic - next topic

surbyte

Vamos taper!! ánimo, hay cosas que son instintivamente simples y otras no tanto.

Ya te respondió @krnlpanic pero debieras observar que tienes un objeto fecha definido como

Code: [Select]
DateTime fecha = rtc.now();       

Y luego de ahi se desprenden fecha.hour() y fecha.minute()

Si lo miras ahora podrás observar como tiene cierta lógica.



taper

#31
Oct 17, 2020, 09:12 pm Last Edit: Oct 17, 2020, 09:54 pm by taper
con este cambio si se deja cargar el codigo voy a probar  a ver 

taper

#32
Oct 20, 2020, 07:41 pm Last Edit: Oct 21, 2020, 04:35 pm by taper
hola , e estado realizando pruebas con este trozo de código, y veo  que  y funciona, pero cuando sube la  intensidad cada 1.4 minutos , se apaga unos 5 segundos el led lo e calculado con un cronometro  , pero entre el apagado y el momento que esta encendido si que esta 1.4 minutos.
Esto es en amanecer , ahora tendré que hacer lo mismo con  atardecer, este paso deberá ser   al contrario  o sea menos menos (--) ? y despues con el efecto noche?



gracias
Code: [Select]
#define  STEP_AMANECER 1.4*60*1000
#define  STEP_ATARDECER 1.4*60*1000
#define  STEP_NOCHE 1.4*60*1000



surbyte

Si se apaga es porque hay algo mal programado. Dejame verlo.


NOTA:
Recuerda que aunque sea una sola línea de código siempre debe ir con etiquetas para códigos.
Edita por favor.

taper

#34
Nov 15, 2020, 11:26 am Last Edit: Nov 17, 2020, 07:11 pm by taper
lo siento no hay forma no lo saco :smiley-mad: :smiley-mad: :smiley-mad:, no puedo abusar mas de ustedes, voy  a utilizar la primera versión  un triac para cada tira  de leds  programados para que enciendan a diferete horario y mas o menos hacen la función de efecto día y noche ,  gracias a todos los que me habéis ayudado

surbyte

Este es el problema?

Quote
ola , e estado realizando pruebas con este trozo de código, y veo  que  y funciona, pero cuando sube la  intensidad cada 1.4 minutos , se apaga unos 5 segundos el led lo e calculado con un cronometro  , pero entre el apagado y el momento que esta encendido si que esta 1.4 minutos.

taper

no, 
el problema es el no saber,
  

surbyte

#37
Nov 24, 2020, 02:52 pm Last Edit: Nov 24, 2020, 09:48 pm by surbyte
Bueno. Tranquilo @taper.
Mira te diré algo, hay gente que no da ganas de ayudar y otras que hacen todo el esfuerzo. Tal vez arranquen mal (por su desconocimiento) y no sepan expresarse. Recuerda que los que te responden son siempre gente que tiene alguna experiencia y no todos somos tolerantes (me incluyo, yo tengo mis días).
Asi que no saber no debe avergonzarte. Vergúenza debe darle a alquel que viene y pide que le hagan el trabajo.

Te propongo lo mismo que le he dicho a muchos.
Presiona RESET sin olvidar todo lo que ya tienes y recomencemos.
Dime donde has quedado estancado y trabajamos desde ahi paso a paso.
Te parece?

taper


taper


hola e estado haciendo mas pruebas :  e puesto  en programación a 6 horas  este trozo de código y continua apagando-se el led  a cada momento que  hace el cambio de subir  la intensidad, pero ahora esta 1 minuto  encendido y 5 segundos a pagado  + o - , calculado con el cronometro del tlf , antes con una programación  de  unos 5 minutos  estaba encendido 1.4 minutos y 5 segundos apagado, pero me e dado cuenta que en la misma placa del  TRIAC lleva un diodo que indica que esta encendido , pues cuando se apaga el led programado  el led de la placa del triac no se apaga continua siempre encendido , pero cuando empieza la programacion si que esta casi apagado  osea luce muy tenue como la programacion poco a poco va subiendo de intensidad

taper

este trozo de código que significa? para que sirve? que función realiza'
Code: [Select]

void amanecer() {
if (millis() - tbrillo > STEP_AMANECER) {
if (BRILLO ++ > 255) {
   BRILLO = 255;
}
analogWrite(TRIAC1, BRILLO);        // PWM en pin 3 con valor de BRILLO
tbrillo = millis();
}
analogWrite(TRIAC2, 0);       // activa modulo de triac con nivel alto



surbyte

Esa porción de código o procedimiento lo que hace es esto.

usa una variable llamada tbrillo que es del tipo unsigned long.
Dicha variable luego de activar el TRIAC1 con el nivel de brillo corresondiente
Code: [Select]
analogWrite(TRIAC1, BRILLO);
se actualiza con el valor actual de millis() para esperar al próximo momento de cambiar por un nuevo nivel de brillo. El famoso step.
Ademas se asegura que TRIAC2 este apagado.

Si el BRILLo supera 255 lo pone en ese valor.

Nada mas.
Todo eso ocurre cuando es llamado amanecer() y si se cumple la condición
Code: [Select]
if (millis() - tbrillo > STEP_AMANECER) {
es decir cada STEP_AMANECER milisegundos.

taper

estoy en ello , a demas me e apuntado a un pequeño cursillo..

Go Up