{"id":4557,"date":"2019-12-02T11:26:54","date_gmt":"2019-12-02T13:26:54","guid":{"rendered":"https:\/\/www.usinainfo.com.br\/blog\/?p=4557"},"modified":"2020-02-17T14:31:46","modified_gmt":"2020-02-17T17:31:46","slug":"modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador","status":"publish","type":"post","link":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/","title":{"rendered":"M\u00f3dulo RTC DS1307 com Display 16&#215;2 I2C \u2013 Rel\u00f3gio Arduino com Despertador"},"content":{"rendered":"<p>A Comunica\u00e7\u00e3o I2C do M\u00f3dulo RTC \u00e9 uma ferramenta bastante \u00fatil quando optamos por projetos mais complexos, com grande volume de pinos e dados uma vez que possibilita a inclus\u00e3o de mais de um produto em apenas dois pinos digitais do m\u00f3dulo Arduino mais suas respectivas alimenta\u00e7\u00f5es.<\/p>\n<p>A facilidade e a utilidade de um projeto s\u00e3o de suma import\u00e2ncia para quem deseja executar um trabalho de qualidade e efici\u00eancia, para uma melhor visualiza\u00e7\u00e3o das realidades que envolvem um projeto de comunica\u00e7\u00e3o I2C, iremos utilizar como exemplo um Display LCD 16&#215;2 com Adaptador I2C e um RTC (Real Time Clock) DS1307.<\/p>\n<div id=\"attachment_4564\" style=\"width: 660px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4564\" class=\"wp-image-4564\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-1024x682.jpg\" alt=\"Projeto Rel\u00f3gio Arduino com Display e RTC\" width=\"650\" height=\"433\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-1024x682.jpg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-300x200.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-768x511.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-1536x1023.jpg 1536w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-2048x1364.jpg 2048w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg 1623w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a><p id=\"caption-attachment-4564\" class=\"wp-caption-text\">Projeto Rel\u00f3gio Arduino com Display e RTC<\/p><\/div>\n<p>A maioria dos MCUs utilizados para o desenvolvimento de projetos \u00e9 independente de tempo, ou seja, n\u00e3o dependem de informa\u00e7\u00f5es como data e hor\u00e1rio para o seu funcionamento e por mais que normalmente isto n\u00e3o interfira em nossos projetos, de vez em quando nos deparamos com ideias onde esta informa\u00e7\u00e3o \u00e9 fundamental e da\u00ed, \u00e9 necess\u00e1ria a inclus\u00e3o de um RTC.<\/p>\n<p>O M\u00f3dulo DS1307 \u00e9 perfeito para projetos que cont\u00eam registros de dados, armazenamento de tempos mais longos, temporizadores mais precisos, alarmes e at\u00e9 mesmo para projetos de Rel\u00f3gios Arduino e em casos como este, \u00e9 necess\u00e1ria a inclus\u00e3o de um display para visualiza\u00e7\u00e3o destas informa\u00e7\u00f5es, mas e se fosse poss\u00edvel fazer tudo isto com apenas dois pinos do Arduino?<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>M\u00f3dulo RTC DS1307<\/strong><\/h2>\n<p>O Real Time Clock, ou em sua tradu\u00e7\u00e3o o Rel\u00f3gio de Tempo Real, \u00e9 um produto que possui a capacidade de manter armazenadas informa\u00e7\u00f5es de horas, minutos e segundos, al\u00e9m de dia, m\u00eas e ano. Para quem possui d\u00favidas quanto ao seu funcionamento, o mesmo possui um ajuste para meses com menos de 31 dias e realiza a convers\u00e3o autom\u00e1tica de anos bissextos at\u00e9 o ano de 2100.<\/p>\n<p>Tendo como base de funcionamento o chip RTC DS1307 bastante preciso e de baixo custo, o m\u00f3dulo possui a capacidade de gerenciar todas as fun\u00e7\u00f5es de cronometragem atrav\u00e9s de uma interface I2C simples de dois fios, facilmente conectada a qualquer microcontrolador.<\/p>\n<div id=\"attachment_4558\" style=\"width: 360px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/chip-ds1307-e-eeprom-24c32.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4558\" class=\"wp-image-4558\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/chip-ds1307-e-eeprom-24c32.jpg\" alt=\"M\u00f3dulo Tempo Real \u2013 Chip DS1307 e 24C32\" width=\"350\" height=\"379\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/chip-ds1307-e-eeprom-24c32.jpg 600w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/chip-ds1307-e-eeprom-24c32-277x300.jpg 277w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a><p id=\"caption-attachment-4558\" class=\"wp-caption-text\">M\u00f3dulo Tempo Real \u2013 Chip DS1307 e 24C32<\/p><\/div>\n<p>Na imagem acima, al\u00e9m do Chip DS1307, tamb\u00e9m podemos observar a inclus\u00e3o do chip EEPROM 24C32 de 32 bytes da Atmel, que possibilita a armazenagem de dados, configura\u00e7\u00f5es e demais informa\u00e7\u00f5es e utiliza o mesmo barramento I2C com endere\u00e7o fixo em 0x50 HEX.<\/p>\n<p>O m\u00f3dulo RTC possui tamb\u00e9m uma entrada de bateria que mant\u00e9m a contagem de tempo mesmo que a energia principal do dispositivo seja interrompida, Com um sistema que monitora continuamente o status do pino VCC e detecta falhas de energia e alterna automaticamente para a fonte de backup.<\/p>\n<div id=\"attachment_4561\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/local-para-bateria-cr2032.fw_.png\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4561\" class=\"wp-image-4561\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/local-para-bateria-cr2032.fw_.png\" alt=\"Local para Instala\u00e7\u00e3o da Bateria CR2032 junto ao RTC\" width=\"400\" height=\"347\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/local-para-bateria-cr2032.fw_.png 750w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/local-para-bateria-cr2032.fw_-300x260.png 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-4561\" class=\"wp-caption-text\">Local para Instala\u00e7\u00e3o da Bateria CR2032 junto ao RTC<\/p><\/div>\n<p>Com este recurso, n\u00e3o \u00e9 necess\u00e1rio preocupar-se com quedas de energia, por exemplo, pois mesmo sem a alimenta\u00e7\u00e3o do microcontrolador o RTC ainda pode continuar acompanhando o tempo e permanecer configurado. Com um suporte de bateria 20mm, torna-se compat\u00edvel com qualquer bateria de l\u00edtio 3V do tipo CR2032, al\u00e9m de possuir uma trava que auxilia na remo\u00e7\u00e3o da bateria para eventuais manuten\u00e7\u00f5es e procedimentos.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>M\u00f3dulo RTC DS1307 com Sensor DS18B20<\/strong><\/h3>\n<p>Ao analisarmos o M\u00f3dulo RTC verificamos que o mesmo possui um local com tr\u00eas terminais isolados no canto superior ao lado do suporte da bateria, este local \u00e9 fornecido para a conex\u00e3o direta de um m\u00f3dulo Dallas DS18B20, veja abaixo o local espec\u00edfico para instala\u00e7\u00e3o e lembre-se que a ordem de instala\u00e7\u00e3o dos pinos deve coincidir com o desenho expresso na placa:<\/p>\n<div id=\"attachment_4566\" style=\"width: 360px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/sensor-ds18b20-junto-ao-ds1307.fw_.png\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4566\" class=\"wp-image-4566\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/sensor-ds18b20-junto-ao-ds1307.fw_.png\" alt=\"Local para Instala\u00e7\u00e3o do Sensor de Temperatura DS18B20\" width=\"350\" height=\"379\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/sensor-ds18b20-junto-ao-ds1307.fw_.png 600w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/sensor-ds18b20-junto-ao-ds1307.fw_-277x300.png 277w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a><p id=\"caption-attachment-4566\" class=\"wp-caption-text\">Local para Instala\u00e7\u00e3o do Sensor de Temperatura DS18B20<\/p><\/div>\n<p>Vale ressaltar que o sensor de temperatura \u00e9 um elemento adicional e n\u00e3o precisa ser obrigatoriamente instalado, por\u00e9m caso seja necess\u00e1rio ao projeto, ap\u00f3s a instala\u00e7\u00e3o do DS18B20 este ir\u00e1 apresentar os seus respectivos valores atrav\u00e9s do pino DS do M\u00f3dulo RTC e deve ser conectado a uma porta previamente configurada do Arduino.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Pinagem do M\u00f3dulo DS1307<\/strong><\/h3>\n<p>O m\u00f3dulo RTC DS1307 possui um total de sete pinos para alimenta\u00e7\u00e3o e comunica\u00e7\u00e3o sendo cinco desses, duplicados para auxiliar na instala\u00e7\u00e3o e utiliza\u00e7\u00e3o do mesmo. Na imagem abaixo podemos observar de forma descriminada todos os pinos dispon\u00edveis junto ao m\u00f3dulo e ap\u00f3s uma breve descri\u00e7\u00e3o dos mesmos:<\/p>\n<div id=\"attachment_4562\" style=\"width: 360px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-e-aliemntacao-ds1307.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4562\" class=\"wp-image-4562\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-e-aliemntacao-ds1307.jpg\" alt=\"Pinos para comunica\u00e7\u00e3o e Alimenta\u00e7\u00e3o do M\u00f3dulo RTC DS1307\" width=\"350\" height=\"382\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-e-aliemntacao-ds1307.jpg 550w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-e-aliemntacao-ds1307-275x300.jpg 275w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a><p id=\"caption-attachment-4562\" class=\"wp-caption-text\">Pinos para comunica\u00e7\u00e3o e Alimenta\u00e7\u00e3o do M\u00f3dulo RTC DS1307<\/p><\/div>\n<p><strong>SQ ou SQW<\/strong> \u2013 Pino que fornece uma frequ\u00eancia de onda quadrada de 1Hz, 4kHz, 8kHz ou 32kHz que pode ser utilizado atrav\u00e9s de programa\u00e7\u00e3o.<\/p>\n<p><strong>DS<\/strong> \u2013 Pino dispon\u00edvel para leitura de temperatura do sensor DS18B20. <strong>Obs:<\/strong> O sensor precisa ser instalado para gerar este valor.<\/p>\n<p><strong>SCL e SDA<\/strong> \u2013 Pinos de comunica\u00e7\u00e3o I2C utilizados para enviar e receber dados em conjunto com o microcontrolador.<\/p>\n<p><strong>VCC e GND<\/strong> \u2013 Pinos de alimenta\u00e7\u00e3o 3,3 ou 5V.<\/p>\n<p><strong>BAT<\/strong> \u2013 Entrada para c\u00e9lula de l\u00edtio de 3V ou outra fonte de alimenta\u00e7\u00e3o de mesma tens\u00e3o para manuten\u00e7\u00e3o dos dados caso haja problema com a alimenta\u00e7\u00e3o via pino ou bateria. Elemento opcional e pouco utilizado uma vez que a bateria CR2032 normalmente supre esta necessidade.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Produtos Utilizados no Teste<\/strong><\/h2>\n<p>&#8211; <a href=\"https:\/\/www.usinainfo.com.br\/placas-arduino\/arduino-uno-smd-4485.html\" target=\"_blank\" rel=\"noopener noreferrer\">Arduino Uno SMD + Cabo USB;<\/a><\/p>\n<p>&#8211; <a href=\"https:\/\/www.usinainfo.com.br\/rtc-arduino\/modulo-relogio-tempo-real-rtc-compacto-ds1307-2638.html\" target=\"_blank\" rel=\"noopener noreferrer\">M\u00f3dulo Rel\u00f3gio Tempo Real RTC Compacto &#8211; DS1307;<\/a><\/p>\n<p>&#8211; <a href=\"https:\/\/www.usinainfo.com.br\/display-arduino\/display-lcd-16x2-i2c-com-fundo-verde-5700.html\" target=\"_blank\" rel=\"noopener noreferrer\">Display LCD 16&#215;2 I2C com Fundo Verde;<\/a><\/p>\n<p>&#8211; <a href=\"https:\/\/www.usinainfo.com.br\/diversos\/buzzer-ativo-5v-bip-continuo-pci-12mm-2988.html\" target=\"_blank\" rel=\"noopener noreferrer\">Buzzer Ativo 5V Bip Cont\u00ednuo &#8211; PCI 12mm;<\/a><\/p>\n<p>&#8211; <a href=\"https:\/\/www.usinainfo.com.br\/protoboard-e-jumpers\/jumper-premium-para-protoboard-kit-c-20-pecas-2314.html\" target=\"_blank\" rel=\"noopener noreferrer\">Jumper Premium para Protoboard Macho-F\u00eamea 20 cm.<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Esquema de Liga\u00e7\u00e3o do Rel\u00f3gio Arduino com Display I2C<\/strong><\/h2>\n<p>O esquema de liga\u00e7\u00e3o do Projeto com M\u00f3dulo RTC \u00e9 bastante simples, diferencia-se apenas no fato de estar sendo utilizada uma comunica\u00e7\u00e3o I2C que compartilha seus pinos de funcionamento. No Arduino estes dois pinos s\u00e3o normalmente associados aos pinos Anal\u00f3gicos A4 e A5, por\u00e9m possuem acesso tamb\u00e9m em uma posi\u00e7\u00e3o oposta ap\u00f3s os pinos digitais, observe na imagem abaixo:<\/p>\n<div id=\"attachment_4563\" style=\"width: 858px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno.jpg\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4563\" class=\"wp-image-4563 size-large\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno-1024x427.jpg\" alt=\"Pinos de Comunica\u00e7\u00e3o I2C do Arduino UNO\" width=\"848\" height=\"354\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno-1024x427.jpg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno-300x125.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno-768x320.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/pinos-de-comunicacao-i2c-do-arduino-uno.jpg 1200w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/a><p id=\"caption-attachment-4563\" class=\"wp-caption-text\">Pinos de Comunica\u00e7\u00e3o I2C do Arduino UNO<\/p><\/div>\n<p>Como podemos ver na imagem, estes pinos elencados possuem as mesmas fun\u00e7\u00f5es, ent\u00e3o se alfo for conectado nos pinos da esquerda ou nos pinos da direita, estar\u00e3o correspondendo aos mesmos pinos de comunica\u00e7\u00e3o I2C, o que consequentemente faz destes, pinos de comunica\u00e7\u00e3o anal\u00f3gica.<\/p>\n<p>O esquema de liga\u00e7\u00e3o \u00e9 extremamente simples, al\u00e9m dois pinos de alimenta\u00e7\u00e3o para os m\u00f3dulos e os dois pinos de comunica\u00e7\u00e3o I2C, inclui-se apenas um buzzer para emiss\u00e3o de sinais sonoros do despertador, veja na imagem abaixo:<\/p>\n<div id=\"attachment_4560\" style=\"width: 760px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador.jpg\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4560\" class=\"wp-image-4560\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador-1024x557.jpg\" alt=\"Esquema de liga\u00e7\u00e3o do Rel\u00f3gio Arduino com Despertador\" width=\"750\" height=\"408\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador-1024x557.jpg 1024w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador-300x163.jpg 300w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador-768x418.jpg 768w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador-1536x835.jpg 1536w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/esquema-eletrico-relogio-arduino-com-despertador.jpg 1800w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/a><p id=\"caption-attachment-4560\" class=\"wp-caption-text\">Esquema de liga\u00e7\u00e3o do Rel\u00f3gio Arduino com Despertador<\/p><\/div>\n<p>O presente projeto ser\u00e1 dividido em tr\u00eas partes, inicialmente ser\u00e1 desenvolvido um c\u00f3digo para verifica\u00e7\u00e3o do endere\u00e7o de cada um dos dispositivos I2C, ap\u00f3s iremos configurar o hor\u00e1rio do RTC, procedimento que deve ser desenvolvido uma \u00fanica vez salvos os momentos em que o mesmo fique sem nenhuma alimenta\u00e7\u00e3o, nem mesmo a bateria, caso contr\u00e1rio o hor\u00e1rio ficar\u00e1 armazenado continuamente.<\/p>\n<p>A terceira parte ser\u00e1 respons\u00e1vel pela configura\u00e7\u00e3o do Display e do RTC para oportunizar e acionar o alarme sonoro sempre que o hor\u00e1rio pr\u00e9-programado for atingido.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Scanner I2C para Leitura de Endere\u00e7os<\/strong><\/h2>\n<p>O primeiro passo fundamental para o desenvolvimento de um projeto que utiliza equipamentos de comunica\u00e7\u00e3o I2C \u00e9 descobrir o endere\u00e7o de cada um destes dispositivos. Esta informa\u00e7\u00e3o \u00e9 bastante importante, uma vez que \u00e9 ela quem ir\u00e1 diferenciar o local de origem de cada um dos dados fornecidos ao Arduino.<\/p>\n<p>Para realizarmos este procedimento iremos utilizar o seguinte c\u00f3digo abaixo, um c\u00f3digo padr\u00e3o que \u00e9 utilizado para este tipo de procedimento, mas que est\u00e1 totalmente traduzido e pronto para uso, segue abaixo:<\/p>\n<pre class=\"lang:c# decode:true\">\/\/ Scanner I2C Arduino \u2013 Projeto Rel\u00f3gio Arduino com Despertador\r\n#include &lt;Wire.h&gt;\r\n\r\nvoid setup()\u00a0 {\r\n\u00a0 Wire.begin();\r\n\u00a0 Serial.begin(9600);\r\n\u00a0 Serial.println(\"Scanner I2C\");\r\n}\r\n\r\nvoid loop() {\r\n\u00a0 byte erro, endereco;\r\n\u00a0 int dispositivos;\r\n\r\n\u00a0 Serial.println(\"Procurando Dispositivo I2C ...\");\r\n\r\n\u00a0 dispositivos = 0;\r\n\r\n\u00a0 for (endereco = 1; endereco &lt; 127; endereco++ )\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0 Wire.beginTransmission(endereco);\r\n\u00a0\u00a0\u00a0 erro = Wire.endTransmission();\r\n\r\n\u00a0\u00a0\u00a0 if (erro == 0)\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.print(\"Dispositivo I2C encontrado. Endereco 0x\");\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (endereco &lt; 16)\u00a0\u00a0 Serial.print(\"0\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.print(endereco, HEX);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.println(\"\u00a0 !\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 dispositivos++;\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 else if (erro == 4)\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.print(\"Erro desconhecido no Endereco 0x\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (endereco &lt; 16)\u00a0\u00a0\u00a0 Serial.print(\"0\");\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n\r\n\u00a0 if (dispositivos == 0)\r\n\u00a0\u00a0\u00a0 Serial.println(\"Nenhum dispositivo I2C encontrado\\n\");\r\n\u00a0 else\r\n\u00a0\u00a0\u00a0 Serial.println(\"Scanneamento Concluido\\n\");\r\n\u00a0\u00a0\u00a0 while(Serial);\r\n}<\/pre>\n<p>Este c\u00f3digo utiliza apenas uma biblioteca, j\u00e1 instalada automaticamente junto ao software Arduino e que n\u00e3o necessita ser inclu\u00edda, atrav\u00e9s da fun\u00e7\u00e3o while(Serial); delimitei o loop de leitura para apenas uma vez, ap\u00f3s esta \u00e9 necess\u00e1rio fechar a tela do monitor serial e reabri-la para verificar alguma altera\u00e7\u00e3o nos endere\u00e7os, outra op\u00e7\u00e3o \u00e9 alterar este procedimento por um delay, por exemplo.<\/p>\n<div id=\"attachment_4559\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/enderecos-obtidos-no-scanner-i2c.jpg\" data-rel=\"lightbox-image-7\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4559\" class=\"wp-image-4559\" title=\"\" src=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/enderecos-obtidos-no-scanner-i2c.jpg\" alt=\"Endere\u00e7os obtidos na leitura junto ao Scanner I2C\" width=\"600\" height=\"390\" srcset=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/enderecos-obtidos-no-scanner-i2c.jpg 726w, https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/enderecos-obtidos-no-scanner-i2c-300x195.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-4559\" class=\"wp-caption-text\">Endere\u00e7os obtidos na leitura junto ao Scanner I2C<\/p><\/div>\n<p>Acima, podemos observar os endere\u00e7os obtidos na leitura de endere\u00e7os junto ao Scanner I2C, estas informa\u00e7\u00f5es ser\u00e3o muito importantes para o desenvolvimento do nosso projeto quando trabalharmos em projetos mais complexos.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Configurando hor\u00e1rio junto ao M\u00f3dulo RTC<\/strong><\/h2>\n<p>A configura\u00e7\u00e3o do hor\u00e1rio pode ser feita uma \u00fanica vez j\u00e1 que o M\u00f3dulo RTC possui a capacidade de armazenar os dados em sua memoria interna com o auxilio da Bateria CR2032, ent\u00e3o mesmo que cesse a energia de alimenta\u00e7\u00e3o do seu projeto, este continuar\u00e1 marcando o hor\u00e1rio corretamente quando voltar.<\/p>\n<p>Mesmo com esta capacidade, infelizmente o M\u00f3dulo RTC n\u00e3o v\u00eam configurado de fabrica, desta maneira \u00e9 necess\u00e1rio o desenvolvimento de um c\u00f3digo espec\u00edfico que execute a configura\u00e7\u00e3o deste hor\u00e1rio. A configura\u00e7\u00e3o do hor\u00e1rio pode ser desenvolvida tanto de maneira manual, utilizando o hor\u00e1rio em espec\u00edfico desejado, quanto de forma autom\u00e1tica tendo como base o hor\u00e1rio de compila\u00e7\u00e3o do c\u00f3digo no Arduino.<\/p>\n<p>Para realizar a compila\u00e7\u00e3o do c\u00f3digo, \u00e9 necess\u00e1ria a utiliza\u00e7\u00e3o das seguintes bibliotecas:<\/p>\n<p>Biblioteca LiquidCrystal I2C: <a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/09\/LiquidCrystal_I2C.zip\">DOWNLOAD AQUI<\/a>.<\/p>\n<p>Biblioteca RTClib: <a href=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/RTClib.zip\">DOWNLOAD AQUI<\/a>.<\/p>\n<p>Abaixo, segue o c\u00f3digo que executa ambas as op\u00e7\u00f5es, por\u00e9m vale lembrar que deve-se optar por uma delas e a outra deve ficar temporariamente como coment\u00e1rio, ou seja, deve conter as duas \u201c\/\/\u201d antes do comando para n\u00e3o interferir, veja:<\/p>\n<pre class=\"lang:c# decode:true\">#include &lt;LiquidCrystal_I2C.h&gt;\u00a0\u00a0\u00a0 \/\/ Inclui a Biblioteca\r\n#include &lt;RTClib.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inclui a Biblioteca\r\n\r\nRTC_DS1307 rtc;\r\nLiquidCrystal_I2C lcd(0x27, 16, 2);\u00a0\u00a0 \/\/ Inicia o display 16x2 no endere\u00e7o 0x27\r\n\r\nvoid setup()\u00a0 {\r\n\u00a0 rtc.begin();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o m\u00f3dulo RTC\r\n\r\n\u00a0 rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\u00a0\u00a0\u00a0\u00a0 \/\/ Ajuste Autom\u00e1tico da hora e data\r\n\u00a0 \/\/rtc.adjust(DateTime(2019, 11, 29, 10, 23, 00));\u00a0\u00a0 \/\/ Ajuste Manual (Ano, M\u00eas, Dia, Hora, Min, Seg)\r\n\r\n\u00a0 lcd.init();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o Display\r\n\u00a0 lcd.backlight();\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o Backlight\r\n}\r\n\r\nvoid loop()\u00a0\u00a0 {\r\n\u00a0 DateTime now = rtc.now();\r\n\r\n\u00a0 lcd.setCursor(1, 0);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Posiciona o cursor na primeira linha\r\n\u00a0 lcd.print(\"Hora: \");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto \"Hora: \"\r\n\u00a0 lcd.print(rtc.now().hour()); \u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Imprime a Hora\r\n\u00a0 lcd.print(\":\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().minute());\u00a0\u00a0\u00a0 \/\/ Imprime o Minuto\r\n\u00a0 lcd.print(\":\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().second());\u00a0\u00a0\u00a0 \/\/ Imprime o Segundo\r\n\r\n\u00a0 lcd.setCursor(0, 1);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Posiciona o cursor na segunda linha\r\n\u00a0 lcd.print(\"Data: \");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().day());\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Dia\r\n\u00a0 lcd.print(\"\/\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().month());\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o M\u00eas\r\n\u00a0 lcd.print(\"\/\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().year());\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Ano\r\n\r\n\u00a0 delay(1000);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Aguarda 1 segundo e reinicia\r\n\u00a0 lcd.clear();\r\n}<\/pre>\n<p>O exemplo citado \u00e9 o que segue:<\/p>\n<pre class=\"lang:c# decode:true\">rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\u00a0\u00a0\u00a0\u00a0 \/\/ Ajuste Autom\u00e1tico da hora e data\r\n\u00a0 \/\/rtc.adjust(DateTime(2019, 11, 29, 10, 23, 00));\u00a0\u00a0 \/\/ Ajuste Manual (Ano, M\u00eas, Dia, Hora, Min, Seg)<\/pre>\n<p>Desta maneira em espec\u00edfico, ser\u00e1 realizada a configura\u00e7\u00e3o autom\u00e1tica atrav\u00e9s do hor\u00e1rio de compila\u00e7\u00e3o, para realizar a configura\u00e7\u00e3o manual devemos tirar as barras antes da segunda fun\u00e7\u00e3o e inclu\u00ed-las na primeira, de forma que fique do seguinte modo:<\/p>\n<pre class=\"lang:c# decode:true\">\/\/rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\u00a0\u00a0\u00a0\u00a0 \/\/ Ajuste Autom\u00e1tico da hora e data\r\n\u00a0 rtc.adjust(DateTime(2019, 11, 29, 10, 23, 00));\u00a0\u00a0 \/\/ Ajuste Manual (Ano, M\u00eas, Dia, Hora, Min, Seg)<\/pre>\n<p>Assim como descrito no coment\u00e1rio ap\u00f3s o comando, os n\u00fameros de dia e hor\u00e1rio s\u00e3o dispostos de maneira que siga a seguinte ordem: Ano, m\u00eas, dia, hora, minuto e segundo, ou seja, da maneira que est\u00e1 temos o dia 29 de novembro de 2019 (20\/11\/2019) com o hor\u00e1rio das 10:23:00.<\/p>\n<p>As demais informa\u00e7\u00f5es deste c\u00f3digo encontram-se todas citadas atrav\u00e9s dos coment\u00e1rios e possuem f\u00e1cil compreens\u00e3o.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Configurando o Despertador Arduino com M\u00f3dulo RTC<\/strong><\/h2>\n<p>A configura\u00e7\u00e3o do despertador utiliza um c\u00f3digo bastante semelhante ao especificado acima, por\u00e9m neste, eliminamos o ajuste dia e hora, j\u00e1 que j\u00e1 foram realizados anteriormente e adicionamos uma fun\u00e7\u00e3o que verifica a hora e aciona um elemento de sinal sonoro, o qual utilizamos um Buzzer Ativo 5V ligado diretamente no Arduino.<\/p>\n<p>O c\u00f3digo est\u00e1 totalmente comentado e \u00e9 de f\u00e1cil adapta\u00e7\u00e3o de acordo com cada necessidade individual, veja abaixo o c\u00f3digo completo e ap\u00f3s uma prev\u00ea explica\u00e7\u00e3o de algumas fun\u00e7\u00f5es:<\/p>\n<pre class=\"lang:c# decode:true\">#include &lt;LiquidCrystal_I2C.h&gt;\u00a0\u00a0\u00a0 \/\/ Inclui a Biblioteca\r\n#include &lt;RTClib.h&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inclui a Biblioteca\r\n\r\nRTC_DS1307 rtc;\r\nLiquidCrystal_I2C lcd(0x27, 16, 2);\u00a0\u00a0 \/\/ Inicia o display 16x2 no endere\u00e7o 0x27\r\n\r\n#define buzzer 11\u00a0\u00a0 \/\/ Define o buzzer como pino 11\r\n\r\nint Hor;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia a vari\u00e1vel Hor\r\nint Min;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia a vari\u00e1vel Min\r\nint Seg;\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Inicia a vari\u00e1vel Seg\r\n\r\nvoid setup()\u00a0 {\r\n\u00a0 pinMode(buzzer, OUTPUT);\r\n\u00a0 rtc.begin();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o m\u00f3dulo RTC\r\n\u00a0 lcd.init();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o Display\r\n\u00a0 lcd.backlight();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Inicia o Backlight\r\n}\r\n\r\nvoid loop()\u00a0\u00a0 {\r\n\u00a0 DateTime now = rtc.now();\r\n\u00a0 Hor = rtc.now().hour();\u00a0\u00a0\u00a0\u00a0 \/\/ Chama o hor\u00e1rio de Hor\r\n\u00a0 Min = rtc.now().minute();\u00a0\u00a0 \/\/ Chama o minuto de Min\r\n\u00a0 Seg = rtc.now().second();\u00a0\u00a0 \/\/ Chama os segundos de Seg\r\n\r\n\u00a0 \/\/ Define o hor\u00e1rio do despertador e executa o som do buzzer\r\n\u00a0 if ( Hor == 15 &amp;&amp;\u00a0 Min == 7) {\r\n\u00a0\u00a0\u00a0 digitalWrite(buzzer, HIGH);\r\n\u00a0\u00a0\u00a0 delay(1000);\r\n\u00a0\u00a0\u00a0 digitalWrite(buzzer, LOW);\r\n\u00a0\u00a0\u00a0 delay(1000);\r\n\u00a0 }\r\n\r\n\u00a0 lcd.setCursor(1, 0);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Posiciona o cursor na primeira linha\r\n\u00a0 lcd.print(\"Hora: \");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto \"Hora: \"\r\n\u00a0 lcd.print(Hor);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Imprime a Hora\r\n\u00a0 lcd.print(\":\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(Min);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Minuto\r\n\u00a0 lcd.print(\":\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(Seg);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Segundo\r\n\r\n\u00a0 lcd.setCursor(0, 1);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Posiciona o cursor na segunda linha\r\n\u00a0 lcd.print(\"Data: \");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().day());\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Dia\r\n\u00a0 lcd.print(\"\/\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().month());\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o M\u00eas\r\n\u00a0 lcd.print(\"\/\");\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o texto entre aspas\r\n\u00a0 lcd.print(rtc.now().year());\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Imprime o Ano\r\n\r\n\u00a0 delay(1000);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Aguarda 1 segundo e reinicia\r\n\u00a0 lcd.clear();\r\n}<\/pre>\n<p>Desta vez, para diferenciar um pouco os c\u00f3digos, nomeamos as vari\u00e1veis de hora, minuto e segundo atrav\u00e9s do seguinte comando:<\/p>\n<pre class=\"lang:c# decode:true\">DateTime now = rtc.now();\r\n\u00a0 Hor = rtc.now().hour();\u00a0\u00a0\u00a0\u00a0 \/\/ Chama o hor\u00e1rio de Hor\r\n\u00a0 Min = rtc.now().minute();\u00a0\u00a0 \/\/ Chama o minuto de Min\r\n\u00a0 Seg = rtc.now().second();\u00a0\u00a0 \/\/ Chama os segundos de Seg<\/pre>\n<p>Desta maneira reduzimos um pouco os comandos e trabalhamos a nomea\u00e7\u00e3o de vari\u00e1veis em elementos fixos, ou seja, no caso acima, dizemos que sempre que no c\u00f3digo estiver presente o texto \u201cHor\u201d, este ir\u00e1 relacionar-se com a vari\u00e1vel\u00a0 rtc.now().hour() e\u00a0 apresentar os respectivos valores desta.<\/p>\n<p>Quanto \u00e0 defini\u00e7\u00e3o do hor\u00e1rio do despertados, esta \u00e9 realizada atrav\u00e9s da fun\u00e7\u00e3o abaixo, a qual delimita um hor\u00e1rio e um minuto espec\u00edfico para acionamento do buzzer e tem como dura\u00e7\u00e3o de acionamento o intervalo de um minuto, teoricamente enquanto a Hor e o Min delimitados foram o mesmo do c\u00f3digo, este mantem-se acionado, veja:<\/p>\n<pre class=\"lang:c# decode:true\">if ( Hor == 15 &amp;&amp;\u00a0 Min == 7) {\r\n\u00a0\u00a0\u00a0 digitalWrite(buzzer, HIGH);\r\n\u00a0\u00a0\u00a0 delay(1000);\r\n\u00a0\u00a0\u00a0 digitalWrite(buzzer, LOW);\r\n\u00a0\u00a0\u00a0 delay(1000);<\/pre>\n<p>Tendo a fun\u00e7\u00e3o \u201cif\u201d acima, temos que sempre que o hor\u00e1rio for 15:07 o buzzer ir\u00e1 acionar-se por um per\u00edodo de um segundo e deligar-se no mesmo per\u00edodo continuamente at\u00e9 finalizar o seu tempo de a\u00e7\u00e3o. Uma observa\u00e7\u00e3o importante \u00e9 que no c\u00f3digo tanto hora quanto minuto n\u00e3o devem conter o 0 de unidade, ex 4, 7 ou 9, apenas de dezenas como 10 ou 20, por exemplo.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Conclus\u00e3o<\/strong><\/h2>\n<p>O projeto para desenvolvimento de um despertador com M\u00f3dulo RTC \u00e9 extremamente simples, mesmo que aparente ser parcialmente complicado, atrav\u00e9s das respectivas bibliotecas este se mostra direto e preciso. O Arduino em conjunto com o M\u00f3dulo RTC pode ser utilizado para os mais diversificados projetos e \u00e9 facilmente configurado.<\/p>\n<p>O despertador desenvolvido trabalha com um tempo de acionamento fixo, enquanto o hor\u00e1rio estipulado por o mesmo, este ir\u00e1 manter-se acionado, um fator o qual explica n\u00e3o setarmos os segundos, uma vez que o despertador iria acionar-se apenas naquela hora minuto e segundo e ap\u00f3s finalizar sua execu\u00e7\u00e3o.<\/p>\n<p>Para quem desejar, fica o desafio de incluir ao projeto um push button, por exemplo, para realizar a fun\u00e7\u00e3o de desligar o despertador, uma fun\u00e7\u00e3o para controle de backlight para inclus\u00e3o de sinais luminosos e tamb\u00e9m outras fun\u00e7\u00f5es que complementam o projeto.<\/p>\n<p>Ao realizar o seu projeto, n\u00e3o se esque\u00e7a de deixar o seu coment\u00e1rio com a sua experi\u00eancia, compartilhar as fun\u00e7\u00f5es que adicionou e as melhorias que implementou. Use e abuse das capacidades do Arduino em seus projetos, explore todas as fun\u00e7\u00f5es e aqui deixo um desafio, que tal adicionar mais um elemento de comunica\u00e7\u00e3o I2C ao seu projeto?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Comunica\u00e7\u00e3o I2C do M\u00f3dulo RTC \u00e9 uma ferramenta bastante \u00fatil quando optamos por projetos mais complexos, com grande volume de pinos e dados uma vez que possibilita a inclus\u00e3o de mais de um produto em apenas dois pinos digitais do m\u00f3dulo Arduino mais suas respectivas alimenta\u00e7\u00f5es. A facilidade e a utilidade de um projeto s\u00e3o de suma import\u00e2ncia para quem deseja executar um trabalho de qualidade e efici\u00eancia, para uma melhor visualiza\u00e7\u00e3o das realidades que envolvem um projeto de comunica\u00e7\u00e3o I2C, iremos utilizar como exemplo um Display LCD 16&#215;2 com Adaptador I2C e um RTC (Real Time Clock) DS1307. A maioria dos MCUs utilizados para o desenvolvimento de projetos \u00e9 independente de tempo, ou seja, n\u00e3o dependem de informa\u00e7\u00f5es [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":4564,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-4557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>M\u00f3dulo RTC DS1307 - Rel\u00f3gio Arduino com Despertador - Blog Usinainfo<\/title>\n<meta name=\"description\" content=\"Veja no Blog da Usinainfo como desenovlver um Rel\u00f3gio Arduino com Desperador atrav\u00e9s do M\u00f3dulo RTC DS1307 e Arduino UNO SMD.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00f3dulo RTC DS1307 - Rel\u00f3gio Arduino com Despertador - Blog Usinainfo\" \/>\n<meta property=\"og:description\" content=\"Veja no Blog da Usinainfo como desenovlver um Rel\u00f3gio Arduino com Desperador atrav\u00e9s do M\u00f3dulo RTC DS1307 e Arduino UNO SMD.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Usinainfo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/pt-br.facebook.com\/faceusinainfo\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-02T13:26:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-17T17:31:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1623\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matheus Gebert Straub\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matheus Gebert Straub\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M\u00f3dulo RTC DS1307 - Rel\u00f3gio Arduino com Despertador - Blog Usinainfo","description":"Veja no Blog da Usinainfo como desenovlver um Rel\u00f3gio Arduino com Desperador atrav\u00e9s do M\u00f3dulo RTC DS1307 e Arduino UNO SMD.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/","og_locale":"pt_BR","og_type":"article","og_title":"M\u00f3dulo RTC DS1307 - Rel\u00f3gio Arduino com Despertador - Blog Usinainfo","og_description":"Veja no Blog da Usinainfo como desenovlver um Rel\u00f3gio Arduino com Desperador atrav\u00e9s do M\u00f3dulo RTC DS1307 e Arduino UNO SMD.","og_url":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/","og_site_name":"Blog Usinainfo","article_publisher":"https:\/\/pt-br.facebook.com\/faceusinainfo\/","article_published_time":"2019-12-02T13:26:54+00:00","article_modified_time":"2020-02-17T17:31:46+00:00","og_image":[{"width":1623,"height":1080,"url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg","type":"image\/jpeg"}],"author":"Matheus Gebert Straub","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Matheus Gebert Straub","Est. tempo de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#article","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/"},"author":{"name":"Matheus Gebert Straub","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/22905ec7c8d47a176b7c2320b66cd075"},"headline":"M\u00f3dulo RTC DS1307 com Display 16&#215;2 I2C \u2013 Rel\u00f3gio Arduino com Despertador","datePublished":"2019-12-02T13:26:54+00:00","dateModified":"2020-02-17T17:31:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/"},"wordCount":2396,"commentCount":4,"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg","articleSection":["Arduino"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/","url":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/","name":"M\u00f3dulo RTC DS1307 - Rel\u00f3gio Arduino com Despertador - Blog Usinainfo","isPartOf":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#primaryimage"},"image":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#primaryimage"},"thumbnailUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg","datePublished":"2019-12-02T13:26:54+00:00","dateModified":"2020-02-17T17:31:46+00:00","author":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/22905ec7c8d47a176b7c2320b66cd075"},"description":"Veja no Blog da Usinainfo como desenovlver um Rel\u00f3gio Arduino com Desperador atrav\u00e9s do M\u00f3dulo RTC DS1307 e Arduino UNO SMD.","breadcrumb":{"@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#primaryimage","url":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg","contentUrl":"https:\/\/www.usinainfo.com.br\/blog\/wp-content\/uploads\/2019\/12\/projeto-relogio-arduino-com-rtc-ds1307-scaled.jpg","width":1623,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.usinainfo.com.br\/blog\/modulo-rtc-ds1307-com-display-16x2-i2c-relogio-arduino-com-despertador\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.usinainfo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"M\u00f3dulo RTC DS1307 com Display 16&#215;2 I2C \u2013 Rel\u00f3gio Arduino com Despertador"}]},{"@type":"WebSite","@id":"https:\/\/www.usinainfo.com.br\/blog\/#website","url":"https:\/\/www.usinainfo.com.br\/blog\/","name":"Blog Usinainfo","description":"Usinainfo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.usinainfo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.usinainfo.com.br\/blog\/#\/schema\/person\/22905ec7c8d47a176b7c2320b66cd075","name":"Matheus Gebert Straub","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/04cea122706965cd2cb1d4f867fae66443684a4df025a4ba047491d6fad7c05e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/04cea122706965cd2cb1d4f867fae66443684a4df025a4ba047491d6fad7c05e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/04cea122706965cd2cb1d4f867fae66443684a4df025a4ba047491d6fad7c05e?s=96&d=mm&r=g","caption":"Matheus Gebert Straub"},"description":"Mec\u00e2nico de Manuten\u00e7\u00e3o com Experi\u00eancia em Sistemas Embarcados, Automa\u00e7\u00e3o e Desenvolvimento de Projetos; Graduado nos Cursos de Matem\u00e1tica - URI e F\u00edsica - UFFS.","url":"https:\/\/www.usinainfo.com.br\/blog\/author\/matheus\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/4557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4557"}],"version-history":[{"count":2,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/4557\/revisions"}],"predecessor-version":[{"id":4569,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/posts\/4557\/revisions\/4569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media\/4564"}],"wp:attachment":[{"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.usinainfo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}