TP: Affichage LCD avec Boutton poussoir

Bonsoir,

J'ai un TP sur Arduino que je dois finir sous Proteus 8. Je connais déjà les branchements(branchements sous ISIS et non la carte Arduino) mais je voudrais vérifier si mon programme marche bien sous Arduino.Je connais quelques difficultés c'est pourquoi je vous donne l'énoncé qui sera suivie plus tard de mon programme.

TP: Un propriétaire de restaurant désire connaitre le nombre de personnes au sein de son établissement en temps réel.Cette information sera fournie sur un écran LCD d'au moins 4 lignes.
Le restaurant est constitué de deux portes: une d'entrée et une de sortie.

Le Franchissement des portes sera simulé par deux Boutons Poussoirs "Bp_entrer" et "Bp_sortir".

Programmer la carte arduino Uno sous ISIS pour répondre au cahier des charges.Vous êtes libres de choisir les entrées et sorties sur la carte.

J'adore la version anglaise à deux balles, générée par gogole traducteur, et même pas relue avant copier/coller

Boser_arduino8:
Good evening,

I have a TP on Arduino that I have to finish in Proteus 8. I already know the connections (connections under ISIS and not the Arduino board ) but I would check if my program works well under Arduino.Je know some difficulties so I give you the statement which will be followed later in my program .

TP: A restaurant owner wants to know the number of people within its establishment in réel.Cette time information will be provided on an LCD screen of at least 4 lines.
The restaurant has two doors : one entrance and one exit.

The Crossing gates will be simulated by two Push Buttons " Bp_entrer " and " Bp_sortir " .

Program the Arduino Uno board under ISIS to meet the specifications charges.Vous are free to choose the inputs and outputs on the card.

le programme marche bien vu qu'on n'en a aucune connaissance

m'enfin google traducteur c'est fait pour çà......

ca m'affole de voir des "étudiants" en électronique/programmation/analyse de poser des posts comme ca.
même un gamin de 8 ans pourrait faire l'analyse du problème.

mais pourquoi toujours passer par ces fichus logiciels pour programmer un code qui demande 1mn de réflexion et de recherche.
Et en prend 5mn pour le coder.

après, on leur apprend qu'en faisant cette filière,ils pourront demander un salaire de 3000€/mois minimum alors qu'ils ne sont pas foutu de trouver un code d'uns simplicité enfantine et utilisent google translate car ils sont incapables d'écrire en anglais, base de toute l'électronique pour lire les datasheet.

je viens juste de poser la question à ma fille de 11 ans qui prend son pti dej comment faire avec 2 boutons (+ et -) pour connaitre le nb de personnes ou de canards dans un endroit.
la réponse est sortie en 30s.

infobarquee:
je viens juste de poser la question à ma fille de 11 ans qui prend son pti dej comment faire avec 2 boutons (+ et -) pour connaitre le nb de personnes ou de canards dans un endroit.
la réponse est sortie en 30s.

Fille de geek le test est biaisé ;D

hahaha
elle ne programme pas pourtant, heureusement pour moi, mais je sens que je vais devoir faire des programmes dans peu de temps.

vois pas l'utilité

#define valeurMin 0
#define valeurMax 10

idem

pinMode (Bp_entrer,INPUT);
pinMode (Bp_sortir,INPUT);
pinMode(Bp_entrer, INPUT_PULLUP);
pinMode(Bp_sortir, INPUT_PULLUP);

pouquoi des while et pourquoi faire un copier/coller d'une instruction qui peut servir aux deux boutons?

if (digitalRead(Bp_entrer)==HIGH)
  {
   
 if (j<valeurMax)j++;

    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print(j);
    delay(100);
    while((digitalRead(Bp_entrer)==HIGH));
  }
  if (digitalRead(Bp_sortir)==HIGH)
  {
    if (j>valeurMin)j--;
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print(j);
    delay(100);
    while((digitalRead(Bp_sortir)==HIGH));
}
}

et si j est > à valeurMax, tu fais quoi?
et si j est < à valeurMin , tu fais quoi?

 #include <LiquidCrystal.h> 
#define valeurMin 0
#define valeurMax 10
const int Bp_entrer = 8;
const int Bp_sortir = 9 ;
int j=0;

LiquidCrystal lcd(7,6,5,4,3,2);

void setup() {
  
lcd.begin(20, 4);  

pinMode (Bp_entrer,INPUT);
pinMode (Bp_sortir,INPUT);
pinMode(Bp_entrer, INPUT_PULLUP);
pinMode(Bp_sortir, INPUT_PULLUP);
 j=0;
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(j);
  lcd.clear();
  //lcd.print(j);
 //delay(100);
}
void loop ()
{
  
 if (digitalRead(Bp_entrer)==HIGH)
  {
    
 if (j<valeurMax)j++;

    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print(j);
    delay(100);
    while((digitalRead(Bp_entrer)==HIGH));
  }
  if (digitalRead(Bp_sortir)==HIGH)
  {
    if (j>valeurMin)j--;
    lcd.clear();                                                               
    lcd.setCursor(0,1);
    lcd.print(j);
    delay(100);
    while((digitalRead(Bp_sortir)==HIGH));
}
}
#define valeurMin 0
#define valeurMax 10

Je suis obliger de le déclarer sinon il y a une erreur de compilation
" valeurMin" designe le minimun de personne et "valeurMax" le nombre maximun de personne.

et si j est > à valeurMax, (le compteur ne monte pas plus au que 10)
et si j est < à valeurMin , (le compteur ne descend pas plus bas que 0)

Un propriétaire de restaurant désire connaitre le nombre de personnes au sein de son établissement en temps réel.Cette information sera fournie sur un écran LCD d'au moins 4 lignes.
Le restaurant est constitué de deux portes: une d'entrée et une de sortie.

qui indique qu'il doit y avoir 10 personnes max?

Je suis obliger de le déclarer sinon il y a une erreur de compilation
" valeurMin" designe le minimun de personne et "valeurMax" le nombre maximun de personne.

évidemment car tu t'en sers après, mais ca ne sert à rien du tout

et si j est > à valeurMax, (le compteur ne monte pas plus au que 10)
et si j est < à valeurMin , (le compteur ne descend pas plus bas que 0)

et bien fais l'essai et tu vas comprendre :slight_smile:

ca ne serait pas plus simple de faire

si Bp_entrer ==> j++
si Bp_sortir ==> j--
si j =< 0 ==> j = 0

affichage sur lcd de j

pourquoi se compliquer la vie franchement et donner une limite maxi pour compter des clients dans un resto?

j'ai choisit 10 comme nombre maximum au hasard, histoire de limiter les clients même si ce n'est pas dit d'en l’énoncer.Mais merci.

Par contre comment déclarer une variable qui monte à l'infini?

 si Bp_entrer ==> j++
si Bp_sortir ==> j--
si j =< 0 ==> j = 0

je le remplace ou ce code??

Par contre comment déclarer une variable qui monte à l'infini?

j est bien ton compteur et tu l'as déclaré dans ton code, donc le problème est ou?

je le remplace ou ce code??

a toi de chercher un peu aussi, on va pas te faire le code tout cuit qui ne prend que 2 minutes pour le faire.