Promo !

Module horloge et calendrier DS1302 avec mémoire et batterie RTC compatible Arduino

Le prix initial était : 4,70 €.Le prix actuel est : 2,24 €. Hors TVA

Module horloge et calendrier DS1302 avec mémoire et batterie RTC compatible Arduino

56 en stock (peut être commandé)

Domande su questo prodotto? Scrivi a Lana su WhatsApp

🎬 Le produit en vidéo

Description

Module RTC DS1302 (Real Time Clock) avec mémoire, batterie et calendrier – Description complète et guide d’utilisation avec Arduino 🕒 Description du module RTC DS1302 Le DS1302 est un module horloge en temps réel (RTC) qui permet de suivre précisément l’heure et le calendrier même en l’absence d’alimentation, grâce à une batterie de secours (généralement type CR2032). Il est très utilisé dans les projets avec Arduino, ESP8266, ESP32, Raspberry Pi et autres microcontrôleurs. Caractéristiques techniques Chip RTC DS1302 Alimentation 3.3V – 5.5V (compatible avec Arduino) Communication en série sur 3 fils (SCLK, I/O, CE) Batterie de secours Supporte CR2032 (non toujours inclus) Mémoire RAM 31 octets de RAM statique pour un usage général Précision ±1 minute/mois typique (sans calibration) Intervalle de dates 01/01/1900 – 31/12/2099 Fonctions Horloge, calendrier, RAM, batterie de secours 🔌 Connexion DS1302 avec Arduino Pin DS1302 Connexion à Arduino VCC 5V (ou 3.3V) GND GND CLK (SCLK) D6 I/O D7 CE (RST) D8 📦 Bibliothèque recommandée pour Arduino Pour utiliser le module DS1302 avec Arduino, vous pouvez installer la bibliothèque « DS1302RTC » écrite par Paul Stoffregen, qui simplifie la lecture/écriture de l’horloge. 🔧 Installation de la bibliothèque Ouvrez l’IDE Arduino Allez dans Sketch > Include Library > Manage Libraries Recherchez DS1302RTC et installez la bibliothèque de Paul Stoffregen 🧪 Exemple de code pour définir et lire la date/heure #include <DS1302RTC.h> #include <TimeLib.h> #include <Wire.h> #include <Streaming.h> // Pins connectés au module DS1302 : CE, I/O, CLK DS1302RTC rtc(8, 7, 6); void setup() { Serial.begin(9600); // Définissez l’heure uniquement la première fois // Définissez : Année, Mois, Jour, Heure, Minutes, Secondes tmElements_t tm; tm.Year = CalendarYrToTm(2025); // Année – 1970 tm.Month = 7; tm.Day = 28; tm.Hour = 15; tm.Minute = 45; tm.Second = 0; rtc.write(tm); Serial.println(« Heure définie! »); } void loop() { tmElements_t tm; if (rtc.read(tm)) { Serial << « Date :  » << tm.Day << « / » << tm.Month << « / » << tmYearToCalendar(tm.Year); Serial <<  » – Heure :  » << tm.Hour << « : » << tm.Minute << « : » << tm.Second << endl; } else { Serial.println(« Erreur de lecture RTC »); } delay(1000); } 📘 Fonctions utiles de la bibliothèque Fonction Description rtc.read(tm) Lit la date et l’heure du module rtc.write(tm) Définit la date et l’heure tm.Year, tm.Month Accès aux éléments individuels de la date et de l’heure tmHour, tmMinute Accès direct à l’heure et aux minutes CalendarYrToTm(année) Conversion de l’année calendrier en année de base 1970 tmYearToCalendar(tm) Conversion inverse (utile pour l’impression) ⚠️ Conseils pratiques Ne définissez pas l’heure à chaque démarrage : le code pour définir l’heure doit être exécuté une seule fois. Après, commentez-le. Vérifiez la batterie : si l’heure se remet à zéro, la batterie CR2032 est déchargée ou absente. Ne changez pas les broches : les connexions incorrectes entraînent des lectures incorrectes ou des communications manquées. La précision du DS1302 est bonne pour un usage général, mais pour des applications critiques, il est préférable d’utiliser le DS3231 (qui a un oscillateur compensé en température). 🎯 Applications typiques Horloges digitales avec affichage (LCD, OLED, 7 segments) Journalisation de données avec timestamp (par exemple sur des cartes SD) Réveils et temporisateurs automatiques Projets domotiques avec événements programmés Timers pour systèmes d’arrosage 🔄 Alternatives Module RTC Précision Batterie Communication Notes DS1302 Moyenne CR2032 3 fils (Série) Économique, de base DS1307 Bonne CR2032 I2C Pi

