Horloge RTC et Ecran OLED

Bonjour

le soi disant 'module DS3231 ' ne serait-il pas en fait un module' DS3231 + EEPROM' ?

Bonjour,
Oui ce sont des modules avec EEPROM.
Cordialement

Un lien vers le site du vendeur s'il te plait.

Il s'agit de Aliexpress, bien sûr..

Aliexpress 'est pas un vendeur mais une 'place de marché' avec des milliers de vendeurs

Donne les lien vers LE module acheté sur LA boutique où tu as commandé ton module, par l'intermédiaire d'Aliexpress

Voici le lien qui mène à ce module sur Aliexpress.
diymore DS3231 AT24C32 IIC Module de mémoire d’horloge en temps réel RTC de haute précision pour Arduino sans batterie - AliExpress 502
Bonne réception, merci

Bonjour,
Avez-vous pu trouver des informations auprès du vendeur, je ne vois plus de réponse de votre part.
Cordialement,
Alain

ça ressemble à un module DS3231 classique qui effectivement dispose d'une EEPROM associée.

Ce module intègre une EEPROM I2C série Atmel 24C32 de 32K (4096 x 8), permettant de l'utiliser comme un enregistreur de données stockant jusqu'à 4Ko.

cf

Bonjour

Si le schéma de ce module est celui-ci, la présence de l'EEPROM 24C0x ne doit pas influer sur l'accès au circuit intégré DS3231

Bonjour,
Le schéma correspond, seule différence au niveau de l'EEPROM qui est une 24C32, ces broches de configuration sont libres. Elle n'intervient pas dans le fonctionnement du module.
Comme je vous l'ai dit, celui qui dysfonctionne est OK avec un autre programme.
Cordialement
Alain

Il faut alors chercher les différences entre les deux.

Voici le programme avec lequel le module fonctionne, merci pour vos aides.

saisissez ou collez du code ic#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <RTClib.h>

#define SCREEN_WIDTH 128  // OLED display width,  in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels

Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);  // // create SSD1306 display object connected to I2C
RTC_DS3231 rtc;

String time;

void setup() {
  Serial.begin(9600);

  // initialize OLED display with address 0x3C for 128x64
  if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    while (true)
      ;
  }

  delay(2000);          // wait for initializing
  oled.clearDisplay();  // clear display

  oled.setTextSize(2);       // text size
  oled.setTextColor(WHITE);  // text color
  oled.setCursor(0, 10);     // position to display

  // SETUP RTC MODULE
  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (true)
      ;
  }

  // automatically sets the RTC to the date & time on PC this sketch was compiled
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  time.reserve(10);  // to avoid fragmenting memory when using String
}

void loop() {
  DateTime now = rtc.now();

  time = "";
  time += now.hour();
  time += ':';
  time += now.minute();
  time += ':';
  time += now.second();

  oledDisplayCenter(time);
}

void oledDisplayCenter(String text) {
  int16_t x1;
  int16_t y1;
  uint16_t width;
  uint16_t height;

  oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height);

  // display on horizontal and vertical center
  oled.clearDisplay();  // clear display
  oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2);
  oled.println(text);  // text to display
  oled.display();
}i

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.