Go Down

Topic: Controlador de rega (Read 8512 times) previous topic - next topic

Fidel

Eu reparei, ou acho que reparei, vc ta falando nisso:
Code: [Select]
char meses[12][10]= {
                     {'J','a','n', 'e', 'i', 'r', 'o', '\0'},
                     {'F', 'e', 'v', 'e', 'r', 'e', 'i', 'r', 'o','\0'},
                     {'M', 'a', 'r', 'c', 'o', '\0'},
                     {'A', 'b', 'r' ,'i', 'l', '\0'},
                     {'M', 'a', 'i' ,'o', '\0'},
                     {'J', 'u', 'n' ,'h', 'o', '\0'},
                     {'J', 'u', 'l' ,'h', 'o', '\0'},
                     {'A','g','o', 's', 't', 'o', '\0'},
                     {'S','e','t', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'O', 'u', 't', 'u', 'b', 'r', 'o', '\0'},
                     {'N', 'o', 'v', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'D', 'e', 'z', 'e', 'm', 'b', 'r', 'o', '\0'},
                     
                     

Eu fiz isso direitinho como vc tinha escrito la.

Obrigado

bubulindo


Eu reparei, ou acho que reparei, vc ta falando nisso:
Code: [Select]
char meses[12][10]= {
                     {'J','a','n', 'e', 'i', 'r', 'o', '\0'},
                     {'F', 'e', 'v', 'e', 'r', 'e', 'i', 'r', 'o','\0'},
                     {'M', 'a', 'r', 'c', 'o', '\0'},
                     {'A', 'b', 'r' ,'i', 'l', '\0'},
                     {'M', 'a', 'i' ,'o', '\0'},
                     {'J', 'u', 'n' ,'h', 'o', '\0'},
                     {'J', 'u', 'l' ,'h', 'o', '\0'},
                     {'A','g','o', 's', 't', 'o', '\0'},
                     {'S','e','t', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'O', 'u', 't', 'u', 'b', 'r', 'o', '\0'},
                     {'N', 'o', 'v', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'D', 'e', 'z', 'e', 'm', 'b', 'r', 'o', '\0'},
                     
                     

Eu fiz isso direitinho como vc tinha escrito la.

Obrigado



Estava a falar disto:

Code: [Select]

 
/* //ADICIONADO PARA EVITAR IMPRIMIR O MES DUAS VEZES.
  switch(now.month()){
    case 0:Serial.print(" Janeiro"); break;     
    case 1:Serial.print(" Fevereiro"); break;
    case 2:Serial.print(" Marco"); break;
    case 3:Serial.print(" Abril"); break;
    case 4:Serial.print(" Maio"); break;
    case 5:Serial.print(" Junho"); break;
    case 6:Serial.print(" Julho"); break;
    case 7:Serial.print(" Agosto"); break;
    case 8:Serial.print(" Setembro"); break;
    case 9:Serial.print(" Outubro"); break;
    case 10:Serial.print(" Novembro"); break;
    case 11:Serial.print(" Dezembro"); break;
    default:Serial.print(" Oufevulhosto");
  }

OU//
*/ //FIM DE COMENTARIO
Serial.print(meses[now.month()]);


A última versão que deixei já tinha isto lá.
This... is a hobby.

Fidel

Mas era para deixar assim, sem fazer efeito??
com os "/*" ?

bubulindo

Sim... isso corrige o problema que tens, logo é para apagar o bocado de código que está comentado. :P
This... is a hobby.

Fidel

Nao da cara :D
Fica assim:
Code: [Select]

Sao:    11:18:31   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:32   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:33   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:34   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:35   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:36   DiaDeSaoNunca-feira dia 8 de Maio de 2012

Como se nao chega-se estar o mes errado, agora ate o dia.... heheheheheh
ta complicado isso.

bubulindo


Nao da cara :D
Fica assim:
Code: [Select]

Sao:    11:18:31   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:32   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:33   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:34   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:35   DiaDeSaoNunca-feira dia 8 de Maio de 2012
Sao:    11:18:36   DiaDeSaoNunca-feira dia 8 de Maio de 2012

Como se nao chega-se estar o mes errado, agora ate o dia.... heheheheheh
ta complicado isso.


Coloca o código que estás a usar aqui para resolver isso.
This... is a hobby.

Fidel

Ta assim:
Code: [Select]

#include <Wire.h>
#include "RTClib.h"

//A[3][4] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };

char meses[12][10]= {
                     {'J','a','n', 'e', 'i', 'r', 'o', '\0'},
                     {'F', 'e', 'v', 'e', 'r', 'e', 'i', 'r', 'o','\0'},
                     {'M', 'a', 'r', 'c', 'o', '\0'},
                     {'A', 'b', 'r' ,'i', 'l', '\0'},
                     {'M', 'a', 'i' ,'o', '\0'},
                     {'J', 'u', 'n' ,'h', 'o', '\0'},
                     {'J', 'u', 'l' ,'h', 'o', '\0'},
                     {'A','g','o', 's', 't', 'o', '\0'},
                     {'S','e','t', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'O', 'u', 't', 'u', 'b', 'r', 'o', '\0'},
                     {'N', 'o', 'v', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'D', 'e', 'z', 'e', 'm', 'b', 'r', 'o', '\0'},
                     
                     
//Faltam os restantes meses, mas é só completar da mesma forma que eu escrevi em cima...
};


RTC_DS1307 RTC;

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

  if (! RTC.isrunning()) {
    Serial.println("byFidel");
    RTC.adjust(DateTime(__DATE__, __TIME__));

  }

}

void loop () {
    DateTime now = RTC.now();
//imprime...
  Serial.print("Sao:    ");
  Serial.print(now.hour(),DEC);
  Serial.print(":"); 
  Serial.print(now.minute(),DEC);
  Serial.print(":");
  Serial.print(now.second(),DEC);

  switch(now.dayOfWeek()){
    case 7:Serial.print("   Domingo"); break;   
    case 1:Serial.print("   Segunda-feira"); break;
    case 2:Serial.print("   Ter?a-feira"); break;
    case 3:Serial.print("   Quarta-feira"); break;
    case 4:Serial.print("   Quinta-feira"); break;
    case 5:Serial.print("   Sexta-feira"); break;
    case 6:Serial.print("   Sabado"); break;
    default:Serial.print("   DiaDeSaoNunca-feira");
  }
  Serial.print(" dia ");
  Serial.print(now.day());
  Serial.print(" de");
   
/* //ADICIONADO
  switch(now.month())
  {
    case 1:Serial.print(" Janeiro"); break;     
    case 2:Serial.print(" Fevereiro"); break;
    case 3:Serial.print(" Marco"); break;
    case 4:Serial.print(" Abril"); break;
    case 5:Serial.print(" Maio"); break;
    case 6:Serial.print(" Junho"); break;
    case 7:Serial.print(" Julho"); break;
    case 8:Serial.print(" Agosto"); break;
    case 9:Serial.print(" Setembro"); break;
    case 10:Serial.print(" Outubro"); break;
    case 11:Serial.print(" Novembro"); break;
    case 12:Serial.print(" Dezembro"); break;
    default:Serial.print(" Oufevulhosto");
  }

OU//
*/ //FIM DE COMENTARIO

Serial.print(meses[now.month()]);

  Serial.print(" de ");
  Serial.println(now.year(),DEC); //Aqui és capaz de ter de adicionar 2000 ao ano que o microcontrolador devolve.     

   
    delay(1000); 
}


bubulindo

O relógio por acaso já funcionou? Isto é, já viste os segundos e minutos a mexer?
This... is a hobby.

Fidel

Sim, la no post anterior vê-se os segundos a andar.

bubulindo

Coloca esse código anterior a rodar e vê se funciona... Nada como tirar a limpo para ver se o hardware está a funcionar.
This... is a hobby.

Fidel

Bons dias,
Nada, ate tirei a pilha do RTC para fazer um reset e nada, meti todos os codigos e nada.

Abraço

bubulindo

Então isso é sinal que o código não é o problema...
This... is a hobby.

Fidel

Entao o que achas que pode ser??

Fidel

Desculpa bubulindo, mas so agora percebi que nao percebi bem o que querias dizer :D
Eu meti o codigo anterior o que nao dava as horas, ficava sempre a 0. Mas so aparecia um mes.
Mas acho que ja descobri o problema, veja isso e me diga se vou ter problemas com isso:
Code: [Select]
char meses[13][10]= {
                    {'D','e','f', 'a', 'u', 'l', 't', '\0'},
                    {'J','a','n', 'e', 'i', 'r', 'o', '\0'},
                    {'F', 'e', 'v', 'e', 'r', 'e', 'i', 'r', 'o','\0'},
                    {'M', 'a', 'r', 'c', 'o', '\0'},
                    {'A', 'b', 'r' ,'i', 'l', '\0'},
                    {'M', 'a', 'i' ,'o', '\0'},
                    {'J', 'u', 'n' ,'h', 'o', '\0'},
                    {'J', 'u', 'l' ,'h', 'o', '\0'},
                    {'A','g','o', 's', 't', 'o', '\0'},
                    {'S','e','t', 'e', 'm', 'b', 'r', 'o', '\0'},
                    {'O', 'u', 't', 'u', 'b', 'r', 'o', '\0'},
                    {'N', 'o', 'v', 'e', 'm', 'b', 'r', 'o', '\0'},
                    {'D', 'e', 'z', 'e', 'm', 'b', 'r', 'o', '\0'},


Acho que faltava o default para o mes "0", tou errado??

bubulindo


Desculpa bubulindo, mas so agora percebi que nao percebi bem o que querias dizer :D
Eu meti o codigo anterior o que nao dava as horas, ficava sempre a 0. Mas so aparecia um mes.
Mas acho que ja descobri o problema, veja isso e me diga se vou ter problemas com isso:
Code: [Select]
char meses[13][10]= {
                     {'D','e','f', 'a', 'u', 'l', 't', '\0'},
                     {'J','a','n', 'e', 'i', 'r', 'o', '\0'},
                     {'F', 'e', 'v', 'e', 'r', 'e', 'i', 'r', 'o','\0'},
                     {'M', 'a', 'r', 'c', 'o', '\0'},
                     {'A', 'b', 'r' ,'i', 'l', '\0'},
                     {'M', 'a', 'i' ,'o', '\0'},
                     {'J', 'u', 'n' ,'h', 'o', '\0'},
                     {'J', 'u', 'l' ,'h', 'o', '\0'},
                     {'A','g','o', 's', 't', 'o', '\0'},
                     {'S','e','t', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'O', 'u', 't', 'u', 'b', 'r', 'o', '\0'},
                     {'N', 'o', 'v', 'e', 'm', 'b', 'r', 'o', '\0'},
                     {'D', 'e', 'z', 'e', 'm', 'b', 'r', 'o', '\0'},


Acho que faltava o default para o mes "0", tou errado??


Facepalm... :\ LOL

Sim, mas uma maneira mais elegante de resolver isto será apagares o mês default e meteres a matriz com 12 elementos de volta e nesta instrução:
Code: [Select]
Serial.print(meses[now.month()]);

Colocares isto:

Code: [Select]
Serial.print(meses[now.month()-1]);
This... is a hobby.

Go Up