Description complète (original italien)

La description complète est affichée ci-dessous en italien, le temps de terminer la traduction française.

Modulo DS1302 RTC (Real Time Clock) con Memoria, Batteria e Calendario – Descrizione Completa e Guida per l’Uso con Arduino


🕒 Descrizione del Modulo DS1302 RTC

Il DS1302 è un modulo orologio in tempo reale (RTC) che consente di tenere traccia precisa dell’orario e del calendario anche in assenza di alimentazione, grazie a una batteria tampone (di solito tipo CR2032). È molto usato in progetti con Arduino, ESP8266, ESP32, Raspberry Pi e altri microcontrollori.


Caratteristiche Tecniche

Specifica Dettaglio
Chip RTC DS1302
Alimentation 3.3V – 5.5V (compatibile con Arduino)
Comunicazione Serializzata a 3 fili (SCLK, I/O, CE)
Batteria tampone Supporto CR2032 (non sempre inclusa)
Memoria RAM 31 byte di RAM statica per uso generale
Precisione ±1 minuto/mese tipica (senza calibrazione)
Intervallo di date 01/01/1900 – 31/12/2099
Funzioni Orologio, calendario, RAM, backup batteria

🔌 Collegamento DS1302 con Arduino

Pin DS1302 Collegamento ad Arduino
VCC 5V (oppure 3.3V)
GND GND
CLK (SCLK) D6
I/O D7
CE (RST) D8

📦 Libreria consigliata per Arduino

Per usare il modulo DS1302 con Arduino, puoi installare la libreria « DS1302RTC » scritta da Paul Stoffregen, che semplifica la lettura/scrittura dell’orologio.

🔧 Installazione della Libreria

  1. Apri l’IDE di Arduino
  2. Vai su Sketch > Include Library > Manage Libraries
  3. Rechercher DS1302RTC e installa la libreria di Paul Stoffregen

🧪 Esempio di Codice per Impostare e Leggere Data/Ora

#include <DS1302RTC.h>
#include <TimeLib.h>
#include <Wire.h>
#include <Streaming.h>

// Pin collegati al modulo DS1302: CE, I/O, CLK
DS1302RTC rtc(8, 7, 6);

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

  // Imposta l’orario solo la prima volta
  // Imposta: Anno, Mese, Giorno, Ora, Minuti, Secondi
  tmElements_t tm;
  tm.Year = CalendarYrToTm(2025); // Anno - 1970
  tm.Month = 7;
  tm.Day = 28;
  tm.Hour = 15;
  tm.Minute = 45;
  tm.Second = 0;
  rtc.write(tm);

  Serial.println("Ora impostata!");
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    Serial << "Data: " << tm.Day << "/" << tm.Month << "/" << tmYearToCalendar(tm.Year);
    Serial << " - Ora: " << tm.Hour << ":" << tm.Minute << ":" << tm.Second << endl;
  } else {
    Serial.println("Errore lettura RTC");
  }
  delay(1000);
}

📘 Funzioni Utili della Libreria

