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

Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» L'informatisation d'un réseau.
Hier à 21:32 par likiki

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

» Ballast, décor et réalisme facile selon Vince
Dim 12 Nov 2017 - 16:46 par Vince Belgium

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

» Annonce Märklin SNCF
Dim 5 Nov 2017 - 20:26 par dany-om

» Mini World Lyon Un projet fou ..................
Dim 5 Nov 2017 - 11:07 par dany-om

» VOL d'objets du Musée du train de Nimes
Mer 1 Nov 2017 - 9:11 par lherve54

» CS3 ... Découverte et utilisation
Mer 25 Oct 2017 - 21:34 par Vince Belgium

» Changement d'adresse sur décodeur Marklin
Sam 14 Oct 2017 - 18:08 par dany-om

» La SNCF, une sacré entreprise.
Jeu 12 Oct 2017 - 1:05 par Cousin Hub

» Le train des alpes de Altaya par Aiguillage
Mar 10 Oct 2017 - 21:32 par likiki

» La photo Mystère ........
Mar 3 Oct 2017 - 21:09 par dany-om

» Information Märklin 7286
Dim 1 Oct 2017 - 10:13 par likiki

» Clés pour le train miniature.
Dim 1 Oct 2017 - 9:20 par dany-om

» La chaine Aiguillages
Jeu 28 Sep 2017 - 18:41 par dany-om

» Nouveaux articles sur Locoduino !
Mer 27 Sep 2017 - 20:36 par dany-om

» Pose du ballast sur voie C
Mer 27 Sep 2017 - 10:43 par Fred Glmt

» Test de décors .....
Lun 18 Sep 2017 - 14:57 par Vince Belgium

» La soudure??????
Lun 11 Sep 2017 - 19:14 par Cousin Hub

» Adieu aux automotrices postales de la SNCB
Dim 3 Sep 2017 - 13:44 par likiki


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 : 11070
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 : 2819
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 : 11070
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 : 2819
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 : 11070
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 : 2819
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 : 11070
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 : 2819
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 : 11070
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 : 2819
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 : 11070
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