materiels:temps:htr:htri2c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
materiels:temps:htr:htri2c [2021/08/11 09:19] – modification externe 127.0.0.1materiels:temps:htr:htri2c [2024/05/05 16:09] (Version actuelle) – [3.3 Exemples de code] phil
Ligne 1: Ligne 1:
-{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]]+[[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]]
  
-===== Horloge Temps Réel (HTR) I²C =====+{{ :arduino:horloge.jpg?nolink&120|}} 
 +===== Matériels - Horloge Temps Réel (HTR) I²C =====
  
-[Mise à jour le 30/1/2020]+[Mise à jour le 3/5/2024]
  
 === Lecture connexe === === Lecture connexe ===
-  * [[arduino:gestiontemps|La gestion du temps : Timer, HTR]]+  * [[microc:gestiontemps|La gestion du temps : Timer, HTR]]
  
 +\\
  
-==== 1. Circuit DS1307 ====+ 
 +==== 1. Généralités ==== 
 +// Une horloge temps réel (abrégé en HTR, en anglais real-time clock ou RTC), est une horloge permettant un décompte très précis du temps (par exemple en nanosecondes) pour un système électronique, en vue de dater ou déclencher des évènements selon l'heure. Par rapport à l'horloge à quartz, l'horloge en temps réel réduit le risque de panne mécanique. Il peut donc être utilisé dans un environnement très vibratoire. // Wikipédia 
 + 
 +\\ 
 + 
 + 
 +==== 2. DS1307 ====
 {{ :materiels:temps:htr:adafruit_products_ds1307.jpg?nolink&100|}} {{ :materiels:temps:htr:adafruit_products_ds1307.jpg?nolink&100|}}
  
-=== 1.1 Généralités ===+=== 2.1 Généralités ===
   * **Description**   * **Description**
 L'horloge temps réel (RTC) à circuit DS1307 est une **horloge / calendrier BCD** (décimal codé binaire) disposant de **56 octets de NV SRAM**. Elle communique avec un microcontrôleur via un bus I2C. \\ Ce circuit fournit l'année, le mois, le jour, les heures, les minutes et  les secondes en tenant compte des années bissextiles. L'horloge fonctionne au format 24 heures ou 12 heures avec l'indication AM / PM. Un circuit de détection de puissance intégré passe automatiquement sur une alimentation de secours en cas de coupure du courant. L'horloge temps réel (RTC) à circuit DS1307 est une **horloge / calendrier BCD** (décimal codé binaire) disposant de **56 octets de NV SRAM**. Elle communique avec un microcontrôleur via un bus I2C. \\ Ce circuit fournit l'année, le mois, le jour, les heures, les minutes et  les secondes en tenant compte des années bissextiles. L'horloge fonctionne au format 24 heures ou 12 heures avec l'indication AM / PM. Un circuit de détection de puissance intégré passe automatiquement sur une alimentation de secours en cas de coupure du courant.
Ligne 21: Ligne 30:
   * **Schéma**   * **Schéma**
 {{ :materiels:temps:htr:schds1307.png?nolink&400 |}} {{ :materiels:temps:htr:schds1307.png?nolink&400 |}}
 +
 +{{ :materiels:capteurs:acrobate.gif?nolink&40|}}
   * ** Documentation **   * ** Documentation **
-      * Fiche technique du circuit DS1307<html><a href="http://www.microbot.it/documents/ds1307.pdf" target="_blank">[Télécharger]</a></html>+      * **Datasheet** du circuit DS1307 à télécharger <html><a href="http://www.microbot.it/documents/ds1307.pdf" target="_blank"><b>ici</a></b></html>.
  
-=== 1.2 Le module MR005 de Microrobot ====+\\ 
 + 
 + 
 + 
 + 
 +=== 2.2 Module MR005 de Microrobot ====
 {{ :materiels:capteurs:htr:mr514.png?nolink&150| MR005-001.4 sur microrobot.it}} {{ :materiels:capteurs:htr:mr514.png?nolink&150| MR005-001.4 sur microrobot.it}}
 +
 +== 2.2.1 Présentation ==
     * //**Sources**//     * //**Sources**//
       * // Site // : <html><a href="https://www.microbot.it/en/product/150/Real-Time-Clock-module-with-DS1307.html" target="_blank">microbot.it</a></html>       * // Site // : <html><a href="https://www.microbot.it/en/product/150/Real-Time-Clock-module-with-DS1307.html" target="_blank">microbot.it</a></html>
       * // Wiki // : <html><a href="https://www.carnetdumaker.net/articles/utiliser-un-module-horloge-temps-reel-ds1307-avec-une-carte-arduino-genuino/" target="_blank">Utiliser un module horloge temps réel DS1307 avec une carte Arduino / Genuino</a></html>       * // Wiki // : <html><a href="https://www.carnetdumaker.net/articles/utiliser-un-module-horloge-temps-reel-ds1307-avec-une-carte-arduino-genuino/" target="_blank">Utiliser un module horloge temps réel DS1307 avec une carte Arduino / Genuino</a></html>
