Go Down

Topic: Controlador de rega (Read 10104 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy