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é
- Réaliser le câblage de l’écran LCD Grove sur la carte Arduino Uno.
- Téléverser le programme proposé.
- Observer l’affichage sur l’écran.
- Vérifier que le nombre de jours simulés augmente automatiquement.
- Modifier la valeur de
j_incubpour 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.