// 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 (D2) // Arduino MKR0 ou MKR Wifi1010 : 0 (D0) 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++); }