Logo Mon Club Elec

Simulateur d’un compteur de « pompe à essence »

Le simulateur d’un compteur de « pompe à essence » est un outil pratique qui permet aux utilisateurs de tester leurs connaissances et leurs compétences en matière de comptage et de manipulation des compteurs de « pompe à essence ». Il est conçu pour aider les utilisateurs à comprendre le fonctionnement des compteurs et à s’entraîner à les utiliser correctement. Ce simulateur est un outil précieux pour les professionnels qui travaillent dans le secteur de la distribution et de la vente de carburant. Il peut également être utile aux étudiants qui étudient le fonctionnement des compteurs et qui souhaitent s’entraîner à les utiliser. Dans cet article, nous allons examiner en détail le simulateur d’un compteur de « pompe à essence » et expliquer comment il peut être utilisé pour améliorer les compétences des utilisateurs.

Simulateur d’un compteur de « pompe à essence »

1.  Présentation

L’appui sur un BP entraîne l’affichage du défilement du nombre de litres, du prix et du total à payer sur un afficheur LCD alpha-numérique. C’est un programme didactique qui montre comment réaliser simplement des calculs avec des nombres à virgules et comment les afficher sur un afficheur LCD alpha-numérique.

Ce programme utilise les fonctionnalités suivantes :

  • Utilise un afficheur LCD alphanumérique en mode 4 bits

Ressources utiles associées à ce programme :

2.  Matériel Nécessaire

2.1  L’espace de développement Arduino

  • … pour éditer, compiler le programme et programmer la carte Arduino.
Simulateur d’un compteur de « pompe à essence »

2.2  Le matériel suivant pour réaliser le montage associé

  • une plaque d’essai pour montage sans soudures,
Simulateur d’un compteur de « pompe à essence »
  • des straps,
Simulateur d’un compteur de « pompe à essence »
  • un bouton poussoir pour CI,
Simulateur d’un compteur de « pompe à essence »
Simulateur d’un compteur de « pompe à essence »

3.  Instructions de montage

  • Connexion du LCD sur les broches de la carte Arduino :
    • Connecter broche RS du LCD sur la broche 2
    • Connecter broche E du LCD sur la broche 3
    • Connecter broche D4 du LCD sur la broche 4
    • Connecter broche D5 du LCD sur la broche 5
    • Connecter broche D6 du LCD sur la broche 6
    • Connecter broche D7 du LCD sur la broche 7
  • Broche 8 : Un bouton poussoir connecté au 0V

4.  Le schéma théorique du montage

Simulateur d’un compteur de « pompe à essence »

Le schéma théorique du montage (cliquer pour agrandir)

5.  Le circuit du montage

Simulateur d’un compteur de « pompe à essence »

Le schéma du montage à réaliser (cliquer pour agrandir)

6.  Fonctionnement du programme

6.1  Structure globale du programme

Ce programme simple comprend :

  • une entête déclarative
  • une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
  • une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.

6.2  Déroulement du programme

Le programme se déroule de la façon suivante :

  • Après avoir pris en compte les instructions de la partie déclarative,
  • puis après avoir exécuté la partie configuration ( fonction setup( ) ),
  • le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.
Simulateur d’un compteur de « pompe à essence »
Le déroulement du programme

7.  Explication du programme

7.1  Au niveau de la partie déclarative :

  • On déclare les variables utilisées par le programme
  • On déclare un objet LiquidCrystal correspondant à l’afficheur LCD

7.2  Au niveau de la fonction d’initialisation setup( ) :

  • On teste rapidement le LCD (message « LCD OK »)
  • On initialise l’affichage du LCD

7.3  Au niveau de la boucle principale, la fonction loop ( ) :

  • A chaque passage, on teste l’état du bouton poussoir :
    • si le BP est appuyé, on incrémente le nombre de litres
    • on recalcule le total
    • on affiche le résultat
    • on prévoit une pause entre chaque prise en compte d’un appui

8.  Mise en oeuvre du programme

8.1  Préparation du montage et programmation de la carte Arduino :

  • Commencer par réaliser le montage indiqué sur plaque d’expérimentation
  • Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle

8.2  Fonctionnement

  • Lorsque l’on appuie sur le bouton poussoir, à tout instant, le total affiché correspond au calcul prix du litre x nombre de litre.

9.  Le programme complet en langage Arduino

A copier/coller directement dans l’éditeur Arduino

// — Programme Arduino —
// Trame de code générée par le générateur de code Arduino
// du site www.mon-club-elec.fr

// Auteur du Programme : X. HINAULT – Tous droits réservés
// Programme écrit le : 13/1/2011.

// ——- Licence du code de ce programme —–
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License,
//  or any later version.
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.

// ////////////////////  PRESENTATION DU PROGRAMME ////////////////////

// ——– Que fait ce programme ? ———
 /* L’appui sur un BP entraîne l’affichage du défilement du nombre de litres
du prix et du total à payer sur un afficheur LCD alpha-numérique
 */

// — Fonctionnalités utilisées —

// Utilise un afficheur LCD alphanumérique en mode 4 bits

