Terminale STI2D SIN Seance

TP SIN01 sans horloge

Partie 4 - Expérimentation sans horloge RTC

Objectif : afficher le nombre de jours d’incubation sur l’écran LCD en utilisant une simulation logicielle.

Le module horloge RTC n’étant pas disponible, le nombre de jours est simulé automatiquement par le programme.

Arduino Uno LCD Grove I2C Sans RTC

Travail demandé

  1. Réaliser le câblage de l’écran LCD Grove sur la carte Arduino Uno.
  2. Téléverser le programme proposé.
  3. Observer l’affichage sur l’écran.
  4. Vérifier que le nombre de jours simulés augmente automatiquement.
  5. Modifier la valeur de j_incub pour tester d’autres durées d’incubation.
Principe : ici, 1 jour simulé = 3 secondes.

Matériel utilisé

Carte

Arduino Uno

Afficheur

Grove LCD RGB Backlight

Liaison

I2C

Câblage

Élément Connexion Arduino Uno
VCC écran LCD 5V
GND écran LCD GND
SDA écran LCD A4
SCL écran LCD A5
Rappel : sur une Arduino Uno, le bus I2C utilise A4 = SDA et A5 = SCL.

Programme à téléverser

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

unsigned int j_incub = 21;      // nombre total de jours d'incubation
unsigned int diff_j = 0;        // nombre de jours écoulés

unsigned long precedent = 0;
const unsigned long dureeJourSimule = 3000;   // 3 secondes = 1 jour simulé

void setup() {
  lcd.begin(16, 2);
  lcd.setRGB(0, 0, 255);

  lcd.setCursor(0, 0);
  lcd.print("Jours incubation");

  lcd.setCursor(0, 1);
  lcd.print("0 / 21");
}

void loop() {
  if (millis() - precedent >= dureeJourSimule) {
    precedent = millis();

    if (diff_j < j_incub) {
      diff_j++;
    }
  }

  lcd.setCursor(0, 0);
  lcd.print("Jours incubation");

  lcd.setCursor(0, 1);
  lcd.print("                ");
  lcd.setCursor(0, 1);
  lcd.print(diff_j);
  lcd.print(" / ");
  lcd.print(j_incub);

  delay(100);
}

Explication

Élément Rôle
j_incub nombre total de jours d’incubation
diff_j nombre de jours déjà écoulés
millis() mesure le temps écoulé depuis le démarrage de la carte
dureeJourSimule durée correspondant à un jour simulé
ligne 1 affiche Jours incubation
ligne 2 affiche diff_j / j_incub

Résultat attendu

  • au démarrage : 0 / 21
  • après 3 secondes : 1 / 21
  • après 6 secondes : 2 / 21
  • et ainsi de suite jusqu’à 21 / 21

Tests possibles

Type d’œuf Valeur de j_incub Exemple d’affichage
Poule 21 5 / 21
Caille 17 5 / 17
Dinde 28 5 / 28

Conclusion

Même sans module horloge RTC, il est possible de valider le fonctionnement de l’affichage. Le programme simule l’écoulement des jours et affiche correctement le suivi de l’incubation sur l’écran LCD.