Funzione Descrizione
rtc.read(tm) Legge la data e ora dal modulo
rtc.write(tm) Imposta la data e ora
tm.Year, tm.Month Accesso ai singoli elementi della data e ora
tmHour, tmMinute Accesso diretto a ora/minuti
CalendarYrToTm(anno) Conversione da anno calendario ad anno base 1970
tmYearToCalendar(tm) Conversione inversa (utile per stampa)

⚠️ Consigli pratici

  • Non impostare l’orario a ogni avvio: il codice per impostare l’ora va eseguito solo una volta. Dopo, commentalo.
  • Controlla la batteria: se l’orario si azzera, la batteria CR2032 è scarica o assente.
  • Non invertire i pin: collegamenti errati causano letture errate o mancate comunicazioni.
  • La precisione del DS1302 è buona per uso generale, ma per applicazioni critiche è meglio usare il DS3231 (che ha un oscillatore compensato in temperatura).

🎯 Applicazioni Tipiche

  • Orologi digitali con display (LCD, OLED, 7 segmenti)
  • Log dati con timestamp (ad esempio su schede SD)
  • Sveglie e temporizzatori automatici
  • Progetti domotici con eventi programmati
  • Timer per impianti di irrigazione

🔄 Alternative

Modulo RTC Precisione Batteria Comunicazione Note
DS1302 Media CR2032 3 fili (Seriale) Economico, base
DS1307 Buona CR2032 I2C Più diffuso
DS3231 Alta Inclusa I2C Alta precisione, compensato temperatura

📌 Conclusione

Il modulo DS1302 RTC è un’ottima scelta per progetti Arduino in cui è necessario tenere traccia del tempo anche quando il microcontrollore è spento. È economico, facile da usare e ben documentato, anche se oggi viene spesso sostituito dal più preciso DS3231.

Perfetto! Ti fornisco due estensioni pratiche per il modulo DS1302 RTC con Arduino:


🔹 1. Visualizzare Data/Ora su Display OLED I2C (128×64)

🧰 Componenti necessari:

  • Arduino UNO / Nano
  • Modulo RTC DS1302
  • Display OLED 128×64 (driver SSD1306, interfaccia I2C)
  • Câbles jumper

🔧 Schema dei Collegamenti

Componente Pin Arduino
DS1302 VCC, GND 5V, GND
CLK D6
I/O D7
CE (RST) D8
OLED VCC, GND 5V, GND
SDA A4
SCL A5

📦 Librerie da installare:

  • DS1302RTC – Paul Stoffregen
  • Adafruit GFX Library
  • Adafruit SSD1306

Apri l’IDE di Arduino → Library Manager → Cerca e installa tutte e tre.


💡 Codice esempio con OLED:

#include <DS1302RTC.h>
#include <TimeLib.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
DS1302RTC rtc(8, 7, 6); // CE, IO, SCLK

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    display.clearDisplay();
    display.setCursor(0, 0);
    
    display.printf("%02d:%02d:%02dn", tm.Hour, tm.Minute, tm.Second);
    display.setTextSize(1);
    display.setCursor(0, 40);
    display.printf("%02d/%02d/%04d", tm.Day, tm.Month, tmYearToCalendar(tm.Year));
    display.display();
  } else {
    display.clearDisplay();
    display.setCursor(0, 0);
    display.println("RTC ERROR");
    display.display();
  }
  delay(1000);
}

🔹 2. Logger su SD Card con Timestamp da DS1302

🧰 Componenti:

  • Arduino UNO / Nano
  • RTC DS1302
  • Lettore SD card (con adattatore logico se serve)
  • MicroSD formattata FAT32

🔧 Collegamento SD Card

Lettore SD Arduino
CS D10
MOSI D11
MISO D12
SCK D13
VCC, GND 5V, GND

📦 Librerie da usare:

  • SD
  • DS1302RTC
  • TimeLib

💡 Codice esempio per Data Logging:

#include <SPI.h>
#include <SD.h>
#include <DS1302RTC.h>
#include <TimeLib.h>

const int chipSelect = 10;
DS1302RTC rtc(8, 7, 6); // CE, IO, SCLK

