<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DS1307 Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/ds1307/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/ds1307/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 09 Aug 2021 20:22:27 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>DS1307 Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/ds1307/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aggiungere un RTC al Raspberry PI</title>
		<link>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/</link>
					<comments>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 18 Jan 2021 07:00:35 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[Clock]]></category>
		<category><![CDATA[DS1307]]></category>
		<category><![CDATA[DS3231]]></category>
		<category><![CDATA[RTC]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6461</guid>

					<description><![CDATA[<p>RTC per applicazioni offline Data e ora del nostro Raspberry vengono sincronizzate all&#8217;avvio del sistema operativo tramite server NTP. In tutte le altre applicazioni dove non avete un accesso ad internet la data e l&#8217;ora sono impostate di default ma non corrisponderanno a valori corretti....</p>
<p>The post <a href="https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/">Aggiungere un RTC al Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>RTC per applicazioni offline</h1>
<p>Data e ora del nostro Raspberry vengono sincronizzate all&#8217;avvio del sistema operativo tramite server NTP. In tutte le altre applicazioni dove non avete un accesso ad internet la data e l&#8217;ora sono impostate di default ma non corrisponderanno a valori corretti. In questi casi una soluzione è utilizzare un rtc che in caso di spegnimento della scheda tenga sempre aggiornato il dato di data e tempo.</p>
<p>Vediamo come fare.</p>
<p>La prima cosa è procurarci un modulo rtc pronto all&#8217;uso oppure realizzarne uno partendo dai singoli componenti. Nel mio caso visto il costo e la praticità di installazione ho scelto un rtc già assemblato. Il modello si basa sul chip DS3231 è ha un pratico connettore che permette l&#8217;installazione connettendolo direttamente sui pin header del raspberry;</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6469" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi.jpg" alt="RTC Raspberry PI" width="481" height="460" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi.jpg 481w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi-300x287.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rtc_pi-150x143.jpg 150w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<p style="text-align: center;"><a href="https://amzn.to/3qk1W70">DS3231 ad Alta precisione modulo di Memoria Orologio RTC per Arduino Raspberry Pi</a></p>
<p>Nell&#8217;immagine seguente potete osservare come deve essere installato il modulo rtc ds3231. </p>
<p><img decoding="async" class="aligncenter size-full wp-image-6491" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc.jpg" alt="" width="703" height="355" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc.jpg 703w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-300x151.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-150x76.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/raspi_rtc-585x295.jpg 585w" sizes="(max-width: 703px) 100vw, 703px" /></p>
<p><span id="more-6461"></span></p>
<h2>Configurazione del dispositivo</h2>
<p>La comunicazione tra il DS3231 e il Raspberry avviene utilizzando il bus I2C. Procediamo alla sua attivazione eseguendo il comando:</p>
<pre>sudo raspi-config</pre>
<p>Viene avviata la schermata del <strong>Raspberry PI Software Configuration Tool</strong>.  Portiamoci sulla voce <strong>Interface Options</strong> e premiamo invio, nella schermata successiva selezioniamo la voce <strong>I2C</strong>. Confermiamo rispondendo affermativamente e attendiamo l&#8217;attivazione del bus I2C:</p>
<figure id="attachment_6477" aria-describedby="caption-attachment-6477" style="width: 661px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6477 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config.jpg" alt="" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Raspi_Config-585x370.jpg 585w" sizes="(max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6477" class="wp-caption-text">Interfaccia Raspi-Config</figcaption></figure>
<figure id="attachment_6473" aria-describedby="caption-attachment-6473" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6473 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable.jpg" alt="Seleziona voce I2C" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6473" class="wp-caption-text">Seleziona voce I2C</figcaption></figure>
<figure id="attachment_6474" aria-describedby="caption-attachment-6474" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6474 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm.jpg" alt="Conferma attivazione bus i2c" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6474" class="wp-caption-text">Conferma attivazione bus i2c</figcaption></figure>
<figure id="attachment_6475" aria-describedby="caption-attachment-6475" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6475 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok.jpg" alt="Conferma attivazione bus i2c" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_confirm_ok-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6475" class="wp-caption-text">Conferma attivazione bus i2c</figcaption></figure>
<figure id="attachment_6476" aria-describedby="caption-attachment-6476" style="width: 661px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6476 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish.jpg" alt="Termina procedura guidata attivazione bus I2C" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2c_enable_finish-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /><figcaption id="caption-attachment-6476" class="wp-caption-text">Termina procedura guidata attivazione bus I2C</figcaption></figure>
<p>Dopo aver terminato l&#8217;attivazione del bus, riavviamo il sistema operativo con il comando seguente:</p>
<pre>sudo reboot</pre>
<p>Dopo il riavviamo apriamo una nuova finestra terminale e utilizzando programma i2cdetect possiamo verificare che il modulo rtc e il bus I2C stiano funzionando:</p>
<pre>i2cdetect -y 1</pre>
<p>dovremmo avere una schermata simile alla seguente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6479" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect.jpg" alt="programma i2cdetect" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/i2cdetect-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>il programma i2cdetect non fa altro che scansionare il bus I2C alla ricerca di dispositivi collegati. Nel nostro caso ha trovato un dispositivo all&#8217;indirizzo 0x68 che corrisponde all&#8217;unico dispositivo collegato al raspberry, ovvero il modulo DS3231.</p>
<p>Per sicurezza possiamo verificare sul datasheet dell&#8217;rtc l&#8217;indirizzo del dispositivo.</p>
<p>A questo punto possiamo caricare sul kernel linux il modulo rtc ds3232 (compatibile con il DS3231) eseguendo il seguente commando:</p>
<pre>sudo modprobe rtc-ds3232</pre>
<p>premiamo invio per eseguire il commando:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6481" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe.jpg" alt="modprobe ds3231" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modprobe-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>a questo punto dobbiamo creare un nuovo device con indirizzo 0x68 ed inserirlo nel bus I2C. Per eseguire questa serie di commandi dobbiamo loggarci come utente root digitando il comando seguente:</p>
<pre>su</pre>
<p>inseriamo la password per l&#8217;utente root.</p>
<blockquote>
<p>Nel caso in cui non si disponga di una pssword per l&#8217;utente root è necessario crearla digitando il comando:</p>
<p>sudo passwd root</p>
<p>Digitiamo una nuova password per l&#8217;utente root e confermiamo ripetendola nuovamente.</p>
</blockquote>
<p>Ora che abbiamo i privilegi del superuser digitiamo il seguente commando:</p>
<pre>echo ds3232 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device</pre>
<p>premiamo invio. Digitiamo il comando <strong>exit</strong> per ritornare all&#8217;utente <strong>pi</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6482" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device.jpg" alt="add new device to bus i2c" width="741" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device.jpg 741w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-300x169.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-150x85.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/new_device-585x330.jpg 585w" sizes="auto, (max-width: 741px) 100vw, 741px" /></p>
<h2>Impostare data e ora dell&#8217;RTC</h2>
<p>Dopo le precedenti istruzioni il sistema carica automaticamente i dati correnti di data e ora sull&#8217;RTC. Se questi dati corrispondono ai valori corretti non dobbiamo far altro che leggere i dati con il seguente comando:</p>
<pre>sudo hwclock -r</pre>
<p>in alternativa possiamo settare i valori come desideriamo eseguendo questo comando:</p>
<pre>sudo hwclock --set --date "Fri Jan 1 15:00:00 CET 2021"</pre>
<p>Tutte queste impostazioni non rimangono memorizzate al successivo riavvio del sistema operativo e quindi necessario inserire queste istruzioni su un file che viene lanciato durante le fasi di boot come ad esempio il file rc.local, quindi procediamo ad eseguire le seguenti istruzioni:</p>
<p>Modifichiamo il files modules per caricare sul kernel il modulo rtc-ds3232</p>
<pre>sudo nano /etc/modules</pre>
<p>inseriamo alla fine del file la seguente stringa:</p>
<pre>rtc-ds3232</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6484" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules.jpg" alt="file modules" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/modules-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>salviamo il file con la combinazione di tasti <strong>crtl+o</strong>  e usciamo con <strong>ctrl+x</strong></p>
<p>Ora apriamo il file <strong>rc.local</strong>:</p>
<pre>sudo nano /etc/rc.local</pre>
<p>portiamoci con puntatore prima dell&#8217;istruzione <strong>exit 0</strong> e aggiungiamo le seguenti istruzioni:</p>
<pre>echo ds3232 0x68 &gt; /sys/class/i2c-adapter/i2c-1/new_device</pre>
<p>inseriamo subito dopo anche l&#8217;istruzione seguente:</p>
<pre>sudo hwclock -s</pre>
<p>in modo da sincronizzare la data e l&#8217;ora del sistema operativo con quella del modulo RTC.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6486" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local.jpg" alt="file rc.local" width="661" height="562" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-300x255.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-150x128.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/rc_local-585x497.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>disconnettiamo il Raspberry dalla rete cablata o WiFi, riavviamo e verifichiamo con il comando <strong>date</strong> che le impostazioni del sistema siano coerenti con quelle impostate precedentemente nell&#8217;rtc.</p>
<p>The post <a href="https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/">Aggiungere un RTC al Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/aggiungere-rtc-ds3231-ds1307-raspberry-pi-offline/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Usare il modulo RTC DS1307 con Arduino</title>
		<link>https://logicaprogrammabile.it/usare-modulo-rtc-ds1307-arduino/</link>
					<comments>https://logicaprogrammabile.it/usare-modulo-rtc-ds1307-arduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 21 Mar 2012 10:09:34 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[DateTime]]></category>
		<category><![CDATA[DS1307]]></category>
		<category><![CDATA[RTC]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2622</guid>

					<description><![CDATA[<p>Cosa devi sapere per usare un real time clock DS1307 Considero molto utile avere un dispositivo che permetta di tenere traccia del tempo e della data, poiché in molti progetti, come quelli della domotica, richiedono un sistema per recuperare queste informazioni. Avere un circuito che...</p>
<p>The post <a href="https://logicaprogrammabile.it/usare-modulo-rtc-ds1307-arduino/">Usare il modulo RTC DS1307 con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Cosa devi sapere per usare un real time clock DS1307</h3>
<p>Considero molto utile avere un dispositivo che permetta di tenere traccia del tempo e della data, poiché in molti progetti, come quelli della domotica, richiedono un sistema per recuperare queste informazioni. Avere un circuito che mi garantisca, anche in mancanza di alimentazione, un riferimento temporale sicuro è fondamentale.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-2629" title="DS1307" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307.png" alt="DS1307 real time clock RTC pin function" width="227" height="124" /></p>
<p>Tipicamente, l&#8217;integrato che viene utilizzato maggiormente, in campo hobbistico, è il DS1307. Le sue caratteristiche tecniche sono le seguenti<span id="more-2622"></span></p>
<table border="0">
<tbody>
<tr>
<td> Caratteristiche</td>
<td> conteggio in secondi, minuti, ore, giorno della settimana, giorno del mese, mese, anno.</td>
</tr>
<tr>
<td> Interfaccia</td>
<td> bus I2C</td>
</tr>
<tr>
<td> RAM</td>
<td> 56 byte aggiuntivi di memoria utente</td>
</tr>
<tr>
<td> Altre uscite</td>
<td> Possibilità di generare un onda quadra di 1Hz, 4096KHz, 8192KHz, 32768KHz</td>
</tr>
</tbody>
</table>
<p>ha un costo contenuto, circa 2.5€, è disponibile sia in package  THT(Through-Hole Technology) sia in SMD, in versioni con standard industriali (temperature di esercizio da -40 a +85 °C).</p>
<p>Anche utilizzarlo è risultato semplice, vista la possibilità di colloquiare tramite bus I2C. Una volta realizzato il circuito seguente, scriviamo alcun istruzioni per settare i registri del DS1307 in modo da impostare la data e l&#8217;ora.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2638 size-full" title="rtc DS1307" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307.gif" alt="schema rtc DS1307" width="348" height="296" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307.gif 348w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307-300x255.gif 300w" sizes="auto, (max-width: 348px) 100vw, 348px" /></p>
<p>La struttura di questi registri è la seguente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2641 size-full" title="DS1307-Register" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307_Register.jpg" alt="Struttura registri DS 1307" width="486" height="366" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307_Register.jpg 486w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/DS1307_Register-300x225.jpg 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></p>
<p>mentre le istruzioni le trovate di seguito</p>
<pre class="lang:arduino decode:true ">//includo la libreria per la
//comunicazione su bus I2C
#include &lt;Wire.h&gt;

void setup()
{
//inizializzo la libreria
Wire.begin();

//attivo la comunicazione con il DS1307
//l'indirizzo dell'RTC è 0x68
Wire.beginTransmission(0x68);
//il primo byte stabilisce il registro
//iniziale da scivere
Wire.write((byte)0x00);
//specifico il tempo e la data
Wire.write((byte)0x00); //1° byte SECONDI da 0x00 a 0x59
Wire.write((byte)0x10); //2° byte MINUTI da 0x00 a 0x59
Wire.write((byte)0x80 | 0x10); //3° byte ORE da 0x00 a 0x23
Wire.write((byte)0x01); //4° byte GIORNO della settimana da 0x01 a 0x07
Wire.write((byte)0x21); //5° byte GIORNO del mese da 0x01 a 0x31
Wire.write((byte)0x03); //6° byte MESE da 0x01 a 0x12
Wire.write((byte)0x12); //7° byte ANNO 0x00 a 0x99
Wire.endTransmission();
}

void loop()
{
delay(100);
}</pre>
<p>&nbsp;</p>
<p>Per poter recuperare le informazioni è sufficiente eseguire una lettura in sequenza dei primi 7 byte, partendo dall&#8217;indirizzo 0x00</p>
<pre class="lang:arduino decode:true ">//includo la libreria per la
//comunicazione su bus I2C
#include &lt;Wire.h&gt;

void setup()
{
//inizializzo la seriale
Serial.begin(9600);

//inizializzo la libreria
Wire.begin();

//attivo la comunicazione con il DS1307
//l'indirizzo dell'RTC è 0x68
Wire.beginTransmission(0x68);
//il primo byte stabilisce il registro
//iniziale da scivere
Wire.write((byte)0x00);
//specifico il tempo e la data
Wire.write((byte)0x00); //1° byte SECONDI da 0x00 a 0x59
Wire.write((byte)0x10); //2° byte MINUTI da 0x00 a 0x59
Wire.write((byte)0x80 | 0x10); //3° byte ORE da 0x00 a 0x24
Wire.write((byte)0x01); //4° byte GIORNO della settimana da 0x01 a 0x07
Wire.write((byte)0x21); //5° byte GIORNO del mese da 0x00 a 0x31
Wire.write((byte)0x03); //6° byte MESE da 0x00 a 0x12
Wire.write((byte)0x12); //7° byte ANNO 0x00 a 0x99
Wire.endTransmission();
}

void loop()
{
//inizzializza la trasmissione partendo
//dall'indirizzo 0x00
Wire.beginTransmission(0x68);
Wire.write((byte)0x00);
Wire.endTransmission();

//richiedo 7 byte dal dispositivo con
//indirizzo 0x68
Wire.requestFrom(0x68, 7);
//regupero i 7 byte relativi ai
//corrispondenti registri
byte secondi = Wire.read();
byte minuti = Wire.read();
byte ora = Wire.read();
byte giorno_sett = Wire.read();
byte giorno_mese = Wire.read();
byte mese = Wire.read();
byte anno = Wire.read();

Serial.print("Orario corrente: ");
Serial.print(ora, HEX);
Serial.print(":");
Serial.print(minuti, HEX);
Serial.print(":");
Serial.println(secondi, HEX);

Serial.print("Giorno della settimana: ");
Serial.println(giorno_sett, HEX);

Serial.print("Data corrente: ");
Serial.print(giorno_mese, HEX);
Serial.print("/");
Serial.print(mese, HEX);
Serial.print("/");
Serial.println(anno, HEX);
Serial.println();

delay(1000);
}</pre>
<p>La batteria tampone, tipicamente una CR2032, garantisce un back-up di circa 6 mesi.</p>
<p>Delocalizzare la gestione dell&#8217;orario su un chip esterno permette di concentrare le risorse dell&#8217;Arduino su altri processi e allo stesso tempo di impiegare in modo veloce e semplice il bus I2C per recuperare le informazioni di tempo e data.</p>
<p>Realizzare automatismi basati sul DS1307 è risultato molto economico e semplice, vi invito quindi ad acquistare direttamente il chip piuttosto che i kit già assemblati che attualmente si aggirano tra gli 8€ e i 15€.</p>
<p>The post <a href="https://logicaprogrammabile.it/usare-modulo-rtc-ds1307-arduino/">Usare il modulo RTC DS1307 con Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/usare-modulo-rtc-ds1307-arduino/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
	</channel>
</rss>
