Sophie 2.0 : La partie code + afficheur

image principale Sophie 2.0 : La partie code + afficheur

Difficulté:

Bonjour,

Nous allons voir ici comment fonctionne le code qui permet à l'arduino de faire fonctionner votre girafe.

Matériel :

Budget : Non défini

  • 1 arduino
  • 1 afficheur 7 segments 4 chiffres
  • 1 breadboard
  • 4 résistances
  • plusieurs cables

Etape 1 : Les capteurs - Explication du code

En ce qui concerne les capteurs, trois variables seront nécessaires pour chacun des capteurs. Il faudra donc créer un total de 18 variables. Les premières variables vont être utilisées pour enregistrer en continu la valeur des photo-résistances. Les deuxièmes variables seront utilisées pour stocker la dernière valeur enregistrée par la photo-résistance. Et enfin, les troisièmes variables seront utilisées pour calculer la différence entre les deux valeurs (actuelle et précédente).

Enfin, dans la boucle principale, on assigne à chaque variable sa valeur et on test la différence entre la valeur actuelle et la précédente. Si cette valeur dépasse un certain seuil (qui sera préalablement défini), alors on sait qu'une pièce est passée.

Il faudra donc bien faire attention de savoir quel capteur détecte quelle pièce.

De plus, au démarrage du programme, on fera attention de laisser aux capteurs d'enregistrer des valeurs sans faire de test. En effet, si l'on commençait les tests directement, ces derniers passeraient d'éteint à allumer et considèrerait qu'une pièce est passée.

Etape 2 : Les Capteurs - Le code

Image 1: Exemple d'appellation des différentes variables

Image 2: Afin de changer facilement la valeur de chaque variable et de simplifier la lisibilité dans la boucle principale, on créer trois fonctions différentes pour changer la valeur des trois variables de chaque capteur.

Image 3: Boucle principale dans laquelle on change la valeur de chaque variable et où on test si une pièce est passée ou non.

Etape 3 : Afficheur - Branchements

Avant de voir en détails comment programmer l'afficheur, il est conseillé de faire les branchements ci-dessus.

Etape 4 : Afficheur - Explication du code

Afin d'utiliser l'afficheur, l'utilisation d'un module (comme SevSeg) est conseillé pour simplifier la tâche.

Avant d'afficher quoi que ce soit sur l'afficheur il faut commencer par paramétrer tous les inputs et outputs dans le setup.

Cinq variables seront nécessaires à l'initialisation:

- L'input des différents nombres (ils sont au nombre de 4).

- L'input des différents segments (ils sont au nombre de 8)

- Spécifié si les résistances sont sur les pins (mettre la variable a false si c'est le cas ou a true si ça ne l'est pas)

- Spécifié la configuration de l'afficheur (anode ou cathode)

- Mettre une variable updateWithDelays sur true ou false (il est conseillé de la mettre sur false)

Pour mettre à jour l'affichage, on utilise deux fonctions prédéfinies dans le module SevSeg:

- setNumber pour définir le nombre à afficher

- refreshDisplay pour actualiser l'affichage

Pour plus d'information sur l'affichage et notamment sur le module Sevseg n'hésitez pas à regarder la documentation du module :  https://github.com/DeanIsMe/SevSeg

Etape 5 : Afficheur - Code

Image 1: Setup de l'afficheur à l'aide du module Sevseg

Image 2: Changement de valeur à l'aide de la fonction setNumber (le premier paramètre correspond à la valeur à afficher et le second correspond au point que l'on veut afficher. Ici 2 est précisé donc le deuxième point sera illuminé sur l'afficheur)

Etape 6 : Stockage de l'argent - Explication du code

Afin de pouvoir stocker la valeur de l'argent présent dans la tirelire, différents moyens sont possibles. Cependant, pour faire quelque chose de simple nous allons utiliser la mémoire de l'arduino. Pour ce faire nous aurons besoin du module EEPROM.

ATTENTION : la mémoire des arduinos possède un nombre limité de cycle d'écriture et de réécriture. Il faut donc faire très attention au délai que l'on met entre chaque sauvegarde pour ne pas atteindre trop rapidement cette limite.

Pour palier un maximum à ce problème nous allons mettre en place un compteur qui permettra de sauvegarder que lorsque ce dernier aura atteint un certain nombre.

Afin de stocker et de récupérer nos données sauvegardées, nous allons créer deux fonctions pour faciliter le processus.

De plus, il faudra définir l'endroit où l'on veut stocker notre information dans la mémoire. Généralement il suffit simplement de spécifier un nombre pas trop grand (dans notre exemple nous allons prendre 10)

Etape 7 : Stockage - Code

Image 1: Les deux fonctions qui permettent d'écrire et d'avoir accès aux données plus facilement.

Image 2: Permet de stocker dans une variable le montant stocker dans la tirelire lorsqu'on la lance.

Image 3: Lorsque le compteur atteint un certain seuil, on stocke dans la mémoire le montant actuel présent dans la tirelire.

Etape 8 : Code Final

Afin d'avoir une meilleure vision d'ensemble du code, voici un lien où vous pourrez voir le code dans son intégralité:

https://github.com/Colisseo92/Sophie-2.0/blob/main/code/code.ino

Sources :

Inspiration pour le code de l'écran : https://ledisrupteurdimensionnel.com/arduino/fonctionnement-de-lafficheur-de-7-segments-a-4-digits/


Ces tutoriels devraient vous plaire

vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave
vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.
vignette Écran Tactile et Raspberry Pi
Écran Tactile et Raspberry Pi
avaatar Flavio Andornetti

Flavio Andornetti

Suivre

Vues: 157
Mis en favoris: 0

Découvrez d'autres tutoriels de

Flavio Andornetti

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers