Probleme DS3231 date en 2165 165 165

Bonjour,
je debute en programmation Arduino j’ai fait une horloge et j’ai recuperer un bout de code qui 'après l’auteur fonctionne. Cependant je n’y arrive pas.
Ci dessous un extrait

#include <FastLED.h>
#include <Wire.h>
#include “RTClib.h”
#include <SoftwareSerial.h>
#include “Timer.h”

#define DHTPIN 12
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

#define NUM_LEDS 30
#define DATA_PIN 6
CRGB LEDs[NUM_LEDS];

SoftwareSerial BTserial(8, 9);
RTC_DS3231 rtc;
Timer t1;
Timer t2;
Timer t3;

void setup () {

// Initialize LED strip
FastLED.delay(3000);

// Check if you’re LED strip is a RGB or GRB version (third parameter)
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(LEDs, NUM_LEDS);

Serial.begin(9600);
while (!Serial) { /* Wait until serial is ready */ }

BTserial.begin(9600);
Serial.println(“BTserial started at 9600”);

dht.begin();

if (!rtc.begin()) {
Serial.println(“Couldn’t find RTC”);
while (1);
}

if (rtc.lostPower()) {
Serial.println(“RTC lost power, lets set the time!”);
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(DATE), F(TIME)));
}

et la partie qui affiche l’heure
void displayClock() {
DateTime now = rtc.now();

int h = now.hour();
if (hourFormat == 12 && h > 12)
h = h - 12;

int hl = (h / 10) == 0 ? 13 : (h / 10);
int hr = h % 10;
int ml = now.minute() / 10;
int mr = now.minute() % 10;

displaySegments(0, mr);
displaySegments(7, ml);
displaySegments(16, hr);
displaySegments(23, hl);
displayDots(0);
FastLED.show();
}

Si a ce niveau la je fais un serial.println de h je tombe sur 165. J’ai l’impression qu’il n’arrive pas a ajuster correctement.
J’ai bien branche sur la borne a4 et a5 (arduino nano)

Merci de votre

Cordialement

Avec la bibliothèque il y a des exemples d'application qui sont fournis.

Avant de récupérer des exemples d'auteurs inconnus il me semble que le plus sage est de tester les exemples de la bibliothèques.
Et surtout de ne pas faire plusieurs choses à la fois quand on débute.
Apprends à utiliser le DS3231 seul, puis apprends à utiliser le DHT11 seul et seulement après assemble les deux.

Info : domage d'avoir pris un DHT11, le DHT22 est bien plus performant.

bonjour,
je ne comprend pas votre remarque "des exemples d'auteurs inconnus". Qu'il soit inconnu ou pas ne change rien, vous êtes bien un inconnu pour moi.
Je demandais juste si quelqu'un avait déjà eu ce problème.
les lignes concernant ce module ont l'air d’être assez clair. J'ai fait le test en ne laissant que ces lignes la. De plus quand je force les valeurs j'ai bien le bon affichage. Cette partie devrait marcher rtc.adjust(DateTime(F(DATE), F(TIME)));
Je vais regardé cependant comme vous le dites la partie exemple dans la partie bibliothèque s'il y'en a sur ce module.

Je suis preneur quand même si quelqu'un a une idée, merci

Oui je suis un inconu pour toi et d’ailleurs je ne te propose pas de programme.

Je t’ai conseillé simplement de prendre les exemples de l’auteur de la biblothèque qui est, il me semble, celui qui connait le mieux sa bibliothèque. Et aussi de décomposer le programme en chose simple pour la phase de mise au point.
Tu pourra comparer l’exemple de la bibliothèque avec ce programme que tu as trouvé, et voir où est l’erreur : le programme, toi ? → en principe quand je suis dans ce cas je commence par m’acuser en premier.

Si tu crois tout ce qui est publié sur le net tu vas être vite déçu. Sur le net il y a des vrais spécialistes et malheusement aussi des auto-proclamés experts qui ne connaissent pas grand chose.
Une petite analyse préalable avant de foncer bille en tête n’a jamais fait de mal et a souvent permis de gagner du temps.

PS: Normalement quand on arrive sur un forum on en lit les règles, tu as certainement lu que le code doit être placé entre balise code (icone </>) mais tu ne l’a pas fait. Tel que présenté le code est difficilement lisible donc un grand nombre d’aidants ne le lisent pas.
Les balises permettent de respecter la mise en page du code et sont indispensables pour ceux qui fréquentent le site avec un smartphone.

du coup j’ai pris l’exemple DS3231 qui est dans la librairie RTCLIB. Même phénomène.

merci de votre aide

Donnes ton schéma de câblage : le vrai celui que tu as réalisé pas celui tiré d'un article.

Bien entendu quand tu as testé le DS3231 tu as pris le soin de décâbler tout ce qui ne se rapporte pas au Ds3231.

Autant que tu le saches de suite les erreurs les plus énormes, celles que l'on n'imagine pas que l'on ferait, se produisent toujours et sont les plus dures à trouver tellement elles sont énormes.

68tjs:
PS: Normalement quand on arrive sur un forum on en lit les règles, tu as certainement lu que le code doit être placé entre balise code (icone </>) mais tu ne l’a pas fait. Tel que présenté le code est difficilement lisible donc un grand nombre d’aidants ne le lisent pas.

Je confirme, le code tel qu’on le voit est trop long et ne me donne pas du tout envie de le lire et d’y chercher une erreur…
Édite ton message et place les balises autour du code (toi seul peut faire ça), tu auras sûrement plus d’aide…

j’ai refait avec juste l’exemple pour etre sur.
CI dessous les photos , pour info je suis avec un arduino nano Microcontrôleur CH340 ATmega328P Board .
Je met également le code de l’exemple.

code.txt (2.15 KB)

SHAHIDEER Minuscule DS3231 AT24C32 I2C Module de précision Horloge en temps réel Module Pour Arduino Raspberry Pi Real Time Clock RTC : Amazon.fr: Bricolage le lien vers mon DS3231

Je t'ai demandé de faire un schéma pas de fournir des photos.

S'il te plaît utilise des liens cliquables, on n'arrete pas de faire des coupés coller alors que la possibilité de faire des liens cliquable existe. A longueur de journée on se lasse et on fini par ne plus répondre.
Passe la souris au dessus des icones de cet éditeur et tu verra à quoi elle servent.

Si c'est trop compliqué pour toi de faire un schéma électrique recommence ton câblage à partir de zéro avec rien que le DS3231, cela prendra 5 mn.

Question sur la pile de sauvegarde :

  • est-elle en place : c'est ballot c'est le seul point qu'il m'intéressait de voir sur les photos
  • fait-elle encore la bonne tension
    J'ai déjà vu sur un DS1307 une pile trop basse qui empêchait le fonctionnement.

La pile est neuve, pour les liens honnetement je veux bien essayer de faire au mieux mais bon...
bon je vais essayer de mettre un lien cliquable. Les liens c'est pour des url, moi cest des fichiers sur min disque donc en lien je vois pas trop comment ca peut marcher.
Je vais malgré tout essayer

J’ai beau chercher je vois pas comment mettre un lien sur mon disque. Je ne suis peut etre pas assez doué. Désolé

du fait qu'il soit sur courant la que la pile marche ou pas cela devrait marcher non?

du fait qu'il soit sur courant la que la pile marche ou pas cela devrait marcher non?

Ce serait logique et c'est ce que je pensais sauf que j'ai constaté le contraire.

J'ai une question sur ta dernière photo : que fait le fil rouge entre la ligne de Vcc de la breadboard et la pin Vin de la nano ? (normalement Vin est une entrée pour 9/12V)
Ne devrait-il pas être raccordé entre la ligne Vcc de la breadboard et la pin 5V de la nano ?

Pour mettre les images dans le texte et éviter que les aidants remplissent leur disque dur inutilement :

  1. tu les mets en pj comme maintenant (elle sont sur le serveur arduino)
  2. tu survole la pj avec la souris et tu copie l'adresse de l'image
  3. tu édite ton message (More -> modify)
  4. tu clique sur l’icône écran à coté de la chaîne
  5. dans la fenêtre qui s'ouvre tu copie l'adresse puis entrée
  6. l'image doit apparaître dans le texte du message
  7. tu sauvegarde les modifications.

Et tant que tu ne mettra pas le code entre les balises codes personne ne le regardera.

ok merci pour l’info. du coup j’ai mis une autre pile et toujours pareil.
pour les fil rouge t noir sur le nano ils servent a alimenter le module rtc.
pour le code je l’ai mis en fichier joint.

// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {

#ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif

  Serial.begin(9600);

  delay(3000); // wait for console opening

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
     rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
}

void loop () {
    DateTime now = rtc.now();
    
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
    
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));
    
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
    
    Serial.println();
    delay(3000);
}

J'ai une question sur ta dernière photo : que fait le fil rouge entre la ligne de Vcc de la breadboard et la pin Vin de la nano ? (normalement Vin est une entrée pour 9/12V)
Ne devrait-il pas être raccordé entre la ligne Vcc de la breadboard et la pin 5V de la nano ?

VIN est une entrée. Si la NANO est alimentée par l'USB, cela m'étonnerait que VIN produise quoi que ce soit.
Branche plutôt le fil rouge sur le +5V.

@+

la lumière ne s’allume plus du tout.

Hum

Sur la photo, les pins de la nano n'ont pas l'air soudées à la barette de connecteurs...

la lumière ne s'allume plus du tout.

qu'elle lumière ?
De devant mon PC je ne vois pas la lumière ni avant ni après.
Essaye d'être précis sinon a distance comment tu veux qu'on s'en sorte ?

Et merci de répondre à l'interrogation de Bricoleau : les barrettes de pins sont-elle soudées ?

Sur la photo, les pins de la nano n'ont pas l'air soudées à la barette de connecteurs...

Cela commence à faire beaucoup :o