[Programmation] RTC sur arduino uno avec PCF8523
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

RTC sur arduino uno avec PCF8523



  1. #1
    Gazouillis

    Question RTC sur arduino uno avec PCF8523


    ------

    Bonjour à tout le monde!


    J'essaye de programmer un PCF8523 pour faire fonctionner le timer_A. J'essaye plusieurs choses avec impulsion ou permanent. mais rien ne fonctionnent . La sortie INT1 reste désespèrent à 1. Je pense qu' il y des choses que je ne comprends pas dans la datasheet.

    Pour le faire fonctionner, la seule methode que j'ai trouvé, c'est d'ecrire dans le registre de contrôle et laisser un delay(), ce qui n'est pas top.

    PC8523_watchdog.txt

    Si vous avez une idée sur ce qu' il faut faire je suis à l'écoute .

    -----

  2. #2
    Pascal071

    Re : RTC sur arduino uno avec PCF8523

    Bonjour

    un bout de code pour utilisation SQW à 1Hz:
    à noter que ce "top" 1Hz est un 0V.
    Code:
    #include <Wire.h>
    
    #define PCF8523_I2C_ADDRESS 0x68
    
    void setup() {
      Wire.begin();
      Serial.begin(9600);
    
      // Démarrer la communication I2C et configurer le registre CLKOUT (0x0F)
      Wire.beginTransmission(PCF8523_I2C_ADDRESS);
      Wire.write(0x0F); // Adresse du registre de l'onde carrée / CLKOUT
      
      // Valeur pour configurer la fréquence sur SQW :
      // 0x00 = 32.768 Hz
      // 0x01 = 16.384 Hz
      // 0x02 = 8.192 Hz
      // 0x03 = 4.096 Hz
      // 0x04 = 1.024 Hz
      // 0x05 = 32 Hz
      // 0x06 = 1 Hz
      // 0x07 = Désactivé (High-impedance)
      Wire.write(0x06); // Exemple : Configuration d'un signal à 1 Hz
      
      Wire.endTransmission();
    }
    Dernière modification par Pascal071 ; 06/08/2026 à 14h30.
    Pascal

  3. #3
    Gazouillis

    Re : RTC sur arduino uno avec PCF8523

    Bonjour merci pour ce code il correspond à ce que j avais fais au début, donc je ne fais pas fausse route jusque là . Mais comme je voulais obtenir une impulsion toute les 40 s pour réveiller mon arduino d'un sommeil profond. J'ai choisi d'utiliser le timer_A et de desactiver CLKOUT sur INT1\ car sur mon composant c'est la même broche.
    je recopie le code ici:
    Code:
    #include <Wire.h>                              //PCF8523TK POUR WATCHDOG SUR ATMEGA328p 
    
    #define PCF8523_ADRESS         0X68
    #define REG_CONTROL_2          0X01
    #define REG_TMR_CLKOUT_CTRL    0X0F
    #define REG_TMR_A_FREQ_CTRL    0x10
    #define REG_TMR_A_VAL          0x11
    
    void writeRegister (uint8_t reg, uint8_t value) {
      
      Wire.beginTransmission(PCF8523_ADRESS ); 
    //Adresse I2C du PCF8523 debut de la transmission
      Wire.write(reg); //Acceder au registre
      Wire.write(value);//Acceder a la valeur hexadecimale de la selection
      Wire.endTransmission(); //Fin de l'envoie
    }
    
    void setup() {
    
      // put your setup code here, to run once:
      Wire.begin();
    
      writeRegister (REG_TMR_CLKOUT_CTRL, 0x3C); 
    
    //Selection de TIMER_A en Watchdog permanent (3C) ou impulsion (BC) et desactivation de la frequence standard de CLOCKOUT sur sortie INT1.
    
      writeRegister (REG_TMR_A_FREQ_CTRL, 0x02); 
    
    //Selection de la frequence de l'horloge 1hz pour le Timer_A
    
    }
    
    void loop() {
    
      writeRegister (REG_TMR_A_VAL, 5); 
    
    //Decompte commmence a  T_A= 5s
    
      writeRegister (REG_CONTROL_2, 
    0x04);
    
    //Losque T_A=1 , Le Flag (WTF) passe a  1, dans REG_CONTROL_2, sur le front montant suivant.
      
    //Si WTAIE =1 et WTAF=1  alors INT1 =1 Si WTAIE =0 et WTAF=1  alors INT1 =0. Le compteur ne se recharge pas automatiquement il faut recharger la valeur T_A pour que WTAF=0.
    
      delay(5000);
    
    }
    Ce que je ne comprend pas aussi c'est comment le bit WTAIE passe à 1? merci pour votre lecture
    Dernière modification par gienas ; 07/08/2026 à 06h39. Motif: Ajouté les balises code obligatoires pour les programmes

  4. #4
    Gazouillis

    Re : RTC sur arduino uno avec PCF8523

    petite correction WTF = WTAF

  5. A voir en vidéo sur Futura

Discussions similaires

  1. [Analogique] Arduino avec 400 led ?
    Par invite6fb2a012 dans le forum Électronique
    Réponses: 16
    Dernier message: 26/12/2019, 20h00
  2. piloter une LED de puissance avec arduino avec transistor bipolaire
    Par invitec0bc361b dans le forum Électronique
    Réponses: 7
    Dernier message: 31/05/2015, 15h43
  3. Contrôle d'un robot avec deux moteurs cc avec arduino
    Par inviteebd9199d dans le forum Électronique
    Réponses: 38
    Dernier message: 10/12/2014, 07h19
  4. Arduino anti rebond avec arduino
    Par invited0bffa74 dans le forum Électronique
    Réponses: 13
    Dernier message: 23/10/2014, 17h04
  5. Communication arduino-arduino avec module Xbee
    Par inviteda9a8a4b dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 17h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...