<?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>DateTime Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/datetime/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/datetime/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sun, 15 Jan 2017 23:02:15 +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>DateTime Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/datetime/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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 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 fetchpriority="high" 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="(max-width: 348px) 100vw, 348px" /></p>
<p>La struttura di questi registri è la seguente:</p>
<p><img 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="(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>
		<item>
		<title>Usare l&#8217;RTC della Fez Panda II</title>
		<link>https://logicaprogrammabile.it/usare-lrtc-della-fez-panda-ii/</link>
					<comments>https://logicaprogrammabile.it/usare-lrtc-della-fez-panda-ii/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 27 Feb 2012 11:24:33 +0000</pubDate>
				<category><![CDATA[Ghi-FEZ]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Clock]]></category>
		<category><![CDATA[DateTime]]></category>
		<category><![CDATA[RTC]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2558</guid>

					<description><![CDATA[<p>Come gestire il real time clock della Fez Panda II Solitamente quando ho il bisogno di avere un riferimento temporale, che risulta ininfluente dalle mancanze di alimentazione o da riavvi casuali della scheda, utilizzo un RTC esterno, tipicamente un DS1307. La soluzione fornita dalla Fez...</p>
<p>The post <a href="https://logicaprogrammabile.it/usare-lrtc-della-fez-panda-ii/">Usare l&#8217;RTC della Fez Panda II</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come gestire il real time clock della Fez Panda II</h3>
<p>Solitamente quando ho il bisogno di avere un riferimento temporale, che risulta ininfluente dalle mancanze di alimentazione o da riavvi casuali della scheda, utilizzo un RTC esterno, tipicamente un DS1307. La soluzione fornita dalla <a href="https://www.ghielectronics.com/catalog/product/256" target="_blank">Fez Panda II</a> impiega un rtc on board che necessita solamente di una batteria tampone esterna, tipicamente quella utilizzata nei computer da 3.3Vdc.</p>
<p>La prima operazione da effettuare, dopo aver collegato la batteria tampone tra il pin BAT e il pin GND, è l&#8217;inizializzazione dell&#8217;RTC con una data ed un ora valida:</p>
<p>[csharp]<br />
//Setto la data e l&#8217;ora per l&#8217;RTC<br />
//Anno, Mese, Giorno, Ora, Minuti, Secondi<br />
RealTimeClock.SetTime(new DateTime(2012, 02, 23, 12, 0, 0));<br />
[/csharp]</p>
<p>questo settaggio non agisce automaticamente sulle impostazioni di data ed ora della classe DateTime, ma è soltanto il metodo per inizzializzare l&#8217;RTC.</p>
<p>Per poter leggere la data ed il tempo è necessario utilizzare la classe <strong>Utility</strong> per settare il local time con quello dell&#8217;RTC</p>
<p>[csharp]<br />
//Leggo la data ed il tempo dall&#8217;RTC e lo assegno al local time<br />
Utility.SetLocalTime(RealTimeClock.GetTime());<br />
[/csharp]</p>
<p>Adesso la classe DateTime ha come riferimento la data e l&#8217;ora dell&#8217;RTC, posso richiamarla utilizzando questo esempio</p>
<p>[csharp]<br />
//visualizzo a console la data e l&#8217;ora corrente<br />
Debug.Print(DateTime.Now.ToString());<br />
[/csharp]</p>
<p>Queste poche linee di coidce permettono di gestire l&#8217;RTC on board della Fez Panda II e di implementare ne progetti un sistema basato sul tempo.</p>
<p>The post <a href="https://logicaprogrammabile.it/usare-lrtc-della-fez-panda-ii/">Usare l&#8217;RTC della Fez Panda II</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/usare-lrtc-della-fez-panda-ii/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