void setup() {
  Serial.begin(9600);
  SD.begin(chipSelect);
  if (!SD.begin(chipSelect)) {
    Serial.println("SD init failed!");
    return;
  }
  Serial.println("SD OK");
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    File logFile = SD.open("log.txt", FILE_WRITE);
    if (logFile) {
      logFile.print(tmYearToCalendar(tm.Year));
      logFile.print("/");
      logFile.print(tm.Month);
      logFile.print("/");
      logFile.print(tm.Day);
      logFile.print(" ");
      logFile.print(tm.Hour);
      logFile.print(":");
      logFile.print(tm.Minute);
      logFile.print(":");
      logFile.println(tm.Second);
      logFile.close();
      Serial.println("Dati scritti su SD.");
    } else {
      Serial.println("Errore apertura log.txt");
    }
  }
  delay(5000); // Log ogni 5 secondi
}

✅ Suggerimenti aggiuntivi:

  • Puoi combinare OLED + SD + DS1302 nello stesso progetto se non ci sono conflitti di pin.
  • Puoi loggare anche dati da sensori (es. temperatura, umidità) aggiungendoli alla stringa logFile.print().
  • Ricorda di formattare la SD in FAT32 e usare file .txt semplici.

Tutorial: Come usare Modulo DS1302 RTC

Il modulo DS1302 è un orologio reale in tempo (RTC) che mantiene l’ora e la data anche quando il dispositivo Arduino non è alimentato. Ideale per progetti che richiedono una precisione temporale elevata.

Cosa serve

  • Arduino Uno o compatibile
  • Cavo USB
  • Modulo DS1302 RTC

Passi

  1. Collegare VCC a 5V su Arduino
  2. Collegare GND a massa su Arduino
  3. Collegare I/O al pin digitale 7 di Arduino (o qualsiasi altro pin)
  4. Collegare CE al pin digitale 8 di Arduino (o qualsiasi altro pin)
  5. Collegare RST al pin digitale 9 di Arduino (o qualsiasi altro pin)
  6. Installare la libreria DS1302 RTC in Arduino IDE
  7. Caricare lo sketch di esempio fornito dalla libreria
  8. Verificare che l’ora e la data siano corrette

Codice di esempio

include <DS1302.h>

DS1302 rtc(7, 8, 9);

time_t now;

void setup() {
  Serial.begin(9600);
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Imposta l'ora e la data corrente
}

void loop() {
  DateTime now = rtc.now();
  Serial.print(now.year(), DEC);
  printDigits(now.month());
  printDigits(now.day());
  printDigits(now.hour());
  printDigits(now.minute());
  printDigits(now.second());
  Serial.println();
  delay(1000); // Aggiorna ogni secondo
}

void printDigits(int digits) {
  Serial.print(digits / 10);
  Serial.print(digits % 10);
}

Mini-progetto

Creare un orologio digitale che visualizza l’ora e la data sul monitor seriale di Arduino. Aggiungi una funzione per impostare manualmente l’ora e la data.

Errori comuni

  • Non verificare i collegamenti prima di caricare lo sketch
  • Impostare l’ora senza batteria, il che può far perdere le informazioni temporali quando si spegne Arduino
  • Usare un pin non compatibile per I/O, CE o RST
  • Ignorare la configurazione del datasheet del modulo

Accessori consigliati

  • Modulo display LCD 16×2
  • Batteria CR1220 (per alimentazione RTC)
  • Reloggiatore elettronico
  • Display LED dot matrix

Domande frequenti

Come posso impostare l’ora manualmente?
Utilizza il metodo ‘adjust()’ della libreria DS1302 per impostare manualmente l’ora e la data.

Quali pin di Arduino può usare il modulo DS1302?
Può utilizzare qualsiasi pin digitale su Arduino, ma assicurati che i collegamenti siano corretti.

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Module horloge et calendrier DS1302 avec mémoire et batterie RTC compatible Arduino”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *