Use o RTC DS1307 com Arduino
Hoje vou montar um esquema bem simples de relógio usando o DS1307, um circuito integrado RTC (Real Time Clock), que nada mais é do que um chip que “conta o tempo”. Vamos então ver como conectar e programar o DS1307 com Arduino. Você também pode usar o mesmo princípio para controlar um módulo RTC DS1307.
O chip RTC DS1307
As principais características do chip DS1307 são:
- Conta Ano, mês, semana, dias da semana, dias, horas, minutos, segundo
- Identifica anos bissextos
- Utiliza interface I2C, usando apenas 2 pinos para se comunicar com o Arduino, ao contrário do seu antecessor DS1302, que usa 3 pinos.
Circuito DS1307 com Arduino
Monte o circuito abaixo na protoboard. O cristal é de 32,768 KHz, eu tirei o meu de uma motherboard antiga. Tenho mais um que tirei de um relógio quebrado, que você com certeza também tem jogado em algum canto aí na sua casa. Vários aparelhos eletronicos tem um cristal desses dentro. 😉
Abaixo temos os esquema de ligação com o Arduino. Como o DS1307 usa a interface I2C para comunicação, vamos conectar o chip nos pinos A4 (SDA) e A5 (SCL) da placa:
Um detalhe é a bateria, que é obrigatória nesse circuito. Sem ela, o CI gera alguns resultados bem estranhos. A bateria serve também para que, caso o Arduino seja desligado, as informações de data e hora sejam preservadas. O consumo do CI é baixíssimo (500 nano ampéres), o que significa que uma bateria de 3V ligada permanentemente ao circuito dura muito tempo.
No meu caso, usei uma CR2032, dessas que a gente encontra na motherboard do computador.
Finalmente, vamos ao programa. Carregue o programa abaixo no seu Arduino:
// Programa : Data e Hora com DS1307 // Autor : Arduino e Cia #include "Wire.h" #define DS1307_ADDRESS 0x68 byte zero = 0x00; void setup() { Wire.begin(); Serial.begin(9600); //A linha abaixo pode ser retirada apos setar a data e hora SelecionaDataeHora(); } void loop() { Mostrarelogio(); delay(1000); } void SelecionaDataeHora() //Seta a data e a hora do DS1307 { byte segundos = 40; //Valores de 0 a 59 byte minutos = 59; //Valores de 0 a 59 byte horas = 23; //Valores de 0 a 23 byte diadasemana = 1; //Valores de 0 a 6 - 0=Domingo, 1 = Segunda, etc. byte diadomes = 17; //Valores de 1 a 31 byte mes = 4; //Valores de 1 a 12 byte ano = 13; //Valores de 0 a 99 Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero); //Stop no CI para que o mesmo possa receber os dados //As linhas abaixo escrevem no CI os valores de //data e hora que foram colocados nas variaveis acima Wire.write(ConverteParaBCD(segundos)); Wire.write(ConverteParaBCD(minutos)); Wire.write(ConverteParaBCD(horas)); Wire.write(ConverteParaBCD(diadasemana)); Wire.write(ConverteParaBCD(diadomes)); Wire.write(ConverteParaBCD(mes)); Wire.write(ConverteParaBCD(ano)); Wire.write(zero); //Start no CI Wire.endTransmission(); } byte ConverteParaBCD(byte val){ //Converte o número de decimal para BCD return ( (val/10*16) + (val%10) ); } byte ConverteparaDecimal(byte val) { //Converte de BCD para decimal return ( (val/16*10) + (val%16) ); } void Mostrarelogio() { Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero); Wire.endTransmission(); Wire.requestFrom(DS1307_ADDRESS, 7); int segundos = ConverteparaDecimal(Wire.read()); int minutos = ConverteparaDecimal(Wire.read()); int horas = ConverteparaDecimal(Wire.read() & 0b111111); int diadasemana = ConverteparaDecimal(Wire.read()); int diadomes = ConverteparaDecimal(Wire.read()); int mes = ConverteparaDecimal(Wire.read()); int ano = ConverteparaDecimal(Wire.read()); //Mostra a data no Serial Monitor Serial.print("Data: "); Serial.print(diadomes); Serial.print("/"); Serial.print(mes); Serial.print("/"); Serial.print(ano); Serial.print(" "); Serial.print("Hora : "); Serial.print(horas); Serial.print(":"); Serial.print(minutos); Serial.print(":"); Serial.print(segundos); switch(diadasemana) { case 0:Serial.println(", Domingo"); break; case 1:Serial.println(", Segunda"); break; case 2:Serial.println(", Terca"); break; case 3:Serial.println(", Quarta"); break; case 4:Serial.println(", Quinta"); break; case 5:Serial.println(", Sexta"); break; case 6:Serial.println(", Sabado"); } }
O que ele faz nada mais é do que setar a data e a hora, como indicado no programa, e depois mostrar esses valores no serial monitor, como na figura abaixo:
A linha 15 do programa, com a indicação SelecionaDataeHora(), é utilizada para setar os dados iniciais do relógio e pode ser comentada posteriormente, já que o DS1307 estará sendo alimentado pela bateria.
Por último, não podia esquecer do Datasheet do DS1307, que você encontra aqui.
Olá, uma pergunta: É possível conectar este DS1307 nos pinos digitais do arduino?
Não é possível, pois não só o DS1307 como outros dispositivos que utilizamos no Arduino usam o protocolo I2C, que usa o pino A4 do Arduino Uno para o sinal SDA (Dados), e o pino A5 para o SCL (Clock). Abraço.
Corrigindo – o cristal é de 32,768 KHz !
Corrigido, obrigado !
Tenho um sensor de temp, press e umidade. Como faço para os dados sairem nos dados no cartão de memoria e no display de LCD???
Bom dia Tuca ! Tenho alguns esquemas aqui no site de ligação e apresentação de dados no display LCD. Ainda não postei nada sobre escrever os dados em cartões, mas é um post no qual já estou trabalhando. Abraço !
não são necessários resistores de pull-up nas linhas de dados?
Boa noite Daniel. Nessa configuração que eu montei, não houve necessidade de resistores pull-up. Abraço !
Tudo bem, obrigado!!
Estou curioso, por que não foi necessário?
Parabéns resolveu meu problema!
Obrigado Marcello !! Abraço.
Olá !!
Estou integrando um RTC TINY I2C no arduino mega 2560 e percebi que o mesmo (RTC) nao mantem a data e hora atualizados, simplesmente ele guarda a ultima hora e data gerado pelo RTC e quando retorna, retorna com esta data/hora e nao a hora/data corrente. Ex: meu rtc estava com o horario de 12:00:00 e o deixei desligado por 40min. Qdo voltou a funcionar o circuito achava q. a hora deveria ser 12:40:00 , mas ao inves disto o horario continuou em 12:01:00. O que posso estar fazendo de errado ?
Bom dia !
Por favor veja se não esqueceu de comentar essa linha do programa :
SelecionaDataeHora(); //Esta linha pode ser retirada apos setar a data e hora
Senão, a cada vez que vc ligar o Arduino, ele vai setar a hora novamente. Resumindo, você precisa carregar o programa 2 vezes : 1 vez com o comando acima, para setar a data e a hora, depois você comenta a linha e carrega o programa novamente. Assim, ele vai manter a data e a hora por meio da bateria do RTC.
Se puder, me conte se funcionou, blz ? Abraço e obrigado !
Olá! Estou com o mesmo problema.
O módulo está funcional e contando. A linha de setup já está comentada. Mas quando eu desligo o Arduino o timer congela no horario.
Quando religo, ele simplesmente recomeça de onde parou, não importando quanto tempo ficou parado.
Boa noite Fabiano,
Estava aqui pensando nesse problema, mas não consegui ter alguma pista. pelo menos em relação à programação.
Creio que o problema seja físico mesmo. Você tem outro módulo para testar ?
Abraço.
O void loop() deve estar no final do código.
Aqui está o código corrigido.
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00;
void setup()
{
Wire.begin();
Serial.begin(9600);
//A linha abaixo pode ser retirada apos setar a data e hora
//ConfiguraRelogio();
}
void ConfiguraRelogio() //Seta a data e a hora do DS1307
{
byte hor = 10; //Valores de 0 a 23
byte min = 37; //Valores de 0 a 59
byte seg = 00; //Valores de 0 a 59
byte dia = 29; //Valores de 1 a 31
byte mes = 2; //Valores de 1 a 12
byte ano = 16; //Valores de 0 a 99
byte sem = 1; //Valores de 0 a 6 – 0=Domingo, 1 = Segunda, etc.
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //Stop no CI para que o mesmo possa receber os dados
//As linhas abaixo escrevem no CI os valores de
//data e hora que foram colocados nas variaveis acima
Wire.write(ConverteParaBCD(seg));
Wire.write(ConverteParaBCD(min));
Wire.write(ConverteParaBCD(hor));
Wire.write(ConverteParaBCD(sem));
Wire.write(ConverteParaBCD(dia));
Wire.write(ConverteParaBCD(mes));
Wire.write(ConverteParaBCD(ano));
Wire.write(zero); //Start no CI
Wire.endTransmission();
}
byte ConverteParaBCD(byte val){ //Converte o número de decimal para BCD
return ( (val/10*16) + (val%10) );
}
byte ConverteparaDecimal(byte val) { //Converte de BCD para decimal
return ( (val/16*10) + (val%16) );
}
void MostraRelogio()
{
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int seg = ConverteparaDecimal(Wire.read());
int min = ConverteparaDecimal(Wire.read());
int hor = ConverteparaDecimal(Wire.read() & 0b111111);
int sem = ConverteparaDecimal(Wire.read());
int dia = ConverteparaDecimal(Wire.read());
int mes = ConverteparaDecimal(Wire.read());
int ano = ConverteparaDecimal(Wire.read());
//Mostra a data no Serial Monitor
switch(sem)
{
case 0:Serial.print("Domingo");
break;
case 1:Serial.print("Segunda");
break;
case 2:Serial.print("Terca");
break;
case 3:Serial.print("Quarta");
break;
case 4:Serial.print("Quinta");
break;
case 5:Serial.print("Sexta");
break;
case 6:Serial.print("Sabado");
}
Serial.print(" – ");
Serial.print(dia);
Serial.print("/");
Serial.print(mes);
Serial.print("/");
Serial.print(ano);
Serial.print(" – ");
Serial.print(hor);
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.print(seg);
Serial.println();
}
void loop()
{
MostraRelogio();
delay(1000);
}
Tenho 3 RTCs DS1307 e dando uma dor de cabeça danada. Ora roda, ora volta para uma data maluca.
Com este código acima, rodou umas vezes. Vou tentar colocar resistores de 2.2k nas saídas SDA e SCL como pullup.
Alguém sabe como eu faço com modulo de 5 pinos, g , v , sck,sda e int.
Bom dia Robson !
Eu tenho um módulo RTC aqui, mas não sei se é o mesmo. Você tem algum link pra mostrar o módulo que você tem aí ?
Abraço !
O modelo esse aqui http://dx.com/pt/p/meeeno-ds1307-real-time-clock-brick-module-for-arduino-yellow-works-with-official-arduino-boards-213941#.UwD-LVJdVvk valeu.
Oi Robson,
O módulo que eu tenho aqui é diferente… tem mais pinos.. mas vamos lá. Tente a seguinte ligação :
Ligue o G no GND
Ligue o V no Vcc 5v do Arduino
Ligue o SCK no pino analógico 5 do Arduino
Ligue o SDA no pino analógico 4 do Arduino
A princípio, o INT não é usado.
Depois me fale se funcionou, por favor.
Abraço !
Valeu, funcionou perfeitamente, e o pino INT esta ligado em uma led que deve ser só para indicão.
Valeu pelo retorno Robson ! Abraço !
Boa noite. Tenho um RTC DS1302, versão anterior ao DS1307. Estou tentando ligá-lo junto para mostrar a a contagem de segundos em um LCD 1602. Até aqui está funcionando perfeitamente. O problema é que agora estou tentando acionar o meu relógio a partir de um App que se comunica com o meu MEGA 2560 por bluetooth, nao está funcionando, nem sequer reconhece que há uma conexão bluetooth ativa, embora esteja pareada. Acredito que há algum conflito com a comunicação serial, uma vez que tanto o bluetooth quanto o DS1302 estão ligados. Você pode me ajudar? Abraço!
Boa noite Sidney,
Qual aplicativo você está usando no celular ?
Abraço.
Boa tarde. Estou usando o app "S2 terminal for Bluetooth" que apenas me permite fazer uma conexão com outro dispositivo ao alcance, no meu caso um modulo para Android, e trocar dados em forma de código ASCII. Bom, já consigo receber o tempo do RTC a partir de uma requisição pelo meu app. Meu problema agora é que como estou acionando um motor de passo, quando peço o tempo do meu processo o motor é interropido por um breve mas perceptível tempo. Estou tentando resolver isso com interrupção de timer, sem muito sucesso ainda.
Boa tarde Sidney,
Você está usando a biblioteca Stepper do Arduino ? Não sei exatamente o que pode ser, mas eu testaria com outra biblioteca, como a CustomStepper, só pra ver o que acontece. Tenho um artigo falando dela :
http://www.arduinoecia.com.br/2014/04/controlando-motor-de-passo-28byj-48.html
Abraço !
Boa tarde,
não estou usando nenhuma biblioteca para acionar o MP, construi o código de acordo com o funcionamento. Pensei em usar alguma, vi inclusive que há uma biblioteca que permite acionar vários MP simultaneamente, mas ainda assim acredito que ficaria restrito.
Abraço
Opa! Otimo artigo, pergunto seria possivel fazer um contador de tempo com o DS1307? Explico quero fazer uma tranca (aberta mostra a hora normal, fecho pausa esta hora, abro me mostra a hora novamente que parou o pq disso saber o tempo que a tranca ficou fechada) Voce pode me dar uma luz? Abraço!
Oi Gilberto,
Interessante esse seu projeto. Me fale o que você já tem pronto. Se preferir, utilize o formulário de contato no lado direito da página do Arduino e Cia para enviar mais detalhes.
Abraço !
boa dia muito interessante o projeto parabéns. Mais estou com problema quando eu desligo o Arduino ele volta no horário inicial..
abços
Bom dia, e obrigado por acessar o Arduino e Cia.
Veja se você não está esquecendo de comentar ou retirar a linha abaixo, que seta a data e hora. Ela só é necessária na primeira vez que você usar o programa :
SelecionaDataeHora();
Espero ter ajudado. Abraço !
Cara, esse site é muito BOM! Faço engenharia elétrica e tenho me aventurado nessa parte de programação. A forma como você expõe ai… facilita bastante pra quem ta começando com programação.
Valeu ! A ideia do site é apresentar as coisas de forma relativamente simples, para que as pessoas possam desenvolver seus próprios projetos. Não adianta nada eu tentar fazer um robô com câmera, guiado por laser e com 7 motores sem explicar como funciona cada parte. Acho que é por aí. 🙂
Agradeço a visita e volte sempre. Abraço !
Oi, eu sou novo em eletrônica, eu construí o circuito, mas a data vem de dados: 165/165/165 Tempo: 45: 165: 165, o que pode ocorrer. Obrigado, muito bom o seu site.
Boa tarde,
Você montou com o CI mesmo ou usou o módulo DS1307 ?
Abraço !
Estou com o mesmo problema e eu montei no simulador ISIS . . .sabe me dizer o que é?
Oi, eu vi o seu comentário sobre a bateria, verificação e tinha uma conexão solta, e ele funciona, muito obrigado
Boa noite,
Legal ter funcionado. Qualquer coisa, estamos ai. 🙂
Abraço !
Estou usando o modulo DS1307, deveria fazer quais alteraçoes para não ter o problema 165/165/165 Tempo: 45: 165: 165
Boa noite Victor,
Eu tive um problema parecido, e havia algum problema nos conectores. Eu refiz a solda e funcionou normalmente.
Abraço !
Arduino e Cia, e no caso de simulação no ISIS o que pode ser?
Bom dia Eduardo,
No ISIS eu nunca simulei, eu vi algumas dicas sobe incluir um resistor de 220 ohms no pino A5 do Arduino, mas eu ainda não testei.
Abraço !
Boa tarde, gostaria de saber se tem como deixar a data e a hora nos seguintes formatos respectivamente: dd/MM/yyyy e hh/mm/ss. Pois, observei que nesse programa esses dados estão sendo exibidos desconsiderando os zeros a esquerda e o ano esta no formato yy. Necessito deles no formado citado acima para que minha aplicação funcione normalmente…Tem como fazer isso ?
Boa tarde,
Por favor dê uma olhada nesse post :
http://www.arduinoecia.com.br/2014/11/arduino-modulo-rtc-ds1302.html
Lá eu fiz uma pequena alteração no código para incluir o 0 antes das horas, minutos e segundos caso o valor seja menor do que 10.
Abraço !
boa noite, quando desligo o arduino deixando só o modulo 1307 ligado com a bateria, as vezes quando ligo no dia seguinte ele esta desregulada a hora,porque
boa noite, quando compilo da-me o erro SAM-BA operation failed, preciso muito disto pois tenho uma apresentação dia 7 de abril
Boa noite,
Qual placa Arduino vc está usando e qual a versão da IDE ? vou ver se consigo reproduzir o erro aqui.
O programa é o mesmo do post ou você fez alguma alteração ?
Abraço.
Boa noite.
teria como fazer a visualização da data/hora pelos displays de 7 segmentos?
Abraço.
Bom dia Marcelo,
Tem sim, eu escrevi um artigo no blog FILIPEFLOP sobre isso, dê uma olhada, por favor:
http://blog.filipeflop.com/arduino/como-construir-um-relogio-com-arduino.html
Abraço !
Pessoal, preciso de uma ajuda.
Como faço para a resolução da data e hora ficar da seguinte maneira:
Data: 07/09/15
Hora: 15:02:06
Porque no programa, a mesma informação acima fica da seguinte maneira:
Data: 7/9/15
Hora: 15:2:6
Alguém poderia me ajudar.
Muito Obrigado.
Fábio.
Oi Fábio,
Eu tenho uma solução, que se não é a mais "limpa", pelo menos funcionou pra mim quando eu precisei. rs
Coloque antes do print do numero, um if para saber se ele é menor do que 10. por exemplo:
Vamos supor que o mes seja 7. Antes do mes, vc coloca o seguinte:
if (mes < 10)
{
Serial.print("0");
}
Serial.print(mes);
Aí vc faz isso para a hora, para o minuto, para o ano, etc. Toda vez que o numero for menor do que 10, ele vai imprimir um "zero".
Espero ter ajudado. Abraço !
Boa noite amigo,você resolveu o problema de como colocar 0 (zero) antes
de data, hora, minuto e segundos? Estou com o mesmo problema, pela dica que te deram de colocar if antes do print(mes<10) não deu certo, não carrega o código, da a mensagem expected ','before 'if'. Se conseguiu e puder me ajudar eu agradeço.
Olá.. Bom dia.
Estou tentando fazer com que o RTC pegue a hora de acordo com servidor de internet (com shield gsm), para ter mais precisão e que não tenha que ficar atualizando no horario de verão.
Alguem tem alguma ideia.??
Obrigado. Abraço.
Também tenho a mesma duvida, fiz um sinalizador de pausas na empresa que trabalho, são 9 no total, e quando muda para o horario de verão tenho que tirar todos e reprogramar
Eu tenho um módulo RTC ,e gostaria de ligar ele em um UNO com servo motor,para cada uma que passar ele acionasse o servo(cada 1 hora passada o servo movimenta 7°)
Oi Alexsandro,
Acho que uma maneira bem simples de fazer isso é vc testar o valor da variável "minutos", assim, toda vez que ela chegar no valor que você colocou, ele aciona o motor. Vamos supor que vc queira que ele acione o motor em hora "cheia", tipo 2:00, 3:00, 13:00, etc. Fica mais ou menos assim:
if (minutos == 0)
{
//Comando para acionar o motor 7°
}
Abraço!
tabem quero saber testei assim mas nao funcionou sera que rola um tutorial pra ajudar
Bom dia, eu posso usar o rtc para acionar um relé das 18:00 até 06:00, por exemplo?
Bom dia Fabio,
Pode sim. Em breve estarei lançando um post com um exemplo como esse.
Abraço!
Olá,
Parabéns pela inciativa em divulgar esses projetos.
Estou rodando esse código e acontece que quando o dia da semana varia de domingo para segunda, ele para de apresentar o dia. Verifiquei que a variável dia da semana passa de 6 para 7 e parece que o programa não reconhece o 7 como um 0. O que pode estar acontecendo?
Oi Marcus!
Estranho, ele não deveria passar de 6, já que a numeração vai de 0 a 6, ou seja, contempla os 7 dias da semana.
Você está usando algum módulo ? Será que o contador não está começando em 1 ?
Abraço!
Olá,
Alguém teria uma ideia de como fazer o processo inverso de horas?
como um painel de microondas, mas com horas e minutos.
Exemplo: digito 02:30:00, aperto START, e ele faz a contagem regressiva deste tempo?
PESSOAL ALGUEM CONSEGUIU FAZER ESSE CODIGO ACIONAR UM RELE ATE AGORA NÃO CONSEGUI SE ALGUEM CONSEGUIU FAVOR ME AJUDAR [email protected] obrigado
Olá amigo
Como faço para mudar o endereço do rtc? Tenho tenho o SDA e SCL ligados em outras portas.
Como você chegou no valor de 0x68
Obrigado
Olá,
Para verificar qual o endereço do módulo, você pode usar o I2CScanner, conforme eu mostro neste post:
http://www.arduinoecia.com.br/2015/04/arduino-lcd-16×2-modulo-i2c-rtc-ds1307.html
Abraço!
Olá.
Desculpe e confusão. Só estava ligando o SDA e o SCL nos pinos errados.
Agora está funcionando perfeitamente.
Parabéns pelo trabalho e obrigado.
O meu módulo é 0x51. O que muda no código?
Oi Igor,
Mude a linha 6 de:
#define DS1307_ADDRESS 0x68
para
#define DS1307_ADDRESS 0x51
Abraço!
Adilson
Cara,
No meu arduino 2560 a serial só printa isso
165/165/165 Hora
45:165:165
Oi Mauro,
No Mega você está ligando os pinos SDA e SCL em quais portas ?
Abraço!
No meu UNO apareciam estes mesmos valores. Depois de alguns testes, percebi que era mau contato. A programação foi muito bem feita e o RTC funciona perfeitamente. Obrigado!
Olá.
Desculpe e confusão. Só estava ligando o SDA e o SCL nos pinos errados.
Agora está funcionando perfeitamente.
Parabéns pelo trabalho e obrigado.
Que bom que funcionou, Mauro! 🙂
Abraço e obrigado!
Boa noite.
Conforme comentei há pouco, o código funciona perfeitamente. Mas gostaria de sua ajuda: estou tentando fazer uns laços if-else de acordo com as horas, minutos e segundos. Entretanto, só consigo realizá-los dentro da função Mostrarelogio(). Mesmo tentando criar outras funções, ele não consegue ler os valores de horas, minutos e segundos.
Existe alguma maneira de fazer isso? Ficaria muito agradecido se pudesse me ajudar, pois estou realizando uns trabalhos para a faculdade.
Desde já agradeço!
Oi Thiago,
Conseguiu resolver ?
Abraço!
Oi thiago tive a mesma necessidade que tu é, o mesmo problema. Por enquanto eu resolvi duplicando a leitura do i2c dentro da nova função. Assim a leitura funciona fora da Mostrarelogio ().
Pessoal, as variáveis foram declaradas localmente, ou seja, dentro da função. Desta forma, os valores contidos nelas só são acessíveis dentro da função. Movam essas declarações para o início do programa, antes do setup, para que se tornem globais. que rodará na boa.
Boa Tarde, Há alguma diferença entre usar somente esses 2 componentes (o ds e o cristal) e usar o módulo especifico pra arduino?
vide img (http://www.emartee.com/Images/websites/emartee.com/back-1.JPG)
Oi Jhonata,
Nenhuma, o esquema de ligação é o mesmo.
Abraço!
Queria uma ajuda para acionar um rele a cada 40 min e desligar toda 00:00hs, voltando a contar as 6 hs da manhã novamente
Como faço para mostrar o relogio em um Display.
E tem como colocar um programa com relogio ,temperatura data .
Alguem ?
Como alterar o pino A4 A5 para A6 A7 na Lib
Boa noite, estou com um problema no código e gostaria de saber se me pode ajudar. no "monitor em vez de aparecer as horas e tudo certinho aparece assim "Data: 165/165/165 Hora : 45:165:165" e eu queria que aparecesse tudo direito como é claro, pode ajudar me ?
Oi Manoel,
Isso parece problema de mau contato, verifique as conexões do circuito, por favor.
Abraço!
Adilson
Amigos eu estou querendo montar um projetinho que usa um Arduino UC1
ARDUINO NANO . Eu não comheço nada sobre arduino . Ele grava o soft igual grava o Gravador de PIC ?
Boa tarde,
Não. É bem mais fácil do que mexer com PIC. Basicamente você conecta o Arduino no computador, instala a IDE e transfere o programa via cabo USB.
Abraço!
Adilson