// ——– Circuit à réaliser ———

// Connexion du LCD sur les broches de la carte Arduino :
// Connecter broche RS du LCD sur la broche 2
// Connecter broche E du LCD sur la broche 3
// Connecter broche D4 du LCD sur la broche 4
// Connecter broche D5 du LCD sur la broche 5
// Connecter broche D6 du LCD sur la broche 6
// Connecter broche D7 du LCD sur la broche 7

// Broche 8 : Un bouton poussoir connecté au 0V

// /////////////////////////////// 1. Entête déclarative ///////////////////////
// A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles…

// — Déclaration des constantes —

// — Inclusion des librairies —

#include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD

// — Déclaration des constantes utiles —
const int APPUI=LOW; // constante pour tester état BP

// — Déclaration des constantes des broches E/S numériques —

const int RS=2; // Constante pour la broche 2
const int E=3; // Constante pour la broche 3
const int D4=4; // Constante pour la broche 4
const int D5=5; // Constante pour la broche 5
const int D6=6; // Constante pour la broche 6
const int D7=7; // Constante pour la broche 7

const int BP=8; // Constante pour la broche 8

// — Déclaration des constantes des broches analogiques —

// — Déclaration des variables globales —

int ligne=1, colonne=1; // variables de positionnement sur l’afficheur

float prixf=1.43; // variable à virgule pour le prix du litre
float totalf=0.0; // variable à virgule pour le prix à payer = prix du litre x nombre de litres
float nombreLitresf=0.0; // variable à virgule pour le nombre de litre

// — Déclaration des objets utiles pour les fonctionnalités utilisées —

//———— Création d’un objet afficheur LCD alphanumérique —-
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// initialisation LCD en mode 4 bits

// ////////////////////////// 2. FONCTION SETUP = Code d’initialisation //////////////////////////
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// — ici instructions à exécuter 1 seule fois au démarrage du programme —

// ——- Initialisation fonctionnalités utilisées ——-  

// Initialisation de l’afficheur LCD
lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
delay(10); // pause rapide pour laisser temps initialisation

// Test de l’afficheur LCD
lcd.clear(); // efface LCD
lcd.print(« LCD OK »); // affiche texte
delay (1000); //pause
lcd.clear(); // efface LCD

// ——- Broches en sorties numériques ——-  

// ——- Broches en entrées numériques ——-  
 pinMode (BP,INPUT); // Broche BP configurée en entrée

// ——- Activation si besoin du rappel au + (pullup) des broches en entrées numériques ——-  
 digitalWrite (BP,HIGH); // Rappel au + activé sur la broche BP configurée en entrée

// ——- Initialisation des variables utilisées ——-  

// ——- affichage initial ——
lcd.clear();

// — affichage des titres —-
ligne=1, colonne=1;
lcd.setCursor (colonne1, ligne1);
lcd.print(« Prix   = »);

ligne=2, colonne=1;
lcd.setCursor (colonne1, ligne1);
lcd.print(« Litres = »);

ligne=3, colonne=1;
lcd.setCursor (colonne1, ligne1);
lcd.print(« Total  = »);

//—- affiche le prix —-
ligne=1, colonne=10;
lcd.setCursor (colonne1, ligne1);
lcd.print(prixf,2); // affiche float avec 2 décimales

//—- affiche le nombre de litres —-
ligne=2, colonne=10;
lcd.setCursor (colonne1, ligne1);
lcd.print(nombreLitresf,2); // affiche float avec 2 décimales

totalf=nombreLitresf * prixf; // calcul du total = prix du litre x nombre de litres

//—- affiche le nombre de total —-
ligne=3, colonne=10;
lcd.setCursor (colonne1, ligne1);
lcd.print(totalf,2); // affiche float avec 2 décimales

} // fin de la fonction setup()
// ********************************************************************************

////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme //////////////////
// la fonction loop() s’exécute sans fin en boucle aussi longtemps que l’Arduino est sous tension

void loop(){ // debut de la fonction loop()

// — ici instructions à exécuter par le programme principal —

if (digitalRead(BP)==APPUI) { // si le BP est appuyé

  nombreLitresf=nombreLitresf+0.25; // incrémente le nombre de litre par 250 ml
  if (nombreLitresf>100) nombreLitresf=0; // Remise à zéro du nombre de litres à 100

  totalf=nombreLitresf * prixf; // calcul du total = prix du litre x nombre de litres

  //—- affiche le nombre de litres —-
  ligne=2, colonne=10;
  lcd.setCursor (colonne1, ligne1);
  lcd.print(nombreLitresf,2); // affiche float avec 2 décimales

  //—- affiche le nombre de total —-
  ligne=3, colonne=10;
  lcd.setCursor (colonne1, ligne1);
  lcd.print(totalf,2); // affiche float avec 2 décimales

  delay (100); // pause entre deux prises en compte de l’appui

}

} // fin de la fonction loop() – le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

// ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS ////////////////////

// ////////////////////////// AUTRES FONCTIONS DU PROGRAMME ////////////////////

// ////////////////////////// Fin du programme ////////////////////

 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.