-      * // Distributeur // : <html><a href="https://www.gotronic.fr/art-horloge-temps-reel-mr514-25748.htm" target="_blank">Gotronic</a></html>+ 
 +<callout type="info" icon="true">Module horloge temps réel Microbot basé sur un DS1307 permettant de donner la date et l'heure via le bus I2C.</callout> 
 + 
 +      * // **Distributeur** // : <html><a href="https://www.gotronic.fr/art-horloge-temps-reel-mr514-25748.htm" target="_blank">Gotronic</a></html>
  
     * //**Caractéristiques**//     * //**Caractéristiques**//
Ligne 38: Ligne 59:
         * secondes, minutes et heures         * secondes, minutes et heures
         * jour, mois, année         * jour, mois, année
-      * Protocole I²C+      * Protocole I²C (**SLA** = **0x68**)
       * Sortie drain ouvert : signal logique de fréquence réglable (f=1Hz, 4kHz, 8kHz, 32kHz)        * Sortie drain ouvert : signal logique de fréquence réglable (f=1Hz, 4kHz, 8kHz, 32kHz) 
       * Dimensions: 32 x 23 x 11 mm       * Dimensions: 32 x 23 x 11 mm
       * Poids: 5g       * Poids: 5g
  
-    * // **Documentation** // +\\
-      * Fiche technique du module MR005. <html><a href="http://www.microbot.it/documents/mr005-001-4_datasheet.pdf" target="_blank">[Télécharger]</a></html>+
  
