Advertisement
RuiViana

Placa_Solar

Aug 9th, 2017
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 31.01 KB | None | 0 0
  1. /*  http://pastebin.com/umdfpmeg
  2.  
  3.    Nome do Projeto:  Placas Solares
  4.    Nome do Aquivo:   PlacaSolar04.ino
  5.    link:
  6.    Dependencias:     LiquidCrystal.h
  7.              AccelStepper.h
  8.              Wire.h
  9.  
  10.    MCU:              ATmega
  11.    Board:            Arduino Uno/Mega/Mini
  12.    Compilador        N/A
  13.    IDE:              Arduino IDE 1.6.6
  14.    Hardware:         Arduino UNO/MEGA/Mini
  15.    Escrito por:      Rui Viana
  16.    Modificado por:   N/A
  17.    Data:             03/03/2016
  18.    Uso:              Didático
  19.    Desenhos          N/A
  20.    Copyright @       N/A
  21.    
  22.    Este programa é software livre;
  23.    e é distribuído na esperança que possa ser útil, mas SEM QUALQUER GARANTIA;
  24.    mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM.
  25.  
  26.    REVISÕES
  27.  
  28.     01/02/2016 Versão 01 PlacaSolar01
  29.     13/02/2016 Funciona ok sem calculos de deslocamento
  30.     15/02/2016 Versão 02 PlacaSolar02
  31.     16/02/2016 Funciona ok mas erro calculo de deslocamento de reinicio noturno
  32.     20/02/2016 Versão 03 PlacaSolar03
  33.     25/02/2016 Varias melhorias
  34.     28/02/2016 Versão 04 PlacaSolar03
  35.     03/03/2016 Inclusão de step motor
  36.  
  37.   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  38.    Descrição:  
  39.      
  40.      Programa para manter placas solares sempre perpendicular à luz do sol em qualquer local, dia e hora.
  41.      
  42.  *   Funcionamento do code:
  43.  *   É fornecido para o programa as coordenada do local onde ficarão as placas solares.
  44.  *   O programa faz a leitura da data e hora no RTC.
  45.  *   Com esta data calcula, o horario atual em segundos. TOD  Time Of Day.
  46.  *   Chama também uma função que calcula o numero da data atual no ano.
  47.  *   Com esta data e com a formula ? = 23,45*sen(360/365*(284 + ndia))  ndia = numero do dia no anos,
  48.  *   calcula a declinação da terra.
  49.  *   E o tempo que o sol ilumina o local, é calculado com a fórmula  ? = 2/15arccos(-tan?.tan?).
  50.  *   Com estes valores a placa é posicionada por 2 steps motors, e a cada fraçao de tempo calculado
  51.  *   de dividido 180 graus pelo numero de horas de sol para cada dia.
  52.  *   Ao desligar e religar o arduino, os motores retornam para a posição de home e rposicionam à posição atual
  53.  *   O horário de inicio do avanço partindo de 0 graus, é definido dividindo o numero de horas de luz de sol do dia,
  54.  *   por 2, e subitraindo de 12:00:00 o valor da divisão. O horário do final do percurso é encontrado somando esta
  55.  *   divisão com 12:00:00.
  56.  *   Ao Chegar à meia noite, o sistema identifica que houve mudança de dia e retorna os motores à posição de home,
  57.  *   para aguardar a hora de inicio da varedura.
  58.  *   Como a terra inclina de -23,5 graus(solsticio), até 0 grau(equinócio), depois a 23,5 graus(solsticio)
  59.  *   e novamente a 0 grau(equinócio).
  60.  *   Esta data é 20 de março, 20 de junho e 21 de setembro, 20 de dezembro com variações no ano bissexto.
  61.  *   Dias do anos 80,  171,  262, 354.
  62.  */
  63.  
  64.    #include <LiquidCrystal.h>                                                   // Biblioteca LCD                  
  65.    LiquidCrystal lcd(12, 11, A0, A1, A2, A3);                                   // Pinos do LCD
  66.    #include <AccelStepper.h>                                                    // Biblioteca StepMotor
  67.    #include "Wire.h"                                                            // Biblioteca I2C
  68.    #define DS1307_ADDRESS 0x68                                                  // Endereço I2C do RTC
  69.  
  70.    AccelStepper motor1(1,7,8);                                                  // Definicao pinos STEP e DIR do motor 1
  71.    AccelStepper motor2(1,9,10 );                                                // Definicao pinos STEP e DIR do motor 2
  72.  
  73.    #define EOLati 3                                                             // Port do sensor de home de latitude motor 1
  74.    #define EOLong 4                                                             // Port do sensor de home de longitude motor 2  
  75.    
  76.    int velocidade_motor = 1000;                                                 // Define velocidade do motor1
  77.    int aceleracao_motor = 1000;                                                 // Define velocidade do motor2
  78.    float TgF = 0;                                                               // Tangente das coordenadas
  79.    float d = 0;                                                                 // Declinacao da terra
  80.    float CoordG = 3;                                                            // Cooodenadas cartezianas do locar (grau)
  81.    float CoordM = 43;                                                           // Cooodenadas cartezianas do locar (minuto)
  82.    float CoordS = 6;                                                            // Cooodenadas cartezianas do locar (segundos)
  83.    float CoordDec = (CoordG*3600+CoordM*60+CoordS)/3600;                        // Soma das coordenadas total em segundos
  84.    float LocalRad = 0;                                                          // Coordenadas locais em rdianos
  85.    float Nht = 0;                                                               // Numero de horas de sol por dia
  86.    long TOD = 0;                                                                // Time Of Day
  87.    long TODAnt = 0;                                                             // Time Of Day segundo anterior
  88.    long Posicao = 0;                                                            // Posição sol no ida
  89.    unsigned long Nh = 0;                                                        // Horas calculadas de sol
  90.    unsigned long Nm = 0;                                                        // Minuto calculados de sol
  91.    unsigned long Ns = 0;                                                        // Segundos calculados de sol
  92.    float Rad = PI/180;                                                          // Radianos
  93.    String AbaixoEquador = "S";                                                  // Posição em relação ao equador
  94.    unsigned int MeuDia = 0;                                                     // Dia do Ano
  95.    unsigned int MeuDiaAnt = 0;                                                  // Dia antrior
  96.    unsigned long TTotal = 0;                                                    // Tempo total de sol
  97.    long Inicio = 0;                                                             // Horiario do nascer do sol
  98.    long Fim = 0;                                                                // Horiario do por do sol
  99.    float Giro = 0;                                                              // Movimentação da terra
  100.    byte Pwo = 0;                                                                // Flag de rodar com power on ou reset
  101.    byte FlagRun = 0;                                                            // Flag MeuDiaAnt no primeiro dia do ano
  102.    long Deslocamento = 0;                                                       // Deslocamento do dia em relação ao equinócio
  103.    float Declinacao = 0;                                                        // Declinação da terra
  104.    float Move = 0 ;                                                             // Valor de avanco em minutos
  105.    int segundos = 0;                                                            // Segundos
  106.    int minutos = 0;                                                             // Minutos
  107.    int horas = 0;                                                               // Horas
  108.    int diadasemana = 0;                                                         // Dia da semana
  109.    int diadomes = 0;                                                            // Dia do mes
  110.    int mes = 0;                                                                 // Mes
  111.    int ano = 0;                                                                 // Ano
  112.    byte Dsp = 0;                                                                // Dispaly no LCD
  113.    long StepCount = 0;                                                          // Contagem de Steps para mover os steps motors
  114.   //-----------------------------------------------------------------------------
  115.   void setup()
  116.   {
  117.     pinMode(EOLati, INPUT_PULLUP);                                              // Port do sensor de home de latitude como inpute e pull up
  118.     pinMode(EOLong, INPUT_PULLUP);                                              // Port do sensor de home de latitude como inpute e pull up
  119.     motor1.setMaxSpeed(velocidade_motor);                                       // Define velocidade máxima do motor1
  120.     motor1.setAcceleration(aceleracao_motor*10);                                // Define aceleração do motor1
  121.     motor2.setMaxSpeed(velocidade_motor);                                       // Define velocidade máxima do motor2
  122.     motor2.setAcceleration(aceleracao_motor*10);                                // Define aceleração do motor2      
  123.     float Local = 0;                                                            // Coordenadas Local em decimais
  124.     Serial.begin(9600);                                                         // Inicializa o monitor serial
  125.     lcd.begin(16, 2);                                                           // Inicializa o LCD
  126.     Wire.begin();                                                               // Inicializa o uso do I2CC
  127.     if (AbaixoEquador == "S")                                                   // Se for abaixo do equador coordenadas negativas
  128.       Local = -(CoordG + CoordM/60 + CoordS/3600);                              // Calcula o grau em decimais
  129.     else                                                                        // Se for acima do equador coordenadas positivas
  130.       Local = (CoordG + CoordM/60 + CoordS/3600);                               // Calcula o grau em decimais
  131.     LocalRad = Local*Rad;                                                       // Calcula as coordenadas em radianos
  132.     TgF = tan(LocalRad);                                                        // Calcula a tangente das coordenadas
  133.     Pwo = 0;                                                                    // Informa reset ou power  on
  134.   }
  135.   //-----------------------------------------
  136.   void MoveMotorLat ()                                                          // Move motor de declinação para posição atual
  137.   {    
  138.     StepCount = (Giro/36);                                                      // Calcula posição do sol de 0 a 180 graus em numero de steps
  139.     motor1.moveTo(StepCount);                                                   // Move motor de posição do sol  
  140.   }
  141.   //------------------------------------------------------------------------------
  142.   void MoveMotorDec ()                                                          // Move motor de declinação para posição atual
  143.   {
  144.     StepCount = (Declinacao*100);                                               // Calcula declinação d terra em numero de steps
  145.     motor2.moveTo(StepCount);                                                   // Move motor de declinação  
  146.   }
  147.   //-----------------------------------------------------------------------------
  148.   void ImprimeTempo ()
  149.   {
  150.     Serial.print("Dia ");                                                       // Serial imprime "Dia "    
  151.     Serial.print (diadomes);                                                    // Serial imprime diadomes
  152.     Serial.print("/");                                                          // Serial imprime "/"
  153.     Serial.print (mes);                                                         // Serial imprime mes
  154.     Serial.print("/");                                                          // Serial imprime "/"
  155.     Serial.print (ano);                                                         // Serial imprime ano
  156.     Serial.print(" ");                                                          // Serial imprime " "
  157.     Serial.print (horas);                                                       // Serial imprime horas
  158.     Serial.print(":");                                                          // Serial imprime ":"
  159.     Serial.print (minutos);                                                     // Serial imprime minutos
  160.     Serial.print(":");                                                          // Serial imprime ":"
  161.     Serial.println (segundos);                                                  // Serial imprime segundos
  162.   }
  163.   //-----------------------------------------------------------------------------
  164.   void LeData ()
  165.   {
  166.     byte zero = 0x00;                                                           //  ??
  167.     Wire.beginTransmission(DS1307_ADDRESS);                                     // Inicia comunicacao com DS1331
  168.     Wire.write(zero);                                                           // ??
  169.     Wire.endTransmission();                                                     // ??
  170.     Wire.requestFrom(DS1307_ADDRESS, 7);                                        // ??
  171.     segundos = ConverteparaDecimal(Wire.read());                                // Le segundos do RTC
  172.     minutos = ConverteparaDecimal(Wire.read());                                 // Le minutos do RTC
  173.     horas = ConverteparaDecimal(Wire.read() & 0b111111);                        // Le horas do RTC
  174.     diadasemana = (Wire.read());                                                // Le dia da semana do RTC
  175.     diadomes = ConverteparaDecimal(Wire.read());                                // Le dia do mes do RTC
  176.     mes = ConverteparaDecimal(Wire.read());                                     // Le mes do RTC
  177.     ano = ConverteparaDecimal(Wire.read());                                     // Le ano do RTC
  178.     TOD = (segundos + minutos*60 + horas*long (3600));                          // Calcula hora em segundos
  179.     if (TOD == 86399)                                                           // Se for 23:59:59
  180.     {
  181.       TODAnt = 0;                                                               // Zera TOD anterior, evita travamento à 1/2 noite
  182.       TOD = 1;                                                                  // TOD = 1, evita travamento à 1/2 noite
  183.     }
  184.     calculateDayOfYear(diadomes,mes,ano);                                       // Calcula dia do ano
  185.   }
  186.   //-----------------------------------------------------------------------------
  187.   byte ConverteparaDecimal(byte val)
  188.   {
  189.     return ( (val/16*10) + (val%16) );                                          // Converte numero Hexa para decimal
  190.   }
  191.   //-----------------------------------------------------------------------------
  192.   int calculateDayOfYear(int day, int month, int year)                          // Calcula dia do ano
  193.   {
  194.     int daysInMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31};                  // Matriz de qtde dias dos meses
  195.     if (year%4  == 0)  // Verifica se é bissexto                                // Se o ano for bissexto
  196.     {
  197.       if (year%100 != 0)                                                        // Se não for centena cheia
  198.       {
  199.         daysInMonth[1] = 29;                                                    // Soma 1 em fevereio
  200.       }
  201.       else                                                                      // Ou se for centena cheia
  202.       {
  203.         if (year%400 == 0)                                                      // Se for multiplo de 400
  204.         {
  205.           daysInMonth[1] = 29;                                                  // Soma 1 em fevereio
  206.         }
  207.       }
  208.     }
  209.     MeuDia = 0;                                                                 // Zera contagem de dias
  210.     for (int i = 0; i < month - 1; i++)                                         // Soma até mes atual - 1
  211.     {
  212.       MeuDia += daysInMonth[i];                                                 // Soma numero de dias dos meses
  213.     }
  214.     MeuDia += day;                                                              // Soma dias do mes atual
  215.   //   MeuDia = 171;                                      // Para Diag
  216.   }
  217.   //-----------------------------------------------------------------------------
  218.   void CalcH (long ValH)                                                        // Calcula horas/minutos/segundos inteiros
  219.   {
  220.     Nh = ValH/3600;                                                             // Horas inteiras
  221.     Nm = (ValH-(Nh*3600))/60;                                                   // Minutos inteiros
  222.     Ns = (ValH-(Nh*3600)- Nm*60);                                               // Segundos inteiros
  223.   }
  224.   //-----------------------------------------------------------------------------
  225.   void Imprime()                                                                // Serial imprime horarios
  226.   {
  227.     Serial.print(Nh);                                                           // Serial imprime horas
  228.     Serial.print(":");                                                          // Serial imprime :
  229.     Serial.print(Nm);                                                           // Serial imprime minutos
  230.     Serial.print(":");                                                          // Serial imprime :
  231.     Serial.println(Ns);                                                         // Serial imprime segundos
  232.   }
  233.   //-----------------------------------------------------------------------------
  234.   void Inclinacao ()                                                            // Inclinação da placa
  235.   {
  236.     /*
  237.     Solsticio de verão é +- no dia 80 de cada ano (Varia no ano bissexto)
  238.     À cada dia soma-se -929,6703297 à poiscão atual, vezes o numero de dias
  239.     -91 e 91 em relacão ao sosticio
  240.     O semestre solar vai de -11 (80 - 91), até 171 (80 + 91)
  241.     Dia 1/1/xxxx  = dia 11
  242.     80 = 0 -13386 | 171 = 91  | 172 = 90  71214 | 262  0  | 353 -91 - 97986
  243.     */
  244.     if (MeuDia<172)                                                             // Solsticio de inverno
  245.     {
  246.       Deslocamento = long(MeuDia) - 80;                                         // Calcula inclinação
  247.      }
  248.     if ((MeuDia>171)&& (MeuDia<354))                                            // Equinócio de inverno
  249.     {
  250.       Deslocamento = 262 - long(MeuDia);                                        // Calcula inclinação
  251.     }
  252.     if (MeuDia>353)                                                             // Solsticio de verão
  253.     {
  254.       Deslocamento = long(MeuDia) - 444;                                        // Calcula inclinação
  255.     }                                                                           // inclinação conforme a posição do sol nas estácoes
  256.     Declinacao = (0.25824175824*(-91+Deslocamento)+23.5-CoordDec);              // Calculo da inclinação em Coordenadas geográficas decimais
  257.     MoveMotorDec();                                                             // Move motor2 para a posição de delinação
  258.   }
  259.   //-----------------------------------------------------------------------------
  260.   void CalculosGeo ()
  261.   {
  262.     d = tan(23.45*sin(((float)360/365*(284+MeuDia)*Rad))*Rad);                  // Calcula declinacao da terra
  263.     d =  -(d * TgF);                                                            // Declinacao da terra = declinação * tangente das coordenadas
  264.     Nht = ((float)2/15)*(acos(d))/PI*180;                                       // Calcula horas total de sol por dias (float)
  265.     Nh = Nht;                                                                   // Horas de sol por dia   (long)
  266.     Nm = (Nht-Nh)*60;                                                           // Minutos de sol por dia   (long)
  267.     Ns = (Nht-Nh)*3600-Nm*60;                                                   // Segundos de sol por dia   (long)
  268. //    Serial.print("Tempo de sol: ");                                             // Serial imprime "Tempo de sol: "
  269. //    Imprime();                                                                  // Serial imprime o tempo total de sol do dia
  270.     TTotal = (Nh*3600+ Nm*60+ Ns);                                              // Metade do tempo total de segundos de sol por dia
  271.     Inicio = 43200 - (TTotal/2);                                                // Meio dia menos metade do tempo de sol
  272.     Fim = 43200 + (TTotal/2);                                                   // Meio dia mais metade do tempo de sol
  273.     Move =  648000/float(TTotal);                                               // Segundos de graus de deslocamento por segundo de hora
  274.   }
  275.   //-----------------------------------------------------------------------------
  276.   void loop()
  277.   {
  278.     motor1.run();                                                               // Movimenta step motor1
  279.     motor2.run();                                                               // Movimenta step motor2    
  280.     // Inicio Reset ou troca de dia / ano  --------------------------------------
  281.     LeData();                                                                   // Le a data de hoje no RTC
  282.     if ((MeuDia == 1) && (FlagRun == 0))                                        // Se é o primeiro dia do ano e ainda não rodou Calculos
  283.     {
  284.       MeuDiaAnt = 0;                                                            // Reinicializa dia anterior
  285.       FlagRun = 1;                                                              // Informa que já Reinicializou MeuDiaAnt
  286.     }
  287.     if (MeuDia >1) FlagRun = 0;                                                 // Se nao for primeiro dia apaga indicador Reinicializa dia anterior
  288.     if (MeuDiaAnt<MeuDia)                                                       // Se mudou o dia realinha e recalcula
  289.     {
  290. /*      while (digitalRead(EOLati) == 1)                                          // Equanto não está no home reposiciona motor de deslocamento em 0 graus
  291.       {
  292.         Serial.println("Return Lati");                                          // Serial imprime "Return Lati"
  293.         StepCount--;                                                            // Decrementa posição do motor
  294.         motor1.moveTo(StepCount);                                               // Move motor1 pra o home
  295.         motor1.run();                                                           // Movimenta step motor1
  296.       }
  297.       StepCount = 0;
  298.       while (digitalRead(EOLong) == 1)                                          // Equanto não está no home reposiciona motor de declinacao
  299.       {
  300.         Serial.println("Return Long");                                          // Serial imprime "Return Long"
  301.         StepCount--;                                                            // Decrementa posição do motor
  302.         motor2.moveTo(StepCount);                                               // Move motor2 pra o home
  303.         motor2.run();                                                           // Movimenta step motor2
  304.       }   */  
  305.       Pwo = 0;                                                                  // Reset falg de reposicionamento e recalculo
  306.       CalculosGeo();                                                            // Calcula horários e inclinação
  307.       MeuDiaAnt = MeuDia;                                                       // Atualiza o dia anterior
  308.       Inclinacao();                                                             // Calcula a inclinação do sol      
  309.     }
  310.    // Fim Reset ou troca de dia / ano  ------------------------------------------  
  311. //    Inicio = 5;                                     // Para Diag
  312.     if (((TOD-Inicio) > 0)  &&   ((Fim-TOD) > 0))                               // Se TOD (agora) for maior que a hora do inicio e menor que hora do fim
  313.     {
  314.       if (Pwo == 0)                                                             // Se foi ligado agora ou feito reset
  315.       {                                                                         // Recupera posição atual
  316.         Pwo = 1;                                                                // Informa reposicionamento
  317.         Giro = 0;                                                               // Zera contador de posição
  318.         Giro = Move*(TOD -Inicio-1);                                            // Calcula a posicão atual  -2 porque vai girar 1 em seguida
  319.       }
  320.       if (TOD>TODAnt)                                                           // Veja se passou um segundo
  321.       {    
  322.         TODAnt = TOD;                                                           // Salva segundo antigo com o novo
  323.         Dsp++;
  324.         if (Dsp == 4) Dsp = 1;                                                  // Seleciona display no LCD
  325.         if (Dsp == 1)                                                           // Display dia/hora
  326.         {
  327. //          ImprimeTempo();                                                       // Imprime dia/hora atual
  328.           lcd.setCursor(0,0);                                                   // LCD Lin 0 Pos 0
  329.           lcd.print(diadomes);                                                  // LCD imprime  dia
  330.           lcd.print("/");                                                       // LCD imprime  /
  331.           lcd.print(mes);                                                       // LCD imprime  mes  
  332.           lcd.print("/");                                                       // LCD imprime  /
  333.           lcd.print(ano);                                                       // LCD imprime ano  
  334.           lcd.print(" ");                                                       // LCD imprime espaço            
  335.           lcd.print(horas);                                                     // LCD imprime horas
  336.           lcd.print(":");                                                       // LCD imprime :
  337.           lcd.print(minutos);                                                   // LCD imprime minutos
  338.           lcd.print(":");                                                       // LCD imprime :
  339.           lcd.print(segundos);                                                  // LCD imprime segundos
  340.           lcd.print("      ");                                                  // LCD imprime espaço      
  341.         }
  342.         if (Dsp == 2)                                                           // Display hora nascer do sol
  343.         {
  344.           CalcH(Inicio);                                                        // Calcula hora de inicio format h/m/s
  345. //          Serial.print("Nascer do Sol ");                                       // Serial imprime Nascer do Sol
  346. //          Imprime();                                                            // Serial imprime h/m/s
  347.           lcd.setCursor(0,0);                                                   // LCD Lin 0 Pos 0
  348.           lcd.print("N. Sol ");                                                 // LCD imprime "N. Sol "    
  349.           lcd.print(Nh);                                                        // LCD imprime horas
  350.           lcd.print(":");                                                       // LCD imprime :
  351.           lcd.print(Nm);                                                        // LCD imprime minutos
  352.           lcd.print(":");                                                       // LCD imprime :
  353.           lcd.print(Ns);                                                        // LCD imprime segundos
  354.           lcd.print("    ");                                                    // LCD imprime espaço      
  355.         }
  356.         if (Dsp == 3)                                                           // Display hora por do sol
  357.         {
  358.           CalcH(Fim);                                                           // Calcula hora de fim format h/m/s
  359. //          Serial.print("Por do Sol ");                                          // Serial imprime Por do Sol
  360. //          Imprime();                                                            // Serial imprime h/m/s// Serial imprime
  361.           lcd.setCursor(0,0);                                                   // LCD Lin 0 Pos 0      
  362.           lcd.print("P. Sol ");                                                 // LCD imprime "P. Sol "    
  363.           lcd.print(Nh);                                                        // LCD imprime horas
  364.           lcd.print(":");                                                       // LCD imprime :
  365.           lcd.print(Nm);                                                        // LCD imprime minutos
  366.           lcd.print(":");                                                       // LCD imprime :
  367.           lcd.print(Ns);                                                        // LCD imprime segundos
  368.           lcd.print("    ");                                                    // LCD imprime espaço      
  369.         }
  370.         lcd.setCursor(0,1);                                                     // LCD Lin 1 Pos 0  
  371.         lcd.print("d");                                                         // LCD imprime d
  372.         lcd.print(Declinacao);                                                  // LCD a declinação da terra :
  373.         Giro = Giro + Move;                                                     // Move a cada segundo  Movimento de rotação
  374.         MoveMotorLat();                                                         // Avança motor de deslocameto
  375.         lcd.print(" p");                                                        // LCD imprime p
  376.         lcd.print(Giro/3600);                                                   // LCD imprime posição do sol
  377.       }
  378.     }
  379.     else                                                                        // Se TOD (agora) for menor que a hora do inicio ou maior que hora do fim
  380.     {
  381.       lcd.setCursor(0,0);                                                       // LCD Lin 0 Pos 0
  382.       lcd.print(diadomes);                                                      // LCD imprime  dia
  383.       lcd.print("/");                                                           // LCD imprime  /
  384.       lcd.print(mes);                                                           // LCD imprime  mes  
  385.       lcd.print("/");                                                           // LCD imprime  /
  386.       lcd.print(ano);                                                           // LCD imprime ano  
  387.       lcd.print(" ");                                                           // LCD imprime espaço            
  388.       lcd.print(horas);                                                         // LCD imprime horas
  389.       lcd.print(":");                                                           // LCD imprime :
  390.       lcd.print(minutos);                                                       // LCD imprime minutos
  391.       lcd.print(":");                                                           // LCD imprime :
  392.       lcd.print(segundos);                                                      // LCD imprime segundos
  393.       lcd.print("      ");                                                      // LCD imprime espaço    
  394.       lcd.setCursor(0,1);                                                       // LCD Lin 1 Pos 0    
  395.       lcd.print("Waiting wakeup  ");                                            // LCD imprime "Waiting wakeup  "    
  396. //      Serial.println("Waiting wakeup  ");                                            // LCD imprime "Waiting wakeup  "    
  397.     }
  398.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement