Passionnement
Bonjour et bienvenu,

Bonjour et bienvenu sur le forum. Ici tu verra, la bonne humeur et l'entraide sont de mise.
Pas de reproche ni de prise de tête. Respect et Amitié sont de rigueur.
Pour la convivialité, nous te demandons de prendre 5mn pour te présenter a tout le monde et de renseigner ton profil le plus précisément possible.

Pour cela, ==> clique ici <== et tu créer un nouveaux sujet (une petite explication est en haut de la page).

Si tu ne fait pas de présentation, ton compte sera supprimé automatiquement après 48H.

Sans présentation, tu n'aura pas accès a la totalité du forum (qui comporte plus de 30.000 messages). Quand tu aura fait ta présentation, un modérateur ou administrateur te donnera les droits pour le forum dans sa totalité dans les 24 h.

Le Staff
Connexion

Récupérer mon mot de passe

Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» Le blog de Vince Belgium
Hier à 18:59 par letraindemanu

» Nouveautés Märklin 2018
Sam 13 Jan 2018 - 14:43 par likiki

» Le bouton vote
Sam 13 Jan 2018 - 10:02 par likiki

» Période poétique
Mer 10 Jan 2018 - 20:55 par dany-om

» Module Hobbyzone de chez Makétis
Lun 8 Jan 2018 - 8:27 par Fred Glmt

» Pont tournant marklin 7286
Mer 3 Jan 2018 - 23:36 par Vince Belgium

» Bon réveillon 2017
Lun 1 Jan 2018 - 10:54 par dany-om

» Annonce Märklin SNCF
Dim 31 Déc 2017 - 14:50 par dany-om

» Le train des alpes de Altaya sujet de discussion.
Sam 30 Déc 2017 - 10:17 par Vince Belgium

» Nouveaux articles sur Locoduino !
Mar 26 Déc 2017 - 20:18 par lherve54

» Mini World Lyon Un projet fou ..................
Jeu 21 Déc 2017 - 19:03 par dany-om

» Le train des alpes de Altaya par Aiguillage
Sam 16 Déc 2017 - 9:04 par likiki

» Ballast, décor et réalisme facile selon Vince
Sam 25 Nov 2017 - 11:40 par dany-om

» Wagon à louer??????
Sam 25 Nov 2017 - 9:04 par likiki

» Ballast, décor et réalisme facile selon Vince
Ven 24 Nov 2017 - 19:38 par Vince Belgium

» Les blagues de LIKIKI (et des autres). M D R
Jeu 23 Nov 2017 - 20:56 par Cousin Hub

» CS3 ... Découverte et utilisation
Jeu 23 Nov 2017 - 18:36 par Fred Glmt

» L'informatisation d'un réseau.
Jeu 23 Nov 2017 - 9:03 par Vince Belgium

» T E R " Toul Expo Rail" 2018
Ven 17 Nov 2017 - 17:15 par lherve54

» Littérature ferroviaire hors revues
Dim 5 Nov 2017 - 21:38 par dany-om

Pour voter, cliquez sur
l'image ci-dessous.

Merci

passionnement

Gestion des places d'un parking

Voir le sujet précédent Voir le sujet suivant Aller en bas

Gestion des places d'un parking

Message par likiki le Dim 16 Nov 2014 - 12:18

,


Voici ma petite contribution sur la gestion des 9 places d'un parking.







Le programme :


//................................
//:                              :
//:  Parking Likiki              :
//:                              :
//:  15 Nov 2014                 :
//:                              :
//................................

#define BoutonE 3 // Bouton + sur pin 3
#define BoutonS 2 // Bouton - sur pin 2
#include "LiquidCrystal.h" // Ajout de la librairie pour afficheur lcd

LiquidCrystal lcd(13,12,11,10,9,8,7,6,5,4); // déclaration des bornes du lcd

int Voitures = 9 ; // Nb de vehicule dans le parking
int etat_BoutonE ; // Enregistre etat du bouton +
int etat_BoutonS ; // enregistre etat du bouton -

char Message1[ ] = " Place libre = " ;
char Message2[ ] = " Parking Complet" ;

//
//
void setup()
{
 lcd.begin(16,2); // Déclaraton du type d'afficheur 16 cracteres sur 2 lignes
 pinMode(BoutonE, INPUT); // pin en entrée
 pinMode(BoutonS, INPUT); // pin en entrée
}

void loop()
{
  etat_BoutonE = digitalRead(BoutonE); // Lecture de la broche et enregistrement du résultat
  etat_BoutonS = digitalRead(BoutonS); // Idem ci dessus pour le 2eme bouton
 
  
  if (etat_BoutonS == LOW && Voitures < 9)
  {
    Voitures = Voitures + 1;
    delay(500);
  }
  if (etat_BoutonE == LOW && Voitures >0)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }
  if (Voitures >0)
  {
  lcd.setCursor(0,0);
  lcd.print(Message1);
  lcd.setCursor(15,0);
  lcd.print(Voitures);
  }
  
  else
  {
    lcd.setCursor(0,0);
    lcd.print(Message2);
    
  }
  
  
  
}
 






Dernière édition par likiki le Lun 17 Nov 2014 - 18:40, édité 1 fois
avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Dim 16 Nov 2014 - 13:13

pas mal, mais en Français avec un S si plus d'une place libre.



Tu ne testes pas la valeur <= 0 et pourtant ton etat_BoutonS continue à faire -1 à voitures.

tu aurais du faire

Code:
 if (etat_BoutonS == LOW && voitures > 0)


Pour gagner de l'espace en mémoire

Byte de préférence à un Int pour les variables.

Un Boolean pour les états des boutons : 0 => LOW et 1=> HIGH

Toujours en vue de gagner de la mémoire et de la rapidité en exécution.

Il faut éviter aussi le delay(x) qui bloque le programme.

Si tu appuies sur le bouton et que le programme est en delay(x), tu loupes une itération.
c'est vrai que dans l'espace de 500 milliseconde, tu dois faire vite mais ce n'est pas une programmation propre.

Par exemple en supprimant les delay(x) et en mettant les BoutonE et BoutonS en position High après avoir fait +1 ou -1 à voitures.

Ce qui fait qu'a chaque impulsion sur le BoutonE ou BoutonS tu ajoutes ou soustrait une place et dans la foulée les boutons reviennent en attente d'ordres.

Il faut bien évidemment que les boutons physiques soit vraiment à impulsions et non à contact permanent.

on peut aussi choisir le switch case en fonction de l'état des boutons mais nécessitera plus d'écriture.


 car il faut le faire quand même.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2833
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Dim 16 Nov 2014 - 14:10

@Cousin Hub a écrit:pas mal, mais en Français avec un S si plus d'une place libre.


Oui mais "Places libre = 1" c'est pas bon non plus. Laughing

@Cousin Hub a écrit:
Tu ne testes pas la valeur <= 0 et pourtant ton etat_BoutonS continue à faire -1 à voitures.

tu aurais du faire

Code:
 if (etat_BoutonS == LOW && voitures > 0)

Ben non, car quand la valeur est a "0", je ne touche plus a la valeur



  else
  {
    lcd.setCursor(0,0);
    lcd.print(Message2);
    
  }


Laughing

@Cousin Hub a écrit:
Byte de préférence à un Int pour les variables.

Un Boolean pour les états des boutons : 0 => LOW et 1=> HIGH


Oui, mais là j'ai fait ça en mode rapide. Very Happy


@Cousin Hub a écrit:Toujours en vue de gagner de la mémoire et de la rapidité en exécution.

Il faut éviter aussi le delay(x) qui bloque le programme.