-=== 1.3 Le module Adafruit ADA3296 (équivalent de MR005)===+== 2.2.2 Bibliothèques ==  
 +<tabs>  
 +  * [[#tab-ds1307duino_1|Arduino UNO]] 
 +  * [[#tab-ds1307pico_1|Rpi Pico (µPython)]] 
 + 
 +<pane id="tab-ds1307duino_1"> 
 +  * //Documentation de la bibliothèque Adafruit pour Arduino// : <html><a href="https://adafruit.github.io/RTClib/html/class_r_t_c___d_s1307.html" target="_blank">RTClib</a></html> 
 +  * //A partir du gestionnaire de bibliothèques de l'**IDE Arduino**, installer :// 
 +{{ :materiels:capteurs:htr:rtclib.png?nolink |}} 
 +<html><p style="text-align:center"><b>ou</b></html> 
 +{{ :materiels:capteurs:htr:github.png?nolink&40|}} 
 +  * //Télécharger le fichier **DFRobot_DS1307-master.zip** sur <html><a href="https://github.com/DFRobot/DFRobot_DS1307" target="_blank">Github</a></html>, le dézipper et le placer dans le dossier : //...\Documents\Arduino\Libraries. 
 +</pane> 
 +<pane id="tab-ds1307pico_1"> 
 +A venir 
 +</pane> 
 +</tabs> 
 + 
 +\\ 
 + 
 +{{ :materiels:capteurs:environnement:code.png?nolink|}} 
 +== 2.2.3 Exemples de code ==  
 +<tabs> 
 +  * [[#tab-ds1307duino_2|Arduino UNO]] 
 +  * [[#tab-ds1307pico_2|Rpi Pico (µPython)]] 
 + 
 +<pane id="tab-ds1307duino_2"> 
 +{{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}} 
 +  * //**Exemple** de l'IDE Arduino pour tester le capteur// \\ Dans l'IDE Arduino, sélectionner : Fichier → Exemples → RTClib -> **DS1307** 
 +</pane> 
 +<pane id="tab-ds1307pico_2"> 
 +A venir 
 +</pane> 
 +</tabs> 
 + 
 +\\ 
 + 
 +=== 2.3 Module Adafruit ADA3296 (équivalent de MR005)===
 {{ :materiels:capteurs:htr:ada3296.jpg?nolink&150|}} {{ :materiels:capteurs:htr:ada3296.jpg?nolink&150|}}
  
 +== 2.3.1 Présentation ==
   * //**Sources**//   * //**Sources**//
     * // Site // : <html><a href="https://www.adafruit.com/product/3296" target="_blank">adafruit</a></html>     * // Site // : <html><a href="https://www.adafruit.com/product/3296" target="_blank">adafruit</a></html>
Ligne 66: Ligne 124:
     * Poids: 2,3g     * Poids: 2,3g
  
-  * // **Documentation** // +\\
-    * Fiche technique du module ADA3296. <html><a href="https://cdn-learn.adafruit.com/downloads/pdf/ds1307-real-time-clock-breakout-board-kit.pdf?timestamp=1579501422" target="_blank">[Télécharger]</a></html> +
-  * **Programmation d'une carte Arduino Uno R3** +
-    * // Bibliothèque à installer dans l'IDE : //  +
-      * **DS1307** +
-        * **Installation** : dézipper le répertoire DS1307 **à télécharger** sur <html><a href="https://www.microbot.it/en/product/150/Real-Time-Clock-module-with-DS1307.html" target="_blank">microbot.it</a></html>, et le placer dans //C:\Program Files (x86)\Arduino\libraries//.+
  
-      ou **RTCLib**  +==== 3. DS3231M ==== 
-        //Documentation de la bibliothèque Adafruit pour Arduino// : <html><a href="https://adafruit.github.io/RTClib/html/class_r_t_c___d_s1307.html" target="_blank">RTClib</a></html> +=== 3.1 Présentation === 
-{{ :materiels:capteurs:htr:rtclib.png?nolink&600 |}}+{{ :materiels:temps:htr:ds3231m.jpg?nolink&150|}} 
 +  //**Source**// : <html><a href="https://wiki.dfrobot.com/DS3231M%20MEMS%20Precise%20RTC%20SKU:%20DFR0641" target="_blank"><b>wiki</b></a></html> DFROBOT
  
-    * // Connexion d'un module MR005 à un shield Tinkerkit v2 monté sur une Arduino Uno //{{ :materiels:capteurs:htr:duinods1307.jpg?nolink&600 |}}+<callout type="info" icon="true">Ce RTC adopte la puce DS3231M qui intègre un résonateur MEMS et un compensateur de température. Le DS3231M peut être alimenté par une pile bouton CR1220 et peut toujours maintenir une synchronisation précise même si le secteur est débranché. RTC fournit des informations sur les secondes, les minutes, les heures, les jours, les mois et les années. Il peut ajuster automatiquement la date de fin du mois et la correction des années bissextiles. Le format de l'horloge peut être de 24 heures ou de 12 heures avec indication AM/PMIl fournit deux alarmes de calendrier programmables et une sortie d'onde carrée de 1 Hz. De plus, la broche de contrôle RST peut être utilisée pour la réinitialisation du microprocesseur.</callout>
  
-    * // Un premier exemple avec la bibliothèque DS1307 // +  * //**Distributeur**// <html><a href="https://www.gotronic.fr/art-module-rtc-i2c-ds3231m-dfr0641-32243.htm" target="_blank">GoTronic</a></html>
-      Arduino Examples -> Examples for any board -> DS1307 -> **ds1307_example.ino*+
-{{ :materiels:capteurs:vscode.png?nolink&30|}}+
  
-> Le projet pour l'IDE **VSCode** de l'exemple ci-dessus est téléchargeable [[https://webge.fr/doc/wikis/code/Arduino/ARD_Uno_DS1307.zip|ici]]+  //**Caractéristiques**// 
 +    * Alimentation 3,3 à 5,5 Vcc 
 +    * Consommation: 130 µA 
 +    * Sauvegarde: 1 pile type CR1220 (non incluse) 
 +    * Informations: 
 +      * secondes, minutes et heures 
 +      * jour, mois, année 
 +      * format: 24 heures ou 12 heures AM/PM 
 +      * gestion des années bisextiles 
 +    * Précision: ± 5 ppm (±0,432 secondes/jour) 
 +    * Interface série I2C : **SLA** = **0x68** 
 +    * Température de service: -40 à 85 °C 
 +    * Dimensions: 22,5 x 21 mm 
 +  
 +  * //**Signaux**/
 +    * INT : interruption en sortie de niveau bas ou d'onde carrée de 1 Hz 
 +    * RST : Réinitialisation du processeur 
 +    * 32K : Sortie  32,768 kHz
  
-==== 2Circuit DS3234 ====+{{ :materiels:capteurs:acrobate.gif?nolink&40|}} 
 +  * //**Documentation**//  
 +    * Datasheet à télécharger <html><a href="https://www.analog.com/media/en/technical-documentation/data-sheets/DS3231M.pdf" target="_blank"><b>ici</b></a></html> 
 + 
 +\\ 
 + 
 +=== 3.2 Bibliothèques ===  
 +<tabs>  
 +  * [[#tab-ds3231mduino_1|Arduino UNO]] 
 +  * [[#tab-ds3231mpico_1|Rpi Pico (µPython)]] 
 + 
 +<pane id="tab-ds3231mduino_1"> 
 +{{ :materiels:capteurs:htr:github.png?nolink&40|}} 
 +  * //Télécharger la fichier **DFRobot_DS3231M-master.zip** disponible sur <html><a href="https://github.com/DFRobot/DFRobot_DS3231M" target="_blank">GitHub</a></html> le dézipper et l'installer dans le dossier :// ...\Documents\Arduino\Libraries 
 +</pane> 
 +<pane id="tab-ds3231mpico_1">
 A venir A venir
 +</pane>
 +</tabs>
 +
 +\\
 +
 +{{ :materiels:capteurs:environnement:code.png?nolink|}}
 +=== 3.3 Exemples de code === 
 +<tabs>
 +  * [[#tab-ds3231mduino_2|Arduino UNO]]
 +  * [[#tab-ds3231mpico_2|Rpi Pico (µPython)]]
 +
 +<pane id="tab-ds3231mduino_2">
 +  * //**Ressources**// : <html><a href="https://wiki.dfrobot.com/DS3231M%20MEMS%20Precise%20RTC%20SKU:%20DFR0641" target="_blank"><b>Wiki</b></a></html> DFROBOT | <html><a href="https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/" target="_blank">attachInterrupt()</a></html> | <html><a href="https://www.arduino.cc/reference/en/language/functions/external-interrupts/digitalpintointerrupt/" target="_blank">digitalPinToInterrupt()</a></html>
 +
 +  * //**Exemple** pour tester l'HTR// \\ 
 +{{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}}
 +<code cpp *.cpp>
 +// Code testé sur Arduino Uno et Arduino MKR Zéro
 +// Interruption générée toutes le 1s par une HTR à DS3231M
 +
 +#include "DFRobot_DS3231M.h"
 +
 +// Broche utilisée pour l'interruption
 +// Arduino UNO : 2
 +// Arduino MKR0 ou MKR Wifi1010 : 0
 +const byte interruptPin = 0;
 +
 +int i=0;
 +
 +DFRobot_DS3231M rtc;
 +
 +void setup() {
 +  pinMode(interruptPin, INPUT_PULLUP);  // INT du circuit DS3231M sur drain ouvert
 +  Serial.begin(115200); // Sortie dans la console
 +  /* On attend que l'initialisation du DS3231M soit complète */
 +  while (rtc.begin() != true) {
 +    Serial.println("Circuit non initialisé, vérifier les connexions. ");
 +    delay(1000);
 +  }
 +  /*!
 +     *@brief Broche INT
 +     *@param mode eDS3231M_OFF             = 0x01 // Désactivation du signal en sortie, DS3231M en mode interruption
 +     *@n          eDS3231M_SquareWave_1Hz  = 0x00 // signal carré 1Hz 
 +     *@n          eDS3231M_SquareWave_1kHz = 0x08 // signal carré 1kHz 
 +     *@n          eDS3231M_SquareWave_4kHz = 0x10 // signal carré 4kHz 
 +     *@n          eDS3231M_SquareWave_8kHz = 0x18 // signal carré 8kHz 
 +     */
 +  rtc.writeSqwPinMode(eDS3231M_SquareWave_1Hz);
 +
 +  // digitalPinToInterrupt convertit le n° de broche en n° d'interruption
 +  attachInterrupt(digitalPinToInterrupt(interruptPin), interrupt_handler, RISING);
 +}
 +
 +void loop() {
 +  // Mettre le code répétitif ici
 +}
 +
 +void interrupt_handler() {
 + Serial.println("Hello "  + (String)i++);
 +}
 +</code>
 +</pane>
 +<pane id="tab-ds3231mpico_2">
 +A venir
 +</pane>
 +</tabs>
 +
 +
 +
  
-==== 3. HTR intégrée dans une carte FEZ (programmation en C#) ==== 
-Avenir 
  • materiels/temps/htr/htri2c.1628666358.txt.gz
  • Dernière modification : 2021/08/11 09:19
  • de 127.0.0.1