// Lycée PE MARTIN
// Le 20/2/2024
// Titre : Le Bus I2C
// Matériels : Arduino Uno, Analyseur Logic, HTR DS1307 (0x68)
// Description : voir le sujet
// RTClib : https://adafruit.github.io/RTClib/html/class_r_t_c___d_s1307.html
// Bibliothèques
#include "RTClib.h"
#include "LiquidCrystal_I2C.h"
// L'analyseur logique mesure les signaux SCL et SDA lorsqu'un
// état logique haut est présent sur son entrée D7
#define trigger 2
// LCD
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
// Constructeurs
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// Variables
DateTime now;
bool _dt = false;
void setup() {
// Configurations
Serial.begin(57600);
pinMode(trigger, OUTPUT);
// LCD
lcd.init();
lcd.backlight();
// Test
//digitalWrite(trigger, HIGH); // Déclenchement de la mesure
// Réglages HTR
if (! rtc.begin()) {
Serial.println("RTC non trouvé");
Serial.flush();
while (1) delay(10);
}
if (! rtc.isrunning()) {
Serial.println("RTC ne fonctionne PAS, on règle l'heure !");
// Lorsque l'heure doit être réglée sur un nouvel appareil,
// ou après une coupure de courant, la ligne suivante définit le RTC
// sur la date et l'heure de compilation de ce croquis
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
// Lecture de l'heure
now = rtc.now();
//digitalWrite(trigger, LOW); // Arrêt de la mesure
// Affichage de la date
lcd.print("PEM SIN : TP I2C");
lcd.setCursor(4, 1);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
delay(3000);
lcd.setCursor(4, 1);
lcd.print(" ");
}
void loop() {
if (_dt) {
now = rtc.now();
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(4, 1);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
delay(3000);
lcd.setCursor(0, 1);
lcd.print(" ");
_dt = false;
}
else {
for (int i = 0; i < 10; i++) {
now = rtc.now();
lcd.setCursor(4, 1);
lcd.print(now.hour(), DEC);
lcd.print("h");
lcd.print(now.minute(), DEC);
lcd.print("mn");
lcd.print(now.second(), DEC);
lcd.print("s ");
delay(1000);
_dt = true;
}
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
vcc1:VCC
gnd1:GND
logic1:D0
logic1:D1
logic1:D2
logic1:D3
logic1:D4
logic1:D5
logic1:D6
logic1:D7
logic1:GND
rtc1:GND
rtc1:5V
rtc1:SDA
rtc1:SCL
rtc1:SQW
gnd2:GND
vcc2:VCC
r1:1
r1:2
vcc3:VCC
r2:1
r2:2
gnd3:GND
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
vcc4:VCC
gnd4:GND
TP BUS I2C
HTR