Si tu appuies sur le bouton et que le programme est en delay(x), tu loupes une itération.
c'est vrai que dans l'espace de 500 milliseconde, tu dois faire vite mais ce n'est pas une programmation propre.

Par exemple en supprimant les delay(x) et en mettant les BoutonE et BoutonS en position High après avoir fait +1 ou -1 à voitures.

Ce qui fait qu'a chaque impulsion sur le BoutonE ou BoutonS tu ajoutes ou soustrait une place et dans la foulée les boutons reviennent en attente d'ordres.

Il faut bien évidemment que les boutons physiques soit vraiment à impulsions et non à contact permanent.

on peut aussi choisir le switch case en fonction de l'état des boutons mais nécessitera plus d'écriture.

Le " delay " est là pour éviter le rebond uniquement, et éviter la prise en compte de plusieurs impulsions quand en faite il n'y en as qu'une. Et puis pour un parking, si deux voitures entre a moins de 500 millisecondes l'une de l'autre, c'est quelles roulent vite.

J'ose même pas imaginer la vitesse de fonctionnement de la barrière du parking.



@Cousin Hub a écrit:
 car il faut le faire quand même.

avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Dim 16 Nov 2014 - 20:00

  je ne suis pas d'accord avec toi.

Une fois que ta variable voiture <= 0, je suis d'accord que tu fasses le Else du

  if (Voitures >0)

mais si tu appuies de nouveau sur BoutonS, ta variable Voitures prends -1 donc 0 -1 = -1.

D'accord ton message ne change pas mais le décompte n'est pas bon.

ou alors réintialise voitures à la valeur 0 dans le Else.

avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2833
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 17:18

Tout a fait, il suffit de modifier


  if (etat_BoutonE == LOW)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }


Par :


  if (etat_BoutonE == LOW && Voitures >0)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }



avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 17:49

Ha bin quand même,
tu comprends vite mais il faut t'expliquer longtemps
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2833
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 17:50



C'est que je suis quelqu'un de très occupé, il me faut donc trouver le temps de faire tout ce que j'ai a faire.



avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 18:01

Bon maitenant que cela fonctionn, il faut les feux de signalisation à l'entrée du parking.

Verte quand il reste des places
Rouge quand le parking est plein ou fermé ( la j'ajoute)
Orange clignotant quand les barrières deconnent ou cassées(la j'ajoute aussi)

mais comme tu n'as pas beaucoups de boulot en ce moment ,je suis sur que tu peux faire cela en moins de dix minutes.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2833
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 18:10



Mais mon cher Hubert, tout ça est fait puisque j'ai mis un tableau d'affichage.

Et comme maintenant plus personne ne respecte les stop et les feux rouge (c'est surtout que je n'ai pas de LED sous la main) pourquoi j'irais en mettre ?




avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 18:25

parce que moi je suis préventeur et que plus personnes ne lis les messages sur écran, tu devrais le savoir.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2833
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Gwadavel le Mar 18 Nov 2014 - 20:13

Bonsoir,

Bravo Chef, je viens de regarder très vite ton programme, j'avais presque fait la même chose.

pour la sortie des voiture j'avais fait if(!Pousssoir && nbVoiture > 0){nbVoiture-- .....

Pour l'anti rebond tu as bien fait d'utiliser la fonction delay(), c'est un travail de 3ème semaine et normalement nous connaissons que la fonction delay(), qui est bloquante, c'est cette semaine qu'on va apprendre une autre manière de faire. Twisted Evil

Eric.
avatar
Gwadavel
Petit posteur
Petit posteur

Localisation : Antony (92)
Messages : 107
Emploi/loisirs : Administrateur Réseaux/Modélisme Moto Arduino

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Mar 18 Nov 2014 - 20:20

Elle est sympathique aussi, mais le delay() qui est bloquant peut parfois être bien plus utile.

Un truc intéressant serait, sur l'afficheur parking, d'y ajouter l'heure.

Je vous laisse deviner la prise de tête.

avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 